Baixe o app para aproveitar ainda mais
Prévia do material em texto
06/03/2012 1 CENTRO UNIVESITÁRIO DE LINS CENTRO UNIVESITÁRIO DE LINS –– UNILINSUNILINS LABORATÓRIO DE ALGORITMOSLABORATÓRIO DE ALGORITMOS Conceitos de Linguagem de Programação Prof. Dr. Wagner José Dizeró wagner@unilins.edu.br Recuperando o contexto histórico da evolução das linguagens de programação, pode-se dizer que elas representam graus variados de abstração da arquitetura subjacente, chamada Von Neumann (processador, memória e entradas e saídas). Arquitetura de Von NeumannArquitetura de Von NeumannArquitetura de Von NeumannArquitetura de Von Neumann 06/03/2012 2 Os computadores disponíveis no final da década de 40 e início da década de 50, além dos problemas decorrentes da tecnologia da época, eram difíceis de serem programados pela ausência de software. Uma Linguagem de Programação é um vocabulário e um conjunto de regras gramaticais usadas para escrever programas de computador. Esses programas instruem o computador a realizar determinadas tarefas específicas. Cada linguagem possui um conjunto único de palavras-chave (palavras que ela reconhece) e uma sintaxe (regras) específica para organizar as instruções (instruções mesmo) dos programas. IntroduçãoIntroduçãoIntroduçãoIntroduçãoIntroduçãoIntroduçãoIntroduçãoIntrodução 06/03/2012 3 As linguagens de programação podem ser classificadas, em uma escala relativa à sua semelhança com a linguagem humana, em: Linguagem de Máquina Linguagem Assembly Linguagem de Alto Nível Linguagem de Quarta Geração ClassificaçãoClassificaçãoClassificaçãoClassificaçãoClassificaçãoClassificaçãoClassificaçãoClassificação Linguagem de MaquinaLinguagem de MaquinaLinguagem de MaquinaLinguagem de MaquinaLinguagem de MaquinaLinguagem de MaquinaLinguagem de MaquinaLinguagem de Maquina É a linguagem de mais baixo nível de entendimento pelo ser humano e a única, na verdade, entendida pelo processador (CPU). É constituída inteiramente de números, o que torna praticamente impossível entendê-la diretamente. Cada CPU tem seu conjunto único de linguagem de máquina, definido pelo fabricante do chip. Uma instrução típica em linguagem de máquina seria algo como: 0100 1111 1010 0110 06/03/2012 4 Linguagem AssemblyLinguagem AssemblyLinguagem AssemblyLinguagem AssemblyLinguagem AssemblyLinguagem AssemblyLinguagem AssemblyLinguagem Assembly É a linguagem de nível imediatamente acima da linguagem de máquina. Ela possui a mesma estrutura e conjunto de instruções que a linguagem de máquina, porém permite que o programador utilize nomes (chamados mnemônicos) e símbolos em lugar dos números.A conversão da linguagem assembly para a linguagem de máquina se chama montagem, e é feita por um programa chamado montador (ou assembler). Uma típica instrução em assembly seria : Linguagem Alto Nível Linguagem Alto Nível Linguagem Alto Nível Linguagem Alto Nível Linguagem Alto Nível Linguagem Alto Nível Linguagem Alto Nível Linguagem Alto Nível São as linguagens de programação que possuem uma estrutura e palavras-chave que são mais próximas da linguagem humana, tornando os programas mais fáceis de serem lidos e escritos. Esta é a sua principal vantagem sobre as linguagens de nível mais baixo. Os programas escritos nessas linguagens são convertidos para a linguagem de máquina através de um programa compilador ou de um interpretador. Exemplos: FORTRAN, Prolog, Basic, COBOL, C,Pascal, Delphi, C++, Java, etc. 06/03/2012 5 Linguagem Alto Nível Linguagem Alto Nível Linguagem Alto Nível Linguagem Alto Nível Linguagem Alto Nível Linguagem Alto Nível Linguagem Alto Nível Linguagem Alto Nível Linguagem 4ª Geração Linguagem 4ª Geração Linguagem 4ª Geração Linguagem 4ª Geração Linguagem 4ª Geração Linguagem 4ª Geração Linguagem 4ª Geração Linguagem 4ª Geração Usualmente abreviada por 4GL. São linguagens de programação com estrutura mais próxima da linguagem humana do que as linguagens de programação de alto nível. A maioria delas é usada para acessar bancos de dados, a SQL (Structured Query Language) é um bom exemplo dessa geração. Por exemplo, um comando típico seria: SELECT NOME,MATRICULA FROM ALUNOS WHERE NOME = "Carlos" AND ESTADO IN (“RJ”,”SP”,”MG”) 06/03/2012 6 Um programa escrito em linguagem de alto nível e traduzido para a linguagem de maquina por um compilador ou cada instrução e traduzida por um interpretador. E natural se admitir que, para que o compilador consiga traduzir uma instrução escrita com caracteres de algum idioma para instruções escritas como seqüência de zeros e uns, e necessário que cada instrução seja escrita de acordo com regras preestabelecidas. Como todas as notações formais, uma linguagem de programação tem três componentes: - Um Léxico Um Léxico -- Uma Sintaxe Uma Sintaxe -- Uma Semântica Uma Semântica 06/03/2012 7 O léxicoléxico identifica um grupo de símbolos que representam uma única entidade, ele a classifica como sendo ou um valor numérico, ou uma palavra, ou um operador aritmético, e assim por diante. Átomo (token). O seguinte comando da Linguagem Pascal A A := B;:= B; O Léxico da LP estabelece que os símbolos AA, := , B , := , B e ; ; fazem parte do vocabulário (Gramática) da LP. A SintaxeSintaxe da LP corresponde ao conjunto de regras que determinam quais sentenças podem ser formadas a partir da combinação dos itens léxicos. O léxico e a sintaxe estão relacionados com a forma dos programas, isto é, como expressões, comandos, declarações e outros elementos da LP podem ser combinados para forma programas válidos. 06/03/2012 8 O seguinte comando da Linguagem Pascal A A := B + 2;:= B + 2; A Sintaxe da LP indica que a sentença formada pelo identificador A, o símbolo := , o identificador B, o símbolo +, o numero 2 e o símbolo ; designa um comando válido de soma. A Semântica da LP descreve como as construções sintaticamente corretas são interpretadas ou executadas. A semântica esta relacionada com o significado dos programas, isto é, como eles se comportam quando são executados por computadores. 06/03/2012 9 O seguinte comando da Linguagem C A = B;A = B;A = B;A = B;A = B;A = B;A = B;A = B; A Semântica da LP indica que esse comando deve ser executado de modo a substituir o valor de A substituir o valor de A substituir o valor de A substituir o valor de A pelo valor atual de B valor atual de B valor atual de B valor atual de B e retornar o valor de A. retornar o valor de A. retornar o valor de A. retornar o valor de A. Métodos de Implementação de Métodos de Implementação de Métodos de Implementação de Métodos de Implementação de Linguagens de Programação Linguagens de Programação Linguagens de Programação Linguagens de Programação 06/03/2012 10 Todo e qualquer Programa escrito em uma LP necessita ser traduzido para a linguagem de maquina a fim de ser executado. Para fazer isso, é necessário aplicar um programa que recebe como entrada o código-fonte do programa a ser traduzido e gere o código traduzido na linguagem de maquina. Esse programa tradutor é quem determina como os programas na LP serão implementados, isto é, como o código– fonte traduzido se comportará efetivamente quando executado no computador. São descritos três métodos gerais de implementação de linguagens de programação , são eles: Compilação Interpretação Pura Híbrido 06/03/2012 11 Um CompiladorCompilador traduz o programa fonte inteiro, produzindo um outro programa equivalente, em linguagem executável. A vantagem é que o compilador precisa traduzir um comando apenas uma única vez, não importando quantas vezes ele será executado. Na prática o compilador é usado para gerar o código definitivo (eficiente) de um programa. Exemplos de linguagens compiladas :Exemplos de linguagens compiladas :Exemplos de linguagens compiladas :Exemplos de linguagens compiladas : PascalPascalPascalPascal, C, C, C, C, C, C, C, C++ e ++ e ++ e ++ e outras outrasoutras outras 06/03/2012 12 Um interpretadorinterpretador traduz o programa fonte um comando por vez e chama uma rotina para executar esse comando. A vantagem é que o interpretador não traduz comandos que podem não ser executados e pode relatar erros na linguagem original em cada ponto de execução. Na prática as linguagens interpretadas servem para a realização de uma prototipagem rápida. Exemplos de linguagens Exemplos de linguagens Exemplos de linguagens Exemplos de linguagens interpretadasinterpretadasinterpretadasinterpretadas PHP, PrologPHP, PrologPHP, PrologPHP, Prolog, linguagens de script , linguagens de script , linguagens de script , linguagens de script 06/03/2012 13 HíbridoHíbrido processo que combina tanto a execução eficiente quanto a portabilidade de programas pela aplicação combinada dos dois métodos anteriores. A base para o método hibrido é a existência de um código intermediário, mais fácil de ser interpretado e, ao mesmo tempo, não especifico de uma de uma plataforma computacional. O método híbrido é dividido , portanto, em duas etapas: compilação para um código intermediário e interpretação desse código. Exemplos de linguagens hibridas JAVA e PERL 06/03/2012 14 Gráfico de Evolução da LPGráfico de Evolução da LP
Compartilhar