joberto.martins@unifacs.br
Linguagens de
Programação
Fundamentos para
Computação
Programação em computadores
Primordios
Programar não era Necessário diversos
conhecimentos sobre a CPU,
simples inicialmente: linguagem não era natural
Utiliza mnemônicos da
Linguagem para máquina de Von Neumann
3
Montadores
4
Linguagem para
Programar Computador
5
Compilador
• Programador cria seu código
(programa fonte) usando a sintaxe e
a semântica de uma linguagem(Ex.:
C) suportada por um compilador
• O que um Compilador faz?:
• Faz analisa léxica, sintática e
semântica do código escrito pelo
programador
• Gera um código intermediário
chamado de código objeto
• O que o Link Editor faz?
• Associa as instruções do código
objeto a instruções de bibliotecas
• O que o Montador faz?
• Gera o código executável que a
máquina entende
prg.pas prg.obj
prg.exe 6
Interpretador
• Outra forma de converter um programa fonte em código de máquina:
• Converte em linguagem de máquina linha a linha
• Cada linha executada em sequência
• Processo é mais lento, porém mais fácil de depurar
• Muito usado por alguns IDEs (Integrated Development Environment)
(Phyton, ...)
Linguagem
Alto nível Interpretador de máquina /
Execução
Linguagem
Alto nível Compilador Execução
de máquina
Linguagem
Baixo nível Montador Execução
de máquina
7
Alto nível
Linguagens
de
Programação
de Alto Nível
e Baixo Nível
Baixo nível
8
Linguagens de Programação
• Mais de 200 linguagens criadas entre
1952 e 1972
• 1957 - FORTRAN • 1978 - CSP
• 1958 - ALGOL • 1978 - FP
• 1960 - LISP • 1980 - dBASE II;
• 1960 - COBOL • 1983 - Smalltalk-80
• 1962 - APL • 1983 - ADA
• 1962 - SIMULA • 1983 - Parlog
• 1964 - BASIC • 1984 - Standard ML
• 1964 - PL/I • 1986 - C++
• 1966 - ISWIM • 1986 - CLP(R)
• 1970 - Prolog • 1986 - Eiffel
• 1972 - C • 1988 - CLOS
• 1975 - Pascal • 1988 – Mathematic
• 1975 - Scheme • 1990 - R
• 1977 - OPS5 • 1991 - Python
• 1991 - Java
9
Linguagem de Programação
• Definição:
• Conjunto de instruções e regras de composição e encadeamento
(sintaxe), por meio do qual se programam ações executáveis num
computador por meio de processos de compilação, interpretação ou
montagem
• Tipos:
• Linguagem de máquina (programação assembler)
• Linguagem procedural (programação procedural)
• Linguagem orientada a eventos (programação orientada a eventos)
• Linguagem orientada a objeto (programação orientada a objeto - POO)
• Linguagem orientada a aspecto (programação orientada a aspectos)
• Classificação das linguagens de programação:
• Objetivos gerais ou específicos
• Orientada para desenvolvimento ou científica
• Outras
10
Programas para Converter
Instruções e Linguagens
• Compilador:
• Tradutor de linguagem que traduz um programa completo para
um programa completo em linguagem de máquina.
• Interpretador:
• Tradutor de linguagem que converte cada instrução de um
programa em linguagem de máquina (tempo de execução)
• Montador:
• Programa que converte em linguagem de máquina as instruções
escritas em mnemônicos (símbolos) da linguagem Assembly
• Tradutor de linguagem (Programming Language Processor):
• Converte programas/ instruções de uma linguagem de
programação de alto nível em outra linguagem de programação
11
Gerações das Linguagens
13
Linguagens Basic, Pascal e C
• Características comuns:
• Objetivos gerais, orientada para procedimentos, em tempo real,
para aplicações científicas e de negócios
• Basic (Beginners All-purpose Symbolic Instruction Code):
• Desenvolvida por John Kemeny na Faculdade de Dartmouth,
1960
• Linguagem Pascal:
• Desenvolvida por Niklaus Wirth (Inst. Fed. de Tec., Suiça, 68)
• Excelente para aprendizado de técnicas de programação
• Linguagem C:
• Desenvolvida por Dennis Ritchie (Lab.Bell, 70)
• Permite amplo acesso a elementos internos do processador
• Multiplataforma, excelente para escrever softwares básicos
• Linguagem de programação do UNIX
14
Linguagens Orientadas a Objeto
• Encapsulamento:
• Itens de programação são agrupados e chamados de um
objeto
• Como construir um prédio usando módulos ou partes
pré-fabricadas (podem ser utilizados inúmeras vezes)
• Maior produtividade:
• Reutilização de códigos para construir novos aplicativos
• Maior confiabilidade:
• Aplicativos desenvolvidos em objetos testados pelo
tempo
• Objetos têm propriedades de polimorfismo e hereditariedade
• Linguagens:
• Java, C++, C#, PHP, outras
15
Linguagens Visuais
• Linguagens visuais:
16
Linguagens e
Máquina Virtual
17
Top Programming Languages
• https://www.tiobe.com/tiobe-index
• https://towardsdatascience.com/top-
10-in-demand-programming-
languages-to-learn-in-2020-
4462eb7d8d3e
18
Códigos em Diferentes Linguagens
Ilustração
Assembly C Java
Fortran
Fatorial
PHP
Cobol
19
Programas “Hello World”
20
Checklist
• Tradutores:
• Montadores, Compiladores, Interpretadores
• Link Editor:
• Linguagem de alto nível e linguagem de baixo nível:
• Linguagem de máquina, procedural, orientada a eventos, orientada
a objeto, orientada a aspecto
• Classificação das Linguagens:
• objetivo geral ou específico, orientada a negócio ou científica,
orientada para procedimentos ou problemas, processamento em
batch ou tempo real
• Gerações de Linguagens:
• 1ª geração linguagem de máquina, 2ª geração assembly, 3ª
geração alto nível, 4ª geração interrogativas, 5ª geração naturais
• Top 10 Languages:
• Exemplos de códigos
21