Curso Profissional de Gestão e Programação de Sistemas Informáticos Programação e Sistemas de Informação Módulo 1 1ª Parte Prof. Sandra Pais Soares Linguagens de Programação • Linguagens de Programação Uma linguagem de programação é um sistema de escrita formal para enunciar a execução de operações em computador, composta por: • Uma terminologia ou um conjunto de termos, palavras e sinais, que assumem determinados significados (semântica); • Um conjunto de regras que estipulam o uso correto de termos, para construir enunciações válidas (sintaxe). • Linguagens de Programação • As linguagens de programação, de acordo com as características, são, normalmente, agrupadas em Gerações. suas • Existem até ao momento 5 gerações de Linguagens: 1ª Geração Linguagem Máquina 2ª Geração Linguagem Assembly 3ª Geração Pascal, C, Cobol, etc. 4ª Geração CLIPPER, SQL 5ª Geração C++, Java, Delphi, etc. • A 5ª geração é, normalmente, conhecida como contendo as linguagens que permitem a Programação Orientada por Objectos. • 1ª Geração - Linguagens Máquina • É a mais elementar das linguagens e a única que o computador entende. • Consiste num conjunto muito detalhado de instruções em criptograma que controla os circuitos internos do computador. Sendo assim, um programa escrito em linguagem máquina para um tipo de computador não pode ser processado noutro sem sofrer alterações significativas. Gottfried, Byron S., Programação em Pascal, McGraw Hill • Cada computador tem um processador com uma linguagem própria (linguagem máquina). O processador vai buscar à memória sequências de bits e interpreta cada uma como uma instrução a executar segundo regras determinadas. Exemplo dum programa em linguagem máquina: SCRAM: 00010001 01010010 00110011 • 2ª Geração - Linguagens Assembly • A linguagem “assembly” permite usar mnemónicas menos crípticas para simbolizar instruções máquina. Exemplo: • Se X, Y, Z corresponderem aos endereços 1, 2 e 3, o programa anterior em Assembly fica: LDA X ADD Y STA Z • Assembladores ou “Assembler” – Programa que traduz Assembly para linguagem máquina. • 3ª Geração • A terceira geração de linguagens de programação surge com as chamadas linguagens de Alto Nível. O seu princípio de codificação está mais próximo do raciocínio humano. • Estas linguagens são independentes da máquina, possibilitando a portabilidade de software. • Esta geração engloba as chamadas Linguagens Procedimentais ou Imperativas e as Declarativas. • 4ª Geração • Existe um corte radical entre a 3ª e a 4ª geração de linguagens. Existe maior ligação entre a 3ª e 5ª gerações do que entre a 3ª e 4ª gerações. • As linguagens de 4ª geração surgem com o advento dos Sistemas de Gestão de Bases de Dados. São linguagens de alto nível que incorporam “ferramentas” informáticas capazes de acelerar e facilitar o desenvolvimento de aplicações informáticas, principalmente ligadas à gestão e bases de dados. Um dos exemplos é o SQL. • 5ª Geração • A 5ª geração é, normalmente conhecida como contendo as linguagens que permitem a Programação Orientada por Objetos. • Esta é uma geração de Muito Alto Nível, elevando o nível de abstração das estruturas e do tratamento dos dados, apoiando-se também nos conceitos das linguagens de declaração atrás descritas. Evolução Histórica 1950........................................................................................................ FORTRAN 1960.......................ALGOL-60...........COBOL......LISP......................... SIMULA ALGOL-68 PL/I BASIC 1970..................Pascal............................................................................ Smalltalk C PROLOG Modula-2 ML 1980....................Ada...........DBASE-II.................................................. Miranda Eifell C++ Java Delphi Orientado a objectos Imperativo Funcional Lógico Linguagem Natural Linguagens de Programação “Baixo Nível” “Alto Nível” Assembly Pascal, C, etc. Programa-fonte Assemblador Programa-objecto, Executável ou Código máquina Programa-fonte Programas Tradutores Compilador Interpretador Programa-objecto, Executável ou Código máquina Linguagem Máquina Azul, Artur Augusto, Técnicas e Linguagens de Programação, Porto Editora Interpretador vs Compilador • Interpretador • O programa fonte é traduzido e executado instrução a instrução de um modo interactivo. A vantagem do interpretador reside na correcção dos erros, uma vez que é feita em cada passo de execução. • Compilador • O programa escrito na linguagem fonte é traduzido para linguagem máquina e posteriormente executa-se o programa já traduzido (programa objeto). A vantagem é que o o programa é traduzido uma única vez, gerando-se um programa- objeto (executável). Sempre que se quiser correr o programa não é necessário voltar a traduzi-lo. Processo de Compilação input Programa fonte Compilador Programa Máquina Objecto output Exercícios 1. Quais as principais diferenças entre uma linguagem de baixo nível e uma de alto nível? Indique alguns exemplos dos dois tipos de linguagens atrás referidas. 2. A 4ª geração de linguagens consiste num aperfeiçoamento das linguagens de 3ª geração. Comente. 3. Qual a linguagem que o computador entende? 4. Distinga entre compilador e interpretador. 5. Qual a diferença entre um programa fonte e um programa objeto.