As linguagens de compilação foram influenciadas direta ou indiretamente pela Assembly, e a partir dessa linguagem, desenvolveram técnicas que facilitaram e muito a portabilidade dos códigos e o entendimento humano da programação. Em Assembly, conforme dito, um programa que imprima na tela uma linha com "Olá, mundo!" é escrito de maneira diferente dependendo da arquitetura e sistema operacional de seu computador, pois essa linguagem é a que trabalha mais diretamente com o computador, e computadores apresentam processadores e sistemas operacionais diferentes, logo, a escrita desse programa também será diferente de acordo com o hardware. Já nas linguagens de compilação, esse mesmo programa será escrito de uma única forma e será executado em vários sistemas operacionais e diversas arquiteturas diferentes: a portabilidade aumentou consideravelmente.
Essas linguagens, que são de médio a alto nível devido à aproximação com a escrita humana, usam de compiladores para transformarem código-fonte em binários. Mas, mesmo assim, um compilador é diferente de um assembler.
Assembly, por ser uma linguagem de máquina vista aos olhos humanos, faz com que um montador apenas faça o pré-processamento e transforme os bytes escritos no código-fonte diretamente em 0s e 1s. É como se fosse uma tradução de um idioma ao outro de forma literal. Um exemplo: se no inglês há a frase "Do you like hot dog?", a tradução será "Fazer você gostar quente cachorro?".
Nas linguagens compiladas, alguns compiladores transformam o código-fonte escrito em um Assembly mal otimizado, "sujo", e aplicam um montador. Outros, já transformam o código-fonte em binário, sem usar o Assembly, porém, a tradução que antes era literal agora não será mais. Sempre haverá pré-processamento.
Por serem de médio a alto nível, as linguagens de compilação possuem uma performance menor quando comparadas ao Assembly.
A seguir, algumas linguagens de compilação.
LINGUAGEM C
Em 1972,
Dennis Ritche e
Ken Thompson, da AT&T Bell Labs, criaram a linguagem de programação C, que seria sucessora da B, para desenvolver o sistema operacional Unix, o qual havia sido escrito até então em Assembly.
C pode ser considerada uma linguagem de médio nível, pois trouxe muitos recursos que aproximam a programação em si da língua inglesa e manteve características de acesso ao hardware, tanto é que o kernel do
Linux é escrito nessa linguagem. Um projeto como o Linux exige constante manutenção e organização, mas também precisa de desempenho e acesso aos recursos computacionais.
LINGUAGEM C++
C++ foi surgida no final da década de 70, mais precisamente no ano de 1979. Criada por
Bjarne Stroustrup, também da AT&T Bell Labs, essa linguagem inicialmente era conhecida como "C with classes", pois seu protótipo inicial era de que fosse a linguagem C orientada a objetos, trazendo recursos como classes, polimorfismo, herança etc.
Mais tarde, renomeou-se a linguagem para C++. Por que C++? Simples, em programação há um recurso conhecido como incremento, que é uma instrução que diz ao computador para somar um certo valor (por padrão 1) a um valor na memória. Por exemplo, em um certo endereço de memória, há um inteiro com valor 4, ao ser incrementado, receberá 5. A ideia por trás de C++ é dizer que há um C com algo a mais.
LINGUAGEM JAVA
Java foi uma linguagem desenvolvida por
James Gosling e sua equipe na
Sun Microsystems, empresa adquirida futuramente pela
Oracle Corporation. Influenciada pelo C++, essa linguagem trouxe à tona o conceito de JVM, que quer dizer Java Virtual Machine, ou seja, uma máquina virtual. Funciona da seguinte forma: os programas Java serão compilados e só serão executados na JVM, assim basta qualquer sistema operacional ou arquitetura ter essa máquina virtual que os softwares serão rodados.
O símbolo da linguagem Java é uma xícara de café, pois anteriormente queria-se que a linguagem da Sun se chamasse Oak, mas por já existir uma linguagem de programação com esse nome, a equipe que desenvolveu o Java, vendo que consumiam muito café produzidos na ilha de Java durante a confecção da linguagem, resolveu batizá-la de Java.
LINGUAGENS C# E OBJECTIVE-C
Ambas foram influenciadas também pelo C++, sendo a primeira pertencente à Microsoft e a segunda à Apple. C# integra a plataforma .NET da gigante de Redmond e é recomendada para desenvolvimento de aplicativos para Windows, como aplicações desktop ou aplicativos da Windows Store. Já Objective-C, foi projetada para desenvolvimento de aplicativos para iOS, o sistema operacional dos iPads e iPhones, e também para produção de aplicativos em Macs.
As duas empresas fornecem e incentivam um ambiente de desenvolvimento próprio delas às linguagens de cada uma. O Xcode para o Objective-C, e o Visual Studio ao C#.
LINGUAGENS PASCAL E BASIC
Ambas possuem como foco o aprendizado em lógica de programação. A primeira desenvolveu-se em 1970 por
Niklaus Wirth e recebeu esse nome em homenagem ao matemático Blaine Pascal. A segunda, em 1964 pelos professores do Dartmouth College, John George Kemeny, Mary Kenneth Keller e Thomas Eugene Kurtz. Beginner's All-purpose Symbolic Instruction Code, ou BASIC, deu origem ao Visual Basic, da Microsoft.
LINGUAGEM FORTRAN
Essa linguagem desenvolveu-se na IBM da década de 50 e significa IBM Mathematical FORmula TRANslation System. Projetada por John Backus e sua equipe na IBM, há diversas versões de Fortran, sendo que as mais recentes suportam orientação a objetos.
LINGUAGEM COBOL
Cobol nasceu em no final da década de 50, mais precisamente no ano de 1959, e significa COmmon Business Oriented Language. Voltada para aplicações empresariais e processamento de banco de dados, teve como seu principal criador Grace Murray Hopper, um contra-almirante norte-americano.