You are on page 1of 8

Paradigmas de Linguagens de Programação – Marco Aurélio Freitas Santos - UNIGRAN

Aula 01

INTRODUÇÃO ÀS LINGUAGENS
DE PROGRAMAÇÃO

Fonte: http://tbdark.flogbrasil.terra.com.br

Esta aula foi baseada no artigo do Professor Leandro Ledel

1 INTRODUÇÃO
O estudo dos princípios e fundamentos de linguagens de programação é essencial para
qualquer profissional de programação. É a partir desse estudo que as características específicas
de cada linguagem podem ser identificadas, permitindo que programas de qualidade sejam de-
senvolvidos.
É também a partir desse estudo que características desejáveis para linguagens de
programação podem ser identificadas e cuidadosamente descritas, para serem incorporadas às
linguagens novas ou já existentes.

2. LINGUAGENS DE PROGRAMAÇÃO
O primeiro conceito necessário ao estudo das linguagens de programação é exatamente
o de linguagem de programação.
11
Paradigmas de Linguagens de Programação – Marco Aurélio Freitas Santos - UNIGRAN

A definição proposta por [1] caracteriza primeiramente o que é um programa de com-


putador. Um programa é uma entidade que se manifesta de duas formas: 1. Como um documento,
ele especifica uma seqüência de operações a serem executadas; 2. durante a sua execução, ele
efetivamente leva a cabo as operações especificadas.
Um programa é, portanto, uma máquina abstrata, uma vez que manipula e produz
entidades abstratas que são os dados. Ele é ao mesmo tempo a descrição de uma máquina - o
documento em si - e a própria máquina, no momento da execução.
Sendo uma máquina abstrata, o programa precisa ser implementado em um mecanismo
físico para que a sua execução abstrata possa ser fisicamente simulada. O mecanismo físico que
simula a execução de programas é o computador.
Uma linguagem de programação determina os recursos disponíveis e sua forma de uti-
lização para construir máquinas abstratas específicas, de forma que elas possam ser simuladas
adequadamente em computadores.
Uma linguagem de programação é portanto um conjunto de recursos que podem ser
compostos para constituir programas específicos, mais um conjunto de regras de composição que
garantem que todos os programas podem ser implementados em computadores com qualidade
adequada.
Segundo a enciclopédia Wikipedia [3], uma linguagem de programação é “uma técnica
padronizada de comunicação para a descrição de instruções para um computador. Cada lingua-
gem de programação tem um conjunto de regras sintáticas e semânticas usadas para definir
programas de computador.”
Uma linguagem possibilita a um programador que este especifique precisamente sobre
que dados um computador deve atuar, como esses dados devem ser armazenados/transmitidos,
e que ações devem ser tomadas em diversas circunstâncias.
As linguagens de programação são um tipo de linguagem de computadores, excluindo
o(s) pseudocódigo(s) que é (são) exclusivo(s) para a compreensão humana.

3. CARACTERÍSTICAS DAS LINGUAGENS DE PROGRAMAÇÃO


Cada linguagem de programação pode ser pensada como um conjunto de especificações
formais concernentes à sintaxe, vocabulário e significado (semântica). A sintaxe diz respeito a
como são escritos cada um dos elementos da linguagem. Já a semântica diz respeito ao signifi-
cado de cada um dos elementos da linguagem.
As especificações das linguagens usualmente incluem:
• Tipos de Dados
• Estruturas de Dados
• Instruções e Fluxo de Controle
• Filosofia de Projeto
• Compilação e Interpretação

12
Paradigmas de Linguagens de Programação – Marco Aurélio Freitas Santos - UNIGRAN

As linguagens que são amplamente utilizadas – ou foram utilizadas por um período


considerável de tempo – tem instituições de padronização que se encontram regularmente a fim
de criar e publicar definições formais da linguagem e discutir possíveis extensões das definições
existentes.

4. HISTÓRIA DAS LINGUAGENS DE PROGRAMAÇÃO


O desenvolvimento das linguagens de programação segue bem próximo o desenvolvi-
mento dos processos físicos e eletrônicos utilizados nos computadores atuais.
As linguagens de programação têm sido desenvolvidas através de anos e continuarão a
serem desenvolvidas nos anos vindouros. Elas começaram com uma lista de passos que deviam
ser seguidos pelo computador a fim de realizar uma determinada tarefa. Esses passos foram
eventualmente convertidos em software e adquiriram novas e melhores características.
As principais primeiras linguagens podem ser caracterizadas pelo fato de que elas foram
intencionadas para um e somente um propósito, enquanto que as linguagens atuais se diferenciam
pelo fato de que podem, na maioria dos casos, serem utilizadas para quase qualquer propósito.
E talvez as linguagens futuras serão mais naturais com a invenção de computadores quânticos
e biológicos.
Ao pesquisador inglês Charles Babbage (1791-1871) é creditado o projeto das primei-
ras máquinas assemelhadas ao computador, que teve diversos programas escritos para elas - no
equivalente a linguagens assembly – pela matemática Ada Lovelace (1815-1852). Uma das
máquinas mecânicas projetadas por ele, a “máquina de diferenças”, somente foi montada de
fato no século XX – entre os anos de 1989 e 1991 - e está em exposição no Museu de Ciências
de Londres.

