Conceitos de Linguagens de  
Programação  
Aula 02 – Classificação e Paradigmas de  
Linguagens de Programação  
Edirlei Soares de Lima  
<edirlei@iprj.uerj.br>  
Classificação das Linguagens  
•
As linguagens de programação podem ser classificadas em  
relação a três critérios:  
–
–
–
Em relação ao nível:  
•
Baixo nível, Médio nível, ou Alto nível;  
Em relação à geração:  
•
1ª Geração, 2ª Geração, 3ª Geração, 4ª Geração, ou 5ª Geração;  
Em relação ao paradigma:  
•
Imperativo, Funcional, Lógico, Orientado a Objetos, ...;  
Classificação das Linguagens: Nível  
1. Baixo Nível:  
–
As linguagens de Baixo Nível são aquelas voltadas para a  
máquina, ou seja as que são escritas utilizando as  
instruções do microprocessador do computador.  
–
São genericamente chamadas de linguagens Assembly. Os  
programas escritos com Alto Nível geralmente podem ser  
convertidos com programas especiais para Baixo Nível.  
section.text  
global _start  
_
start:  
mov eax,'3'  
Assembly – Exemplo  
sub eax,'0'  
mov ebx,'4'  
sub ebx,'0'  
add eax,ebx  
add eax,'0'  
mov [sum],eax  
mov ecx,msg  
mov edx,len  
mov ebx,1  
mov eax,4  
int 0x80  
mov ecx,sum  
mov edx,1  
mov ebx,1  
mov eax,4  
int 0x80  
mov eax,1  
int 0x80  
section .data  
msg db "Resultado:",0xA,0xD  
len equ $ - msg  
segment .bss  
sum resb 1  
Classificação das Linguagens: Nível  
1. Baixo Nível:  
–
Vantagens:  
•
Os programas são executados com maior velocidade de  
processamento;  
•
Os programas ocupam menos espaço na memória;  
–
Desvantagens:  
•
Códigos Assembly não são estruturados, tornando a programação  
mais difícil...  
Classificação das Linguagens: Nível  
2. Médio Nível:  
–
São linguagens voltadas ao ser humano e a máquina;  
–
Estas linguagens são uma mistura entre as linguagens de  
Alto Nível e as de Baixo Nível;  
–
Estas linguagens de programação contêm comandos muito  
simples e outros mais complicados, o que pode tornar a  
programação um pouco "complicada".  
Classificação das Linguagens: Nível  
2. Médio Nível:  
–
Exemplo – Linguagem C: pode-se acessar registros do  
sistema e trabalhar com endereços de memória  
(
tempo realizar operações de alto nível (if...else; while; for).  
características de linguagens de baixo nível) e ao mesmo  
int x, y, *p;  
y = 0;  
int vet[6] = {1, 2, 3, 4, 5};  
p = &y;  
printf("%d\n", vet);  
x = *p;  
printf("%d\n", *vet);  
printf("%d\n", *(vet + 2));  
x = 4;  
(
*p)++;  
x--;  
*p) += x;  
(
Classificação das Linguagens: Nível  
2. Médio Nível:  
–
–
Vantagens:  
•
Geralmente são linguagens poderosas, permitindo a criação de  
diversos softwares, desde jogos a programas de alta performance.  
Desvantagens:  
•
Alguns comandos têm uma sintaxe um pouco difícil de  
compreender.  
Classificação das Linguagens: Nível  
3. Alto Nível:  
–
São linguagens voltadas para o ser humano. Em geral  
utilizam sintaxe mais estruturada, tornando o seu código  
mais fácil de entender.  
–
–
São linguagens independentes de arquitetura.  
•
Um programa escrito em uma linguagem de alto nível, pode ser  
migrado de uma máquina a outra sem nenhum tipo de problema.  
Permitem ao programador se esquecer completamente do  
funcionamento interno da máquina.  
•
Sendo necessário um tradutor que entenda o código fonte e as  
características da máquina.  
Classificação das Linguagens: Nível  
3. Alto Nível:  
–
Exemplos: Lua, Java, C#, C++...  
nota = io.read()  
Scanner entrada = new Scanner(System.in);  
mes = entrada.nextInt();  
switch (mes)  
if nota < 3.0 then  
io.write("Reprovado") {  
elseif nota >= 5.0 then  
io.write("Aprovado")  
else  
case 1:System.out.println("Janeiro");  
break;  
case 2:System.out.println("Fevereiro");  
io.write("Prova final")  
end  
break;  
case 3:System.out.println("Marco");  
break;  
default:  
System.out.println("Outro");  
break;  
}
Classificação das Linguagens: Nível  
3. Alto Nível:  
–
Vantagens:  
•
Por serem compiladas ou interpretadas, têm maior portabilidade,  
podendo ser executados em várias plataformas com pouquíssimas  
modificações.  
•
Em geral, a programação é mais fácil.  
–
Desvantagens:  
•
Em geral, as rotinas geradas (em linguagem de máquina) são mais  
genéricas e, portanto, mais complexas e por isso são mais lentas e  
ocupam mais memória.  
Classificação das Linguagens: Geração  
Classificação das Linguagens: Geração  
1
ª Geração: linguagens em nível de máquina:  
–
Os primeiros computadores eram programados em  
linguagem de máquina, em notação binária.  
–
Exemplo:  
0010 0001 0110 1100  
•
Realiza a soma (código de operação 0010) do dado armazenado no  
registrador 0001, com o dado armazenado na posição de memória  
1
08 (0110 1100)  
Classificação das Linguagens: Geração  
1
ª Geração: linguagens em nível de máquina:  
–
–
–
Cada instrução de máquina é, em geral, formada por um  
código de operação e um ou dois endereços de  
registradores ou de memória;  
As linguagens de máquina permitem a comunicação direta  
com o computador em termos de "bits", registradores e  
operações de máquina bastante primitivas;  
Um programa em linguagem de máquina nada mais é que  
uma sequência de zeros e uns, a programação de um  
algoritmo complexo usando esse tipo de linguagem é  
complexa, cansativa e fortemente sujeita a erros.  
Classificação das Linguagens: Geração  
2
ª Geração: linguagens de montagem (Assembly):  
–
Compreende as linguagens simbólicas ou de montagem  
(
programação em notação binária.  
Assembly), projetadas para minimizar as dificuldades da  
–
Códigos de operação e endereços binários foram  
substituídos por mnemônicos (abreviações).  
mov mul add label goto  
Classificação das Linguagens: Geração  
2ª Geração: linguagens de montagem (Assembly):  
–
Exemplo de tradução de IF para Assembly:  
_start:  
if (a == b)  
cmp eax, ebx  
{
jne .L7  
c = d;  
}
mov edx, ecx  
.L7:  
d = a + c;  
mov eax, edx  
add ecx, edx  
Classificação das Linguagens: Geração  
2
ª Geração: linguagens de montagem (Assembly):  
Códigos de operação e endereços binários foram  
substituídos por abreviações. Assim, a instrução de  
máquina 0010 0001 0110 1100 evoluiu para:  
–
add r1 total  
•
R1 representa o registrador 1 e TOTAL é o nome atribuído ao  
endereço de memória 108.  
–
Nas linguagens de montagem, a maioria das instruções são  
representações simbólicas de instruções de máquina.  
Porém, os programas requerem tradução para linguagem  
de máquina.  
Classificação das Linguagens: Geração  
3
ª Geração: linguagens orientadas ao usuário:  
–
Surgiram na década de 60.  
–
Algumas delas são orientadas à solução de problemas  
científicos, já outras são usadas para aplicações comerciais.  
–
As instruções oferecidas por essas linguagens pertencem,  
em geral, a três classes:  
•
•
•
Instruções entrada/saída;  
Instruções de cálculos aritméticos ou lógicos;  
Instruções de controle de fluxo de execução (desvios condicionais,  
incondicionais e processamento iterativo);  
Classificação das Linguagens: Geração  
3
ª Geração: linguagens orientadas ao usuário:  
–
Exemplos de linguagens orientadas ao usuário: BASIC,  
ALGOL, PL/I, PASCAL, ADA, C, etc.  
–
Exemplo: BASIC  
VAR number = 8  
IF number < 0 THEN  
PRINT "Number is negative"  
ELSEIF number > 0 THEN  
PRINT "Number is positive"  
ELSE  
PRINT "Number is zero"  
END IF  
Classificação das Linguagens: Geração  
3
ª Geração: linguagens orientadas ao usuário:  
–
Exemplos de linguagens orientadas ao usuário: BASIC,  
ALGOL, PL/I, PASCAL, ADA, C, etc.  
–
Exemplo: PASCAL  
program teste;  
var  
i : byte;  
begin  
writeln('Digite um numero = ');  
readln(i);  
if i <= 10 then  
writeln('É menor ou igual a 10!')  
else  
writeln('É maior que 10!');  
end.  
Classificação das Linguagens: Geração  
3
ª Geração: linguagens orientadas ao usuário:  
–
Nesta geração surgiram também linguagens declarativas, as  
quais dividem-se, basicamente, em duas classes:  
•
Funcionais: as quais se baseiam na teoria das funções recursivas.  
Exemplo: LISP;  
•
Lógicas: cuja base é a lógica matemática. Exemplo: Prolog.  
–
As linguagens dessa geração requerem um tradutor para  
transformar os seus comandos em linguagem de máquina.  
•
Compiladores;  
•
Interpretadores.  
Classificação das Linguagens: Geração  
4
ª Geração: linguagens orientadas à aplicação:  
–
As linguagens de 3ª geração foram projetadas para  
programadores experientes e não para usuários finais.  
–
A depuração de programas escritos nessas linguagens  
consome tempo, e a modificação de sistemas complexos é  
relativamente difícil.  
–
As linguagens de 4ª geração foram projetadas em resposta  
a esses problemas.  
Classificação das Linguagens: Geração  
4
ª Geração: linguagens orientadas à aplicação:  
–
Os programas escritos em linguagens de 4ª geração  
necessitam de menor número de linhas de código do que os  
programas correspondentes codificados em linguagens de  
programação convencionais.  
–
Exemplo: ler e exibir uma imagem em MATLAB:  
A = imread('image.jpg');  
image(A);  
Classificação das Linguagens: Geração  
4
ª Geração: linguagens orientadas à aplicação:  
– Exemplo: ler uma imagem em C:  
BYTE* LoadBMP(int* width, int* height, long* size, LPCTSTR bmpfile)  
{
BITMAPFILEHEADER bmpheader;  
BITMAPINFOHEADER bmpinfo;  
DWORD bytesread;  
HANDLE file = CreateFile (bmpfile , GENERIC_READ, FILE_SHARE_READ,  
NULL, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL);  
if (NULL == fil )  
return NULL;  
...  
*size = bmpheader.bfSize - bmpheader.bfOffBits;  
BYTE* Buffer = new BYTE[ *size ];  
SetFilePointer(file, bmpheader.bfOffBits, NULL, FILE_BEGIN);  
if ( eadFile(file, Buffer, *size, &bytesread, NULL ) == false)  
{
...  
Classificação das Linguagens: Geração  
4
ª Geração: linguagens orientadas à aplicação:  
–
As linguagens de 4ª geração variam bastante no número de  
facilidades oferecidas ao usuário.  
–
Algumas são, meramente, geradores de relatórios ou  
pacotes gráficos. Outras são capazes de gerar aplicações  
completas.  
–
Em geral, essas linguagens são projetadas para atender a  
classes específicas de aplicações.  
Classificação das Linguagens: Geração  
4
ª Geração: linguagens orientadas à aplicação:  
– Principais objetivos:  
•
Facilitar a programação de computadores de tal maneira que  
usuários finais possam resolver seus problemas;  
•
•
•
•
Apressar o processo de desenvolvimento de aplicações;  
Facilitar e reduzir o custo de manutenção de aplicações;  
Minimizar problemas de depuração;  
Gerar código sem erros a partir de requisitos de expressões de alto  
nível.  
–
Exemplos de linguagens de 4ª geração: SQL, Oracle  
Reports, MATLAB, PowerBuilder, Scilab, Strata, ...  
Classificação das Linguagens: Geração  
5
ª Geração: linguagens do conhecimento:  
–
Linguagens de programação para resolução de problemas a  
partir de restrições dadas para o programa em vez de  
desenvolver algoritmos.  
–
–
São usadas principalmente na área de Inteligência Artificial.  
Facilitam a representação do conhecimento, o que é  
essencial para a simulação de comportamentos inteligentes.  
Classificação das Linguagens: Geração  
5
ª Geração: linguagens do conhecimento:  
–
–
–
Linguagens de programação lógica e linguagens baseadas  
em restrições geralmente pertencem a 5ª geração.  
•
Exemplo: Prolog  
Na década de 80, as linguagens de 5ª geração eram  
consideradas o futuro da computação. Sendo surgido que  
elas substituiriam as linguagens de gerações anteriores.  
Problema: desenvolver algoritmos genéricos e eficientes é  
um problema complexo.  
Classificação das Linguagens: Paradigma  
•
Paradigma é um modelo interpretativo (ou conceitualização)  
de uma realidade.  
•
•
Permite organizar as ideias com vista:  
–
Ao entendimento dessa realidade;  
–
À determinação de qual a melhor forma de atuar sobre essa realidade.  
Pode dizer-se que um paradigma é um ponto de vista: um  
ponto de vista que determina como uma realidade é entendida  
e como se atua sobre ela.  
Classificação das Linguagens: Paradigma  
•
Algumas linguagens criadas durante a história introduziram  
novas formas de se pensar sobre programação, resultando em  
formas distintas de modelagem de soluções de software.  
–
–
–
–
FORTRAN (imperativa);  
LISP (funcional);  
Simula (orientadas a objetos);  
Prolog (lógica).  
•
Outras linguagens são o resultado da evolução de linguagens  
mais antigas, muitas vezes mesclando características de  
diferentes linguagens existentes.  
–
Por exemplo, C++ é uma evolução do C com características de  
orientação a objetos, importadas de Simula.  
Classificação das Linguagens: Paradigma  
•
Paradigma imperativo (sequência, atribuição, estado): Basic,  
Pascal, C, Ada, Fortran, Cobol, Assembly...  
•
Paradigma funcional (função, aplicação, avaliação): Lisp,  
Haskell, Erlang, Scheme...  
•
•
Paradigma lógico (relação, dedução): Prolog.  
Paradigma orientado a objetos (objeto, estado, mensagem):  
C++, Java, C#, Eiffel, Smalltalk, Python...  
•
Paradigma concorrente (processo, comunicação (síncrona ou  
assíncrona)): C++, C#, Java...  
Classificação das Linguagens: Paradigma  
Classificação das Linguagens: Paradigma  
1. Paradigma Imperativo:  
–
–
–
As linguagens imperativas são orientadas a ações, onde a  
computação é vista como uma sequência de instruções  
que manipulam valores de variáveis (leitura e atribuição).  
Os programas são centrados no conceito de um estado  
(
manipulam o estado.  
modelado por variáveis) e ações (comandos) que  
Paradigma também denominado de procedural, por incluir  
subrotinas ou procedimentos como mecanismo de  
estruturação.  
Classificação das Linguagens: Paradigma  
1. Paradigma Imperativo:  
–
Baseia-se na arquitetura de computadores Von Neumann:  
•
•
•
Programas e dados são armazenados na mesma memória;  
Instruções e dados são transmitidos da CPU para a memória, e vice-versa;  
Resultados das operações executadas na CPU são retornadas para a memória.  
Classificação das Linguagens: Paradigma  
1. Paradigma Imperativo:  
–
Subdivide-se em estruturado e não-estruturado.  
–
Linguagens não-estruturadas geralmente fazem uso de  
comandos goto ou jump. Exemplos – Assembly e Basic:  
_start:  
cmp eax, ebx  
10 PRINT "Hello"  
jne .L7  
20 GOTO 50  
mov edx, ecx  
30 PRINT "This text will not be printed"  
.L7:  
40 END  
mov eax, edx  
add ecx, edx  
50 PRINT "Goodbye“  
Classificação das Linguagens: Paradigma  
1. Paradigma Imperativo:  
–
As linguagens estruturadas surgiram objetivando facilitar a  
leitura e execução de algoritmos – não fazem o uso do goto.  
•
Instruções são agrupadas em blocos, os quais podem ser  
considerados como unidades do programa;  
–
Blocos de instruções podem ser selecionados para execução  
através de declarações de seleção como if … else, ou  
repetidamente executados através de declarações de  
repetição (for, while...).  
Classificação das Linguagens: Paradigma  
1. Paradigma Imperativo:  
–
Exemplo de linguagem estruturada – C:  
int busca(int n, int *vet, int elem)  
{
int i;  
for (i = 0; i < n; i++)  
{
if (elem == vet[i])  
{
return i;  
}
}
return -1;  
}
Classificação das Linguagens: Paradigma  
1
. Paradigma Imperativo:  
Linguagens estruturadas permitem a criação de  
procedimentos (funções);  
–
–
Procedimentos criam um nível de abstração, onde não é  
necessário conhecer todos os passos de execução de um  
procedimento, apenas qual sua função e quais os pré-  
requisitos para sua execução correta;  
–
Linguagens estruturadas modulares criam um outro  
mecanismo de abstração – módulo: composto de  
definições de variáveis e procedimentos, agrupados de  
acordo com critérios específicos.  
Classificação das Linguagens: Paradigma  
1. Paradigma Imperativo:  
–
Exemplos de Linguagens Imperativas:  
•
•
•
•
•
•
•
•
FORTRAN  
BASIC  
COBOL  
Pascal  
C
ALGOL  
Modula  
…
Classificação das Linguagens: Paradigma  
1. Paradigma Imperativo:  
–
Vantagens:  
•
•
•
Eficiência;  
Modelagem "natural" de aplicações do mundo real;  
Paradigma dominante e bem estabelecido;  
–
Desvantagens:  
•
•
•
Possui difícil legibilidade e facilita introdução de erros em sua  
manutenção;  
Descrições demasiadamente profissional focaliza o "como" e não o  
"quê“;  
Tende a gerar códigos confusos, onde tratamento dos dados são  
misturados com o comportamento do programa;  
Classificação das Linguagens: Paradigma  
2
. Paradigma Funcional:  
–
–
–
Trata a computação como um processo de avaliação de  
funções matemáticas, evitando o uso de estados ou dados  
mutáveis;  
Enfatiza a aplicação de funções, em contraste da  
programação imperativa, que enfatiza mudanças no estado  
do programa;  
A visão funcional resulta num programa que descreve as  
operações que devem ser efetuadas para resolver o  
problema.  
Classificação das Linguagens: Paradigma  
2. Paradigma Funcional:  
–
Programar em uma linguagem funcional consistem em  
pensar qual função deve ser aplicada para transformar  
uma entrada qualquer na saída desejada.  
–
Ao invés dos passos sucessivos do paradigma imperativo, a  
sintaxe da linguagem é apropriada para definição de  
funções compostas que denotam aplicações sucessivas de  
funções:  
função(... função2(função1(dados)) ...)  
Classificação das Linguagens: Paradigma  
2. Paradigma Funcional:  
–
Exemplo: Distancia entre dois pontos em C  
#
#
include <stdio.h>  
include <math.h>  
float dist(float PX1, float PY1, float PX2, float PY2)  
{
float res = sqrt((PX2 – PX1)*(PX2 – PX1) +  
(PY2 – PY1)*(PY2 – PY1));  
return res;  
}
int main()  
{
float f = dist(2.0, 4.0, 3.0, 1.0);  
printf("Distance = %f", f);  
return 0;  
}
Classificação das Linguagens: Paradigma  
2. Paradigma Funcional:  
–
Exemplo: Distancia entre dois pontos em Haskell  
dist x1 y1 x2 y2 = sqrt(((x2 - x1)^2) + ((y2 - y1)^2))  
main = print(dist 2.0 4.0 3.0 1.0)  
–
Características da programação funcional:  
•
Programas são funções que descrevem uma relação explícita e  
precisa entre E/S;  
•
Estilo declarativo: não há o conceito de estado nem comandos  
como atribuição;  
Classificação das Linguagens: Paradigma  
2. Paradigma Funcional:  
–
Exemplos de Linguagens Funcionais:  
•
•
•
•
•
•
•
•
•
Haskell;  
Scheme;  
Common LISP;  
CLOS (Common LISP Object System);  
Miranda;  
ML;  
Erlang;  
Ocaml;  
…
Classificação das Linguagens: Paradigma  
2. Paradigma Funcional:  
–
Vantagens:  
•
Simplifica a resolução de alguns tipos problemas:  
–
Prova de propriedades;  
–
Resolução de programas de otimização;  
–
Desvantagens:  
•
•
•
Problema: o mundo não é funcional!  
Implementações ineficientes;  
Mecanismos primitivos de E/S;  
Classificação das Linguagens: Paradigma  
3. Paradigma Lógico:  
–
Paradigma de programação baseado em lógica formal;  
–
Um programa lógico é equivalente à descrição do  
problema expressa de maneira formal, similar à maneira  
que o ser humano raciocinaria sobre ele;  
–
A programação lógica consiste em declarar fatos, que  
podem ser relações (associações) ou regras que produzem  
fatos deduzidos a partir de outros.  
Classificação das Linguagens: Paradigma  
3. Paradigma Lógico:  
–
Programação em linguagens lógicas requer um estilo mais  
descritivo;  
–
O programador deve conhecer os relacionamentos entre  
as entidades e conceitos envolvidos para descrever os  
fatos relacionados ao problema;  
–
–
Programas descrevem um conjunto de regras que  
disparam ações quando suas premissas são satisfeitas;  
Principal linguagem lógica: Prolog  
Classificação das Linguagens: Paradigma  
3. Paradigma Lógico:  
–
Exemplo Prolog:  
tropical(caribe).  
tropical(havai).  
praia(caribe).  
praia(havai).  
bonito(havai).  
bonito(caribe).  
paraiso_tropical(X) :- tropical(X), praia(X), bonito(X).  
?- paraiso_tropical(X).  
Classificação das Linguagens: Paradigma  
3. Paradigma Lógico:  
–
Exemplo Prolog:  
pai(fred, marcos).  
pai(ricardo, pedro).  
pai(pedro, paulo).  
avo(X,Y) :- pai(X, Z), pai(Z, Y).  
?- avo(X, paulo).  
Compilador Online: http://www.tutorialspoint.com/execute_prolog_online.php  
Classificação das Linguagens: Paradigma  
3. Paradigma Lógico:  
–
–
Vantagens:  
•
Permite a concepção da aplicação em alto nível de abstração;  
•
Linguagem mais próxima do raciocínio humano;  
Desvantagens:  
•
Dificuldade em expressar algoritmos complexos;  
•
Complexidade exponencial;  
Classificação das Linguagens: Paradigma  
4. Paradigma Orientado a Objetos:  
–
Tratam os elementos e conceitos associados ao problema  
como objetos;  
–
Objetos são entidades abstratas que embutem dentro de  
suas fronteiras, as características e operações relacionadas  
com a entidade real;  
Classificação das Linguagens: Paradigma  
4. Paradigma Orientado a Objetos:  
–
Sugere a diminuição da distância entre a modelagem  
computacional e o mundo real:  
•
O ser humano se relaciona com o mundo através de conceitos de  
objetos;  
•
•
Estamos sempre identificando qualquer objeto ao nosso redor;  
Para isso lhe damos nomes, e de acordo com suas características  
lhes classificamos em grupos;  
–
Sistemas são vistos como coleções de objetos que se  
comunicam, enviando mensagens, colaborando para dar o  
comportamento global dos sistemas.  
Classificação das Linguagens: Paradigma  
4. Paradigma Orientado a Objetos:  
Classe Carro  
–
Uma aplicação é estruturada em  
módulos (classes) que agrupam um  
estado (atributos) e operações  
(métodos) sobre este;  
–
A classe é o modelo ou molde de  
construção de objetos. Ela define as  
características e comportamentos  
que os objetos irão possuir.  
Objeto Carro2  
Classificação das Linguagens: Paradigma  
4. Paradigma Orientado a Objetos:  
–
A orientação a objetos permite que classes possam  
"herdar" as características e métodos de outra classe para  
expandi-la ou especializá-la de alguma forma.  
Transporte  
Aquático  
Barco  
Terrestre  
Carro  
Aéreo  
Avião  
Classificação das Linguagens: Paradigma  
4. Paradigma Orientado a Objetos:  
–
Exemplo em Java:  
public class Carro {  
private String marca;  
private String cor;  
private String placa;  
private int portas;  
private int marcha;  
private double velocidade;  
Carro  
Atributos  
Métodos  
- Marca: Texto  
Cor: Texto  
Placa: Texto  
N° Portas: Inteiro  
-
-
-
public void Acelerar()  
{
velocidade += marcha * 10;  
}
public void Frear()  
{
.
..  
+ Acelerar(): void  
Frear(): void  
TrocarMarcha(x): void  
Buzinar(): void  
+
+
+
velocidade -= marcha * 10;  
}
.
..  
}
Classificação das Linguagens: Paradigma  
4. Paradigma Orientado a Objetos:  
–
Exemplos de Linguagens Orientadas a Objetos:  
•
•
•
•
•
•
•
•
•
•
•
SIMULA 67;  
Smalltalk;  
C++;  
Java;  
C#;  
ADA;  
Eiffel;  
Perl;  
Ruby;  
PHP;  
…
Classificação das Linguagens: Paradigma  
4. Paradigma Orientado a Objetos:  
–
Vantagens:  
•
•
•
•
Organização do código;  
Aumenta a reutilização de código;  
Reduz tempo de manutenção de código;  
Ampla utilização comercial;  
–
Desvantagens:  
•
Menos eficientes;  
Leitura Complementar  
•
Sebesta, Robert W. Conceitos de Linguagens  
de Programação. Editora Bookman, 2011.  
•
•
Capítulo 1: Aspectos Preliminares  
Capítulo 2: Evolução das Principais  
Linguagens de Programação