Linguagem de Programação
Processo: em edição
Procedimento: em edição
Unidade de Significado (Expressões primitivas): os elementos mais simples (atômico) da linguagem.
Meios de Abstração: os elementos compostos podem ser nomeados e manipulados como unidades.
Meios de Combinação: os elementos compostos são construídos a partir de elementos mais simples.
As partes importantes ao aprender uma nova linguagem de programação são:
- Sintaxe (syntax): as regras de construção da linguagem.
- Semântica (semantics): significado das características da linguagem, sendo o verificador de tipo (type-checker) em tempo de compilação (ambiente estático ou contexto - escopo léxico) para verificação (type checking) e/ou inferência (type inference) dos tipos; e a avaliação (evaluation) das expressões em tempo de execução (ambiente dinâmico ou ambiente - escopo dinâmico) para produção do valor.
- Expressão Idiomática (idioms): padrões típicos de utilização das características da linguagem.
- Bibliotecas (libraries): conjunto de código de apoio com o propósito de facilitar o desenvolvimento na linguagem. Aplicação -> Toolkits (Bibliotecas) -> Frameworks (Arcabouços).
- Ferramentas (tools): programas de auxílio ao desenvolvimento na linguagem, tais como compiladores, interpretadores, depuradores e etc...
Interpretação
Etapas de interpretação de um programa de computador:
[Source Code] --- code ---> [Tokenizer] --- token ---> [Parser] --- data structure ---> [Evaluator]
O código fonte é separado em palavras na qual são analisadas e transformadas em estrutura de dados, assim sendo executadas uma por vez.
Paradigma
Os paradigmas das linguagens de programação são:
- Declarativo
- Funcional
- Fluxo de Dados
- Lógico
- Imperativo
- Von Neumann: visão de software sobre a arquitetura do computador, com estruturas de controle (decisão e repetição) e funções.
- Orientada a Objetos: visão de abstração (antropomorfismo) do mundo real, com herança (inheritance), polimorfismo (polymorphism), abstração (abstraction) e encapsulamento (encapsulation).
- Script: uma forma dinâmica de resolver problemas computacionais.
- Programação Orientada a Linguagem
Muitas linguagens são multiparadigmas, principalmente com um balanço entre Orientada a Objetos/Script e Funcional, alguns casos com DSL em Fluxo de Dados.