Figura 1.1. A “máquina de diferenças” de Charles Babbage.

13
Paradigmas de Linguagens de Programação – Marco Aurélio Freitas Santos - UNIGRAN

Esta “máquina de diferenças” pesava no total em torno de 15 toneladas e era composta por
aproximadamente 25.000 peças. Os primeiros computadores energizados eletricamente surgiram
em nos anos 40 (1940-1949). O desenvolvimento dos computadores se deve em grande parte a
necessidades de cálculos militares, envolvendo tarefas como encriptação, decriptação, cálculo
de trajetórias e cálculos numéricos massivos para o desenvolvimento das bombas atômicas.
Nesta época, os computadores eram extremamente grandes, lentos e caros. O avanço na
tecnologia eletrônica no período de pós-guerra (após 1945) levou à construção de computadores
eletrônicos mais práticos.
O primeiro “computador” de que se tem registro e com diversas características dos
computadores atuais foi o Z3, desenvolvido em 1941 pelo pesquisador e engenheiro alemão
Konrad Zuse (1910-1995). Esta má-
quina de Zuse não era completamente de
propósito geral, e por essa razão alguns
historiadores não lhe dão o mérito de ser
o primeiro computador, atribuindo esse
título ao computador americano ENIAC,
de 1946.
O computador Z3 foi destruído
em 1945, por ocasião da Segunda Guerra
Mundial, e em seu lugar Zuse construiu
uma segunda versão do mesmo denomi-
nada de Z4.
Figura 1.2. Placa de Contatores do Computador Z4, de
O pesquisador Zuse tem o Konrad Zuse (Museu Nacional Alemão).
mérito de haver desenvolvido para o seu
computador Z3 a primeira linguagem de alto nível de que se tem notícia, que foi a Plankalkül
(Plan Calculus).
Essa linguagem incluía declarações de atribuições, sub-rotinas, declarações
condicionais, iterações, aritmética de ponto flutuante, arrays, estruturas de gravação de dados
hierárquicas, tratamento de exceções, dentre outras características avançadas para a época.
O segundo - ou primeiro, dependendo do ponto de vista - computador eletrônico
foi o ENIAC, apresentado ao Departamento de Defesa (DoD) Americano em fevereiro de 1946
pelos cientistas J. Presper Eckert e John Mauchly.

O Computador ENIAC está comemorando os seus 60 anos este mês de Fevereiro de


2006. O site http://news.com.com/2009-1006-6037980.html apresenta as informações acerca
de sua criação e inauguração.

O computador ENIAC (Electronic Numerical Integrator and Computer) podia resolver


até 5.000 problemas de adição em um segundo, o que era muito mais rápido do que qualquer
outro dispositivo até então inventado.
14
Paradigmas de Linguagens de Programação – Marco Aurélio Freitas Santos - UNIGRAN
Apenas por curiosidade, pode-se comparar em números a evolução dos com-
putadores desde então, tomando-se como ponto de partida o ENIAC e comparando-se com um
processador atual da Intel, como se pode observar na Tabela 1.1.

Fonte: http://news.cnet.com/2009-1006-6037980.html
Tabela 1.1. Comparação entre o ENIAC e um Computador Intel de Duplo Núcleo

Poucos anos depois, os computadores seriam bem mais populares, aparecendo em uni-
versidades, agências governamentais, bancos e companhias de seguros dos E.U.A. O Computador
UNIVAC, da companhia fundada posteriormente por Eckert e Mauchly, predisse os resultados
da eleição presidencial norte-americana de 1952.
Os avanços na tecnologia eletrônica – introdução de transistores, circuitos integrados e
chips – possibilitaram o desenvolvimento de computadores cada vez mais confiáveis e utilizáveis.
A primeira linguagem de programação de alto-nível amplamente utilizada foi o FOR-
TRAN, desenvolvido entre os anos de 1954 a 1957 por um time da IBM liderado por John W.
Backus. Esta linguagem é utilizada até hoje em cálculos numéricos, tendo tido a última atual-
ização de versão padrão em 2004.
O FORTRAN foi projetado para o computador IBM 704, e a descrição da primeira
versão da linguagem já havia sido escrita pelos seus autores no ano anterior, no artigo entitulado
“The IBM Mathematical FORmula TRANslating System: FORTRAN” (IBM, 1954).
A primeira versão efetiva da linguagem – o FORTRAN I - foi publicada em outubro
de 1956 no FORTRAN Programmer’s Reference Manual. Esta linguagem incluía formatação
de entrada/saída, nomes de variáveis de até seis caracteres, sub-rotinas definidas pelo usuário,
15
Paradigmas de Linguagens de Programação – Marco Aurélio Freitas Santos - UNIGRAN

