Vous êtes sur la page 1sur 8

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

Aula 01

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

UNIGRAN Aula 01 INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO Fonte: http://tbdark.flogbrasil.terra.com.br Esta aula foi

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.

- e está em exposição no Museu de Ciências de Londres. Figura 1.1. A “máquina de

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.

esse título ao computador americano ENIAC, de 1946. O computador Z3 foi destruído em 1945, por

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. O pesquisador Zuse tem 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.

Figura 1.2. Placa de Contatores do Computador Z4, de Konrad Zuse (Museu Nacional Alemão).

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.

atual da Intel, como se pode observar na Tabela 1.1. Fonte: http://news.cnet.com/2009-1006-6037980.html Tabela

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