imported>VolkovBot m (Bot: Modificando: es:D (lenguaje de programación)) |
imported>Ricvelozo Sem resumo de edição |
||
Linha 12: | Linha 12: | ||
|compiladores = [http://www.digitalmars.com/d/dcompiler.html DMD], [http://dgcc.sourceforge.net DGCC] | |compiladores = [http://www.digitalmars.com/d/dcompiler.html DMD], [http://dgcc.sourceforge.net DGCC] | ||
|dialetos = | |dialetos = | ||
|influenciada_por = [[C (linguagem de programação)|C]], [[C++]], [[ | |influenciada_por = [[C (linguagem de programação)|C]], [[C++]], [[C♯]], [[Java (linguagem de programação)|Java]] | ||
|influenciou = | |influenciou = | ||
|website = [http://www.digitalmars.com/d/ www.digitalmars.com/d] | |website = [http://www.digitalmars.com/d/ www.digitalmars.com/d] | ||
Linha 213: | Linha 213: | ||
* [[C (linguagem de programação)]] | * [[C (linguagem de programação)]] | ||
* [[C++]] | * [[C++]] | ||
* [[ | * [[C♯]] | ||
* [[Java (linguagem de programação)]] | * [[Java (linguagem de programação)]] | ||
Edição das 20h54min de 27 de novembro de 2010
Predefinição:Info/Linguagem de computador D é uma linguagem de programação de uso geral projetada por Walter Bright da Digital Mars. É baseada majoritariamente em C++, apesar de não ser apenas uma variante. A versão estável da primeira especificação (v1.0) foi lançada em janeiro de 2007.
Histórico
A linguagem D foi criada por Walter Bright, desenvolvedor de compiladores para as linguagens C e C++ e fundador da Digital Mars. Ela foi concebida em dezembro de 1999 para ser uma sucessora das linguagens C e C++.
É uma linguagem de programação de sistemas, focada em combinar o alto desempenho das linguagens C e C++ com a produtividade de outras linguagens modernas, tais como Ruby e Python.
Características
A linguagem D apresenta, dentre outras características:
- Fortemente tipada estaticamente;
- Compilada para código nativo;
- Multiparadigma: suporta os estilos imperativo, orientado a objetos e multiprogramação de template;
- Projetada para a orientação a objetos e programação genérica;
- Pertencente à família com sintaxe semelhante à Linguagem C, com aparência próxima à Linguagem C++ (Compatibilidade com códigos objeto C);
- Arranjos dinâmicos e associativos;
- Presença de coletor de lixo;
- inline Assembler.
Principais metas de D
- Reduzir os custos de desenvolvimento de software em ao menos 10% com adição de produtividade comprovada, realçando características e ajustando características da linguagem de modo que erros comuns e bugs, que consomem tempo, sejam eliminados;
- Torná-la fácil para escrever código que seja portável de compilador para compilador, máquina para máquina, e sistema operacional para sistema operacional;
- Suportar multi-paradigmas de programação, isto é, com um mínimo de suporte a paradigmas imperativos, estruturados, orientados a objetos, e programação genérica;
- Ter uma curta linha de aprendizagem para programadores acostumados com programação em C ou C++;
- Tornar D substancialmente mais fácil para implementar um compilador próprio que C++;
- Ser compatível com as APIs C locais;
- Ter uma gramática livre de contexto;
- Incorporar metodologia de Programação de Contrato e teste de unidade;
- Ser capaz de construir programas leves por si próprio;
- Reduzir os custos da criação de documentação.
Exemplos de Códigos
Olá Mundo
import std.c.stdio;
int main(char[][] args)
{
printf("Olá Mundo\n");
}
//Outro modo
import std.stdio;
void main(char[][] args)
{
writefln( "Hello, World!!" );
}
N-Primeiros Números Perfeitos
/*
Para compilar:
rdmd NumerosPerfeitos.d
*/
import std.c.stdio;
void main(char[][] args)
{
int n; // n primeiros números perfeitos
int num = 0;
int soma;
int contador = 0;
printf( "Entre com o valor de 'N': ");
scanf("%d", &n);
printf( "\nOs N primeiros numeros perfeitos sao:\n");
do
{
num += 1;
soma = 0;
for ( int i=1; i <= num-1 ; i++ )
{
if( (num % i) == 0 )
{
soma += i;
}
}
if ( soma == num )
{
printf("%d\n", soma);
contador += 1;
}
}while (contador != n);
}
/*
NÚMEROS PERFEITOS
- Um número se diz perfeito se é igual a soma de seus divisores próprios.
- Divisores próprios de um número positivo N são todos os divisores inteiros positivos de N exceto o próprio N.');
- Por exemplo, o número 6, seus divisores próprios são 1, 2 e 3, cuja soma = 6 (1 + 2 + 3 = 6);
Outro exemplo é o número 28, cujos divisores próprios são 1, 2, 4, 7 e 14, e a soma dos seus divisores próprios
é 28 (1 + 2 + 4 + 7 + 14 = 28)
*/
Classes
class A
{
public this() //Construtor
{
x = 10.0 + 7i;
}
private cfloat x; //número complexo
}
class B : A
{
public this()
{
super(); //Chama o construtor da classe pai
}
}
Arrays
//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
int[] b;
for(int i=0; i<30; i++)
{
b ~= i;
}
int[] c;
c = b[1..10]; //c[0]= b[1], c[1] =b[2] ... c[8]= b[9]
int[] d;
d = a ~ c; // d[0]=a[0],d[1]=a[1]...,d[10]=a[10],d[11]=c[0]... d[19]=c[8]
int* p = b.ptr; //p aponta para o primeiro elemento de b
for(int i=0; i<b.length; i++)
printf("%d\n", *(p+i));
c.sort; //ordena o vetor c
//Arranjos associativos:
int[char[]] a; //array associativo
a["hello"] = 4;
a["tchau"] = 10;
a["oi"] = 50;
a["nome"] = 70;
int* p;
p = ("tchau" in a); //p aponta para uma chave de índice "tchau" e se ela
//não existir, p será igual a null
if(p != null) //encontrou o índice
{
printf("%d\n", *p);
}
a.remove("oi"); //remove a chave "oi"
uint toHash(char[] str)
{
uint hash;
foreach (char c; str)
hash = (hash * 9) + c;
return hash;
}
é o mesmo que
uint toHash(char[] str)
{
uint hash;
for(int i=0; i<str.length; i++)
{
char c = str[i];
hash = (hash * 9) + c;
}
return hash;
}
Ver também
Ligações externas
- Sítio oficial (em inglês)
- «Página em pt-BR» (em português)
- «Página de Walter Bright» (em English)
- «Repositório de programas e projetos escritos em D» (em English)
- «Toolkit gráfico para a linguagem baseado no GTK+» (em English)
- «Tutoriais e arquivos de referência para a linguagem» (em English)
- «DMD - compilador para a D» (em English)
- «Comparação de D com C, C++, C# e Java» (em English)
bg:D (език за програмиране) ca:Llenguatge D cs:D (programovací jazyk) de:D (Programmiersprache) en:D (programming language) eo:D (programlingvo) es:D (lenguaje de programación) fa:زبان برنامهنویسی دی fi:D (ohjelmointikieli) fr:D (langage) gl:Linguaxe de programación D hu:D programozási nyelv id:D (bahasa pemrograman) it:D (linguaggio) ja:D言語 ka:D (პროგრამირების ენა) ko:D (프로그래밍 언어) la:D (lingua programmandi) ms:Bahasa pengaturcaraan D nl:D (programmeertaal) no:D (programmeringsspråk) pl:D (język programowania) ru:D (язык программирования) sk:D (programovací jazyk) sv:D (programspråk) tr:D programlama dili zh:D語言