a instrução de seleção IF e a instrução DO LOOP.


Em seguida ao FORTRAN surgiu a linguagem LISP (1958), decorrente de estudos e
aplicações na área de Inteligência Artificial (IA), e que exigiam recursos de linguagens para o
processamento de listas. O pesquisador responsável foi John McCarthy, do MIT, e o ano cred-
itado ao surgimento de LISP é o de 1958.
A linguagem LISP pura é uma linguagem de programação funcional, e é muito dife-
rente das linguagens imperativas como o Pascal e o C. A sintaxe do C é uma mistura de inglês
e álgebra, enquanto que a do LISP é um modelo de simplicidade. Tanto o código de programa
e os dados têm a mesma forma, que é a de listas entre parênteses.
A fim de se criar uma linguagem universal, que fosse aceita nos vários modelos dis-
poníveis de computadores da década de 60, foi projetada a linguagem ALGOL 60, que foi sendo
aprimorado através de múltiplas versões, até que em conjunto e fusão com outras linguagens deu
origem a várias linguagens de uso geral, como o Pascal, o C e posteriormente o Delphi.
A linguagem C foi criada em 1970 pelos pesquisadores Dennis Ritchie e Brian Ker-
nighan, inicialmente para o computador DEC PDP-11. Subseqüentemente em 1985 sob a
liderança de Bjarne Stroustrup foi lançada a linguagem C++. Esta linguagem – já orientada a
objetos – é verticalmente compatível com a linguagem C. A linguagem Java foi lançada pela Sun
Microsystems em 1995 e tornou-se rapidamente muito popular como linguagem de programação
introdutória em universidades. A Microsoft lançou em 2001 a sua linguagem C#, que é muito
similar a C++ e Java.
A linguagem Java foi iniciada a partir da linguagem C++. Os projetistas de Java real-
izaram diversas mudanças no C++, removeram várias construções, mudaram algumas e adicio-
naram outras. O resultado foi uma linguagem menor, mais simples e mais segura que o C++,
porém com grande parte do poder e da flexibilidade do C++.
Uma lista das linguagens de programação de alto-nível mais influentes desse último
século está relacionada a seguir, em ordem cronológica:

• 1957 FORTRAN
• 1958 ALGOL
• 1960 LISP
• 1960 COBOL
• 1962 APL
• 1962 SIMULA
• 1964 BASIC
• 1964 PL/I
• 1966 ISWIM
• 1970 Prolog
• 1972 C
• 1975 Pascal
16
Paradigmas de Linguagens de Programação – Marco Aurélio Freitas Santos - UNIGRAN

• 1975 Scheme
• 1977 OPS5
• 1978 CSP
• 1978 FP
• 1980 dBASE II
• 1983 Smalltalk-80
• 1983 Ada
• 1983 Parlog
• 1984 Standard ML
• 1986 C++
• 1986 CLP(R)
• 1986 Eiffel
• 1988 CLOS
• 1988 Mathematica
• 1988 Oberon
• 1989 HTML
• 1990 Haskell

___REFERENCIAS BIBLIOGRÁFICAS
MELO, Ana Cristina Vieira de; SILVA, Flávio Soares Corrêa da. Princípios de Linguagens de
Programação, Editora Edgard Blücher Ltda. 1a Edição – 2003.

SEBESTA, Robert. Conceitos de Linguagens de Programação. Editora Bookman. 5ª Edição.


2003.

WIKIPEDIA. WIKIPEDIA – The Free Encyclopedia. Local na Internet (URL): <http://


en.wikipedia.org/wiki/Programming_Languages>, última consulta em 16-02-2006.

KINNERSLEY, Bill. A Chronology of Influential Computer Languages. Local na Internet


(URL): <http://people.ku.edu/~nkinners/LangList/Extras/famous.htm >, última consulta em
16-02-2006.

17
Paradigmas de Linguagens de Programação – Marco Aurélio Freitas Santos - UNIGRAN

__________Atividade 01

As atividades referentes a esta aula estão disponibilizadas na ferramenta “Atividades”.


Após respondê-las, envie-nas por meio do Portfólio- ferramenta do ambiente de aprendizagem
UNIGRANET. Em caso de dúvidas, utilize as ferramentas apropriadas para se comunicar com
o professor.

18

You might also like