Infra - Linux
Conheçam a linguagem D
Neste documento apresento a linguagem de programação D. Uma linguagem de alto nível, porém se necessário pode propiciar acesso a instruções de baixo nível. O compilador está disponível para Linux e Windows, assim facilitando a portabilidade do código fonte.
por Alessandro de Oliveira FariaCriada em 1999 pelo Walter Bright da Digital Mars, a linguagem de programação D foi baseada em C++. Mas não chega a ser apenas uma variante. É uma linguagem de programação de mais alto nível que C++, entretanto preserva a capacidade para escrever código de alta performance, interagir diretamente com a API do sistema operacional e acesso a hardware. O foco principal da linguagem é reunir o alto desempenho do C/C++ e a produtividade das linguagens atuais.
A análise léxica* funciona independente da análise sintaxe e da análise de semântica. Abaixo os processos de compilação da linguagem D:
1. Caracteres do código fonte:
O arquivo fonte é checado para validar o conjunto de caracteres. Os formatos aceitáveis são ASCII, UTF-8, UTF-16BE, UTF-16LE, UTF-32BE, e UTF-32LE.
2. Análise léxica:
O arquivo fonte é dividido em uma seqüência de símbolos.
3. Análise de sintaxe:
Os símbolos são analisados para validação da sintaxe.
4. Análise semântica:
Verifica os erros semânticos, (por exemplo, uma multiplicação entre tipos de dados diferentes)
5. Otimização:
Otimização é um passo que busca criar uma versão equivalente em semântica, entretanto mais rápido em termos de execução.
6. Finalmente o código:
Instruções da arquitetura/plataforma são selecionadas implementar toda a semântica do programa. O resultado será um arquivo objeto, para um posterior processamento um linker**.
* Análise léxica é o processo de analisar a entrada de linhas de caracteres (tal como o código-fonte de um programa de computador) e produzir uma seqüência de símbolos chamado "símbolos léxicos" (mais informações aqui http://pt.wikipedia.org/wiki/An%C3%A1lise_l%C3%A9xica).
** Linker é um programa que liga objetos gerados por um compilador, formando assim um arquivo binário executável com instruções nativa.
Abaixo algumas características:
- Coletagem de lixo;
- Orientada a Objetos;
- Inline Assembler;
- Compatibilidade com códigos objeto C;
- Arranjos dinâmicos e associativos (Sensacional!!!);
- Código facilmente portável;
- Rápido aprendizado para programadores em C ou C++.
- Acesso a instruções de baixo nível.
Em particular, gostei do recurso de Arranjos dinâmicos e associativos, veja os exemplos abaixo:
Arranjos dinâmicos:
int[] a; a.length = 10; //comprimento igual a 10 posições a = 50; //a[0], a[1] ... a[9] = 50 a ~= 48; //adiciona uma posição ao array e atribui 48 a ela
Arranjos associativos:
int[char[]] a; //array associativo a["hello"] = 4; a["tchau"] = 10; a["oi"] = 50; a["nome"] = 70;
Veja no link abaixo as comparações entre a linguagem D com C, C++, C# e Java.
http://www.digitalmars.com/d/comparison.html
Para mais informações, consulte o site oficial:
http://www.digitalmars.com/d/index.html
Abaixo os links utilizado para pesquisa e/ou referências:
http://agilizando.blogspot.com/2007/01/linguagem-de-programao-d-chega-verso.html
http://pt.wikipedia.org/w/index.php?title=Linguagem_D&redirect=no
Download e instalação
Em primeiro lugar efetue o download em http://ftp.digitalmars.com/dmd.zip, conforme o exemplo abaixo.
$ wget http://ftp.digitalmars.com/dmd.zip
Descompacte o arquivo .zip na pasta corrente.
$ unzip dmd.zip Archive: dmd.zip inflating: dmd/bin/dm.dll inflating: dmd/bin/dmd extracting: dmd/bin/dmd.conf inflating: dmd/bin/dmd.exe inflating: dmd/bin/dumpobj inflating: dmd/bin/eecxxx86.dll inflating: dmd/bin/emx86.dll inflating: dmd/bin/make.exe inflating: dmd/bin/mspdb41.dll inflating: dmd/src/phobos/unittest.d inflating: dmd/src/phobos/win32.mak inflating: dm/lib/snn.lib inflating: dm/bin/make.exe inflating: dm/bin/lib.exe
Entre no diretório dmd/bin e altere o arquivo dmd.conf em DFLAGS para a localização (path completo) da pasta phobos que se encontra 2 níveis abaixo do local da extração do arquivo zip. Veja o conteúdo do meu arquivo.
$ su senha: # cd dmd/bin # cat dmd.conf [Environment] DFLAGS=-I/neti/prg/dmd/src/phobos
Agora como super-usuário, copie o arquivo dmd.conf para a pasta /etc.
# cp dmd.conf /etc
Copie a biblioteca Phobos para a pasta /lib.
# cp ../lib/libphobos.a /lib/
Agora finalmente copie o arquivo dmd e rdmd para a /bin/:
# cp {dmd,rdmd} /bin/
Para um melhor entendimento das operações acima, abaixo a lista do principais arquivos da linguagem D.
-
dmd - O compilador D;
dmd.conf - Arquivo de configuração do compilador;
rdmd - Interpreta um programa escrito em D.
Compilaremos agora o nosso primeiro "Ola Mundo!". Digite o programa abaixo e salve como ola.d.
import std.stdio; void main(char[][] args) { writefln("Ola Mundo, VIVA O LINUX!"); }
Para executar o programa OLA.D em modo interpretado, utilize o comando rdmd como no exemplo abaixo:
$ rdmd ola.d Ola Mundo, VIVA O LINUX!
Agora compilaremos e executaremos o nosso primeiro programa em D!!! Chique heim...
$ dmd ola gcc ola.o -o ola -m32 -lphobos -lpthread -lm $ ./ola Ola Mundo, VIVA O LINUX!
Bom, como o objetivo deste documento não é proporcionar grandes ensinamentos sobre a linguagem e sim uma breve apresentação, vou parar por aqui. Não esqueçam, usem a força... LEIA OS FONTES!!!
- Login automático com SSH e Automatização da instalação (deploy) e atualização de sites com GitLinux
- Extensão Sun Presentation Minimizer para Broffice.ORGLinux
- Otimização de Desempenho em sistemas GNU/LinuxLinux
- Hardware para sistemas GNU/Linux - Dicas de Desempenho - Parte 3Hardware
- Hardware para sistemas GNU/Linux - Dicas de Desempenho - Parte 2Hardware