Posts Tagged Linguagens de Programação
Linguagens de Programação – Conceitos Básicos
Posted by Godoy in Linguagens de Programação on August 20th, 2008
Olá a todos!
Hoje vou mostrar características de algumas linguagens de programação, como podem ser classificadas, as principais diferenças e semelhanças. Entendam que o assunto é muito extenso, existem livros e mais livros que se aprofundam no assunto. Portanto, o que farei aqui é mostrar por alto os principais conceitos e facilitar um estudo posterior.
Mas porque estudar essa teoria toda? Sempre me perguntava isso enquanto assistia às aulas da disciplina “Linguagens de Programação” na universidade. O estudo das características das linguagens de programação servem como ponto de apoio para o estudo comparativo de aspectos relevantes ao projeto e desenvolvimento de sistemas. Decidir qual linguagem utilizar é um ponto crucial no desenvolvimento de qualquer sistema.
Inicialmente, podemos classificar uma linguagem de programação em paradigmas. Dentre eles se destacam: procedural, orientado a objetos, funcional e lógico.
Procedural: C, Pascal, Perl.
Orientado a objetos: C++, Java, Smalltalk.
Funcional: LISP
Lógico: PROLOG
Como vocês podem observar pelos exemplos, os paradigmas procedural e orientado a objeto compõem a grande maioria dos softwares comerciais. Já os paradigmas funcional e lógico são comumente utilizados em sistemas de inteligência artificial e estudos científicos.
Outro ponto em que as linguagens se distinguem é que elas podem ser:
Interpretadas: Como o próprio nome diz, são interpretadas em tempo de execução. Exemplos: Perl, ASP, PHP e Basic.
Compiladas: O compilador traduz o programa fonte para linguagem compilada (executável). Isso ocorre apenas uma vez, não importando quantas vezes será executado. A grande vantagem é que os usuários não terão conhecimento do código fonte e os programas gerados são normalmente mais rápidos que programas em linguagens interpretadas. Exemplos: C++, Pascal e VB.
Híbridas: É um conceito relativamente novo, e se destaca por unir os dois conceitos anteriores. Procura unir a segurança das linguagens compiladas e a portabilidade das interpretadas utilizando uma linguagem intermediária (bytecode). Exemplos: Java e .NET.
As diferenças entre escopo dinâmico e escopo estático está no instante em que eles são determinados.
O escopo estático é determinado em tempo de compilação, e fica evidente no próprio código. Já o escopo dinâmico é determinado em tempo de execução, dependendo do fluxo do programa (ou seja, determinado dinamicamente).
As linguagens podem ser fortemente tipadas, ou seja, a verificação de tipos é feita em tempo de compilação (as conversões devem ser explícitas). São exemplos: Ada, C++ e Java. Um exemplo de linguagem fracamente tipada é o PHP (não é necessário declarar o tipo da variável).
Então é isso.. acredito que conhecendo esses pontos vocês já serão capazes de discernir e analisar quando utilizar as várias linguagens de programação.
Abraço!
