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.
Criada 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
[4] Comentário enviado por tenchi em 14/02/2007 - 19:48h
Kra, que legal, mas eh possível usar coisas em baixo nível como ponteiros, assembly etc. no modo interpretado também?
Existem muitos programas (livres ou não) escritos nessa linguagem? Ela possui recursos q permitem a interação com bibliotecas como gtk, tcl, etc?
Muito legal o artigo. Eu já havia ouvido falar nessa linguagem, mas nunca havia me interessado. Agora que vc escreveu este artigo, vou pesquisar mais.
[5] Comentário enviado por sombriks em 15/02/2007 - 04:30h
ahhhhh!!! que show, quer dizer que o gcc ainda é o nosso "um anel", :D
tenchi, eu acredito que pela idade da linguagem (soh sete anim...) ainda não tenhamos muita coisa.
bibliotecas que ao surgir vão garantir vida próspera ao D:
1- Toolkit Gráfico (pelo que eu vi isto ou está em desenvolvimento e eh parente do SWT!!!!)
2- Implementações de padrões existentes na WEB (web-services, cgi, qq coisa semelhante aos JAVA servlets, SOAP, SAX, DOM, ORB/CORBA e por aí vai. )
3- Bibliotecas para dispositivos móveis
4- Bibliotecas Multimídia (vamos editar nossos vídeos e músicas em D???)
5- Uma licença gpl, ;D
[8] Comentário enviado por sombriks em 15/02/2007 - 17:37h
Aew sergiotucano!
O primeiro ítem eu coloquei na base da futurologia, mas aí eu fui fuçar a página oficial. Na parte de listas e discussão, porque a coisa ainda deve ser beta, sei lah...
Já o resto é uma constatação simples, pois se organização fulana-de-tal define um padrão a galera que mantém as grandes linguagens tratam logo de fornecer uma implementação. Graças a isso programador A, que programa em Delphi, pode se comunicar com o software do Programador B, que programa em Java, graças a, por exemplo, CORBA.
[14] Comentário enviado por tralsl em 23/04/2007 - 21:45h
Olá Cabelo e todos VOLianos
Alguém tem mais informações sobre a linguagem D, sei que existe pouca documentação, mas se for possível que seja em português.
Pretendo apresentar uma mini-palestra sobre D, apenas uma motivação.
As fontes que tenho até agora além do VOL e wikipedia são:
[17] Comentário enviado por gilbertosantos em 31/03/2009 - 10:50h
Por falor, alguém sabe como faço para copiar arquivos gravados em 1 dvd multisesão no nero? Eu quero copiar os arquivos no Linux mas quando clico em cima não abre, da pra ver as pastas mas não abre de jeito nenhum.
Alguém conhece um meio de como eu posso conseguir tirar esses arquivos? Ja tentei até no nero e não deu certo.
[18] Comentário enviado por removido em 30/04/2012 - 00:24h
Já faz algum tempo que está disponível um compilador para D da GNU.
Igual aos outros tipo o de Fortran (g77/gfortran), C++ (g++), Pascal (gpc), Java (gcj), Ada (gnat), em que servem como uma interface (o nome correto é front-end?) para as ferramentas-padrão da GNU.
Para a linguagem D ele se chama gcd e está disponível no Debian, por exemplo.
Quer dizer, mais uma ferramenta na mão do linuxer!
[19] Comentário enviado por programadorc em 03/11/2015 - 11:40h
Olá, a todos do Viva Linux.
Quero compartilhar com a comunidade o lançamento do primeiro livro brasileiro sobre a "Linguagem D" publicado pelo Professor Augusto Manzano. Para quem quer iniciar na linguagem é uma boa alternativa. O texto é muito didático, ao estilo Manzano.