[Indicação] Conceitos básicos e fundamentais na programação
Tópico: [Indicação] Conceitos básicos e fundamentais na programação
18 Mar 2014, 23:10 #1
Para os iniciantes que querem ter uma boa base e para os avançados que querem ter uma referência.
Essencialmente computadores reconhecem apenas uma linguagem específica, formada por instruções relacionadas a micro instruções registradas no micro programa do processador. Esta linguagem é chamada linguagem ou código de máquina e é extremamente incompreensível. =P
A forma usada para solucionar a questão é relativamente simples: a criação de «tradutores» que permitam que o programa seja escrito em linguagens mais inteligíveis para então ser «traduzido» para a linguagem de máquina. Há alguns tipos diferentes de tradução, como montagem, compilação, interpretação e interpolação. Veremos mais a frente.
Por exemplo, a linguagem Assembly possui uma instrução para cada instrução de máquina, sendo assim uma linguagem de baixo nível. Isso traz dois inconvenientes:
É preciso entender como cada processador funciona para a criação do programa.
O programa se torna pouco portável, sendo necessário reescrevê-lo para cada tipo de diferente de processador.
Na compilação há em geral mais de um programa trabalhando, basicamente o compilador, que gera um objeto que faz chamadas a procedimentos que não possui, e o link-editor, que liga ao objeto outros objetos, chamados bibliotecas, que possuem os procedimentos necessários, gerando o objeto final ou código de máquina.
Por último existe a interpolação, que possui duas variações:
O interpretador recebe o código e gera um objeto em código de máquina, mas somente em memória, e este objeto é executado diretamente da memória (ex.: Perl).
O interpretador recebe o código e gera um bytecode em memória que é executado por uma máquina virtual (como Python e Lua).
Algumas linguagens podem trabalhar com traduções diferentes. Por exemplo, Perl pode ser interpretado ou compilado. Python e Lua podem ser interpretados com máquina virtual, ou compilados para bytecode (que será também interpretado por uma máquina virtual).
Esta é uma definição discreta. Há duas formas distintas de tratar os tipos de dados: ou o tipo está associado ao dado, ou está associado à variável que o contém.
Por outro lado na tipagem dinâmica o dado sempre se comportará da mesma forma independente da variável à qual foi associado e na tipagem estática o dado se comportará de formas diferentes de acordo com a variável que o contém.
A ideia é que o programa seja divido em pequenos procedimentos estruturados, chamados sub-rotinas ou funções. O programa é desenvolvido a partir das funções mais abstratas e terminando pelas mais específicas (desenvolvimento top-down).
Script é um código interpretado(muitas vezes por máquina virtual) que consiste em agregar componentes pré-compilados.
Pela definição, a grande maioria das linguagens modernas são linguagens de scripting(inclusive Java).
Na prática «linguagem de scripting» é só um conceito arbitrário usado ou pejorativamente para mal falar alguma linguagem ou para dizer que uma linguagem é muito fácil de ser aprendida.
Texto por Rodrigo Cacilhas (La Batalema Pitonisto), Fonte
Última edição por str0p; 21 Mar 2014 às 11:38.
21 Mar 2014, 11:49 #2
Muito bem elaborado o artigo. :-)
Tomei a liberdade de trazer o conteúdo para cá, caso por ventura o texto original deixe de existir(a fonte está no rodapé do post).