Conheçam a linguagem D (saiu do forno)!
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.
Introdução
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.
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
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;
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.
Para mais informações, consulte o site oficial:
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
Agora, será que criar aplicações gráficas fica fácil ? Ele usa as mesmas bibliotecas do C para criar janelas e tal, ou há outro tipo de interação ?
Abraços,