Baixe o app para aproveitar ainda mais
Prévia do material em texto
LINGUAGENS DE PROGRAMAÇÃO Prof. Saulo C. Campos FAGOC O que é uma linguagem de programação? • Ferramenta utilizada pelo profissional da computação para escrever programas, isto é, conjuntos de instruções a serem seguidas pelo computador para realizar um determinado processo. Objetivo das linguagens de programação • Tornar a produção de software mais produtiva e efetiva, com a utilização de linguagens de programação de alto nível. • Apoiar o processo de desenvolvimento de software. • Para isso é necessário conhecer as etapas do desenvolvimento de software e as propriedades das linguagens de programação. Tipos de Linguagens e a programação • Os programas de computador podem ser escritos em várias linguagens de programação, sendo algumas diretamente compreensíveis pelo computador e outras que exigem passos de tradução intermediária. • Elas podem ser divididas em três tipos, de acordo com a sua similaridade com a linguagem humana: • Linguagem de máquina; • Linguagem simbólica (baixo nível); • Linguagem de alto nível. Linguagem de máquina • Um programa escrito em linguagem de máquina não precisa ser traduzido para que o computador possa “entendê-lo”. • Programas em linguagem de máquina são compostos por sequenciais de bits. • Ex.: 000110110 • Cada bit da sequência refere-se a uma instrução ou dado a ser executado. Linguagem de máquina •Cada CPU tem seu conjunto único de instruções que definem sua linguagem de máquina, estabelecido pelo fabricante do chip. •Esses tipos de linguagens são classificadas como linguagens de primeira geração. Linguagem simbólica • É 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 e símbolos em lugar de números. • Essa linguagem é classificada com LP de segunda geração e também é de baixo nível. Linguagem simbólica • A linguagem simbólica é também possui instruções únicas para cada tipo de CPU. Assim, um programa escrito em linguagem simbólica para uma CPU poderá não ser executado em outra CPU de família diferente. • A conversão da linguagem simbólica para a linguagem de máquina se chama montagem, e é feita por um programa chamado montador. • Assembly, por exemplo. Linguagens de programação de baixo nível •LPs que utilizam instruções conhecidas diretamente por um processador específico ou compreendendo características especificas do hardware em questão. •Para que o programador desenvolva um programa é necessário o conhecimento prévio do hardware. Programação em baixo nível ˗ AX: Reg. Acumulador ˗ BX: Reg. Base ˗ CX: Reg. Contador ˗ DX: Reg. de Dados ˗ DS: Reg. de Segmento de Dados ˗ ES: Reg. de Segmento Extra ˗ SS: Reg. de Segmento de Pilha ˗ CS: Reg. de Segmento de Código ˗ BP: Reg. Apontador da Base ˗ SI: Reg. de Índice Fonte ˗ DI: Reg. de Índice Destino ˗ SP: Reg. Apontador de Pilha ˗ IP: Reg. Apontador da Próxima Instrução ˗ F: Reg. de Flag • Registradores do processador: • Somar dois registradores: a 100 add ax,bx mov ax,0002 nop mov bx,0004 Linguagem simbólica hoje • Hoje a linguagem simbólica e outras linguagens de baixo nível, são utilizadas quando a velocidade de execução ou o tamanho do programa executável gerado são essenciais. Linguagens de programação de alto nível • LPs com nível de abstração relativamente distante da arquitetura de hardware do computador. • Roda sobre o sistema operacional e não diretamente no processador. • Possuem escritas semelhantes as linguagem humana. • Ex.: C, Java, Pascal, PHP, Cobol, etc... Programação em alto nível • A estrutura e as palavras-chaves da LP são mais próximas da linguagem humana. • Os programas são 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 baixo nível através de um compilador ou de um interpretador. Programação de alto nível • Não há necessidade de conhecer endereçamentos e tipos de registradores, essa função fica a cargo do SO. • Assim efetuar a soma de duas variáveis fica muito mais fácil: int A = 5; int B = 2; B = B + A; Linguagens de alto nível • São exemplos de linguagens de alto nível: C, C++, Java, Pascal, Object Pascal, Fortran, Cobol, PHP e etc. • Exemplo de uma instrução em uma linguagem de alto nível (pascal): if (A>10) then A:=A-7; Classificação das Linguagens de alto nível As linguagens de alto nível compõem a classificação das LPs de geração 3, 4, e 5. • 3° geração: Escrita e leitura próxima a dos seres humanos, suporte a variáveis, sub-rotinas e a programação estruturada. Ex.: Fortran, Cobol, Pascal. • 4° geração: LPs ainda mais próxima dos padrões humanos, não procedimentais, como linguagens orientadas a objetos, que visão produtividade da produção de software. Ex.: Java, SQL, • 5° geração: LPs voltadas a aplicações de inteligência artificial, compostas por linguagens lógicas e algumas LPs declarativas. Ex.: Lisp, Prolog, entre outras Representação da classificação das Linguagens de programação Quinta Geração Quarta Geração Terceira Geração Segunda Geração Primeira Geração HARDWARE SER HUMANO Similaridade com a linguagem humana - + Prolog, LISP, Mercury Java, SQL, Ruby on rails Fortran, Cobol, C, Pascal Assembly Linguagem de máquina Contraste entre linguagem de alto nível e de baixo nível int A, B; int main() { A = 2; B = 1; A = A + B; } MOV AX,0002 MOV BX,0001 ADD AX,BX Porque existem tantas LP diferentes? • A computação resolve problemas de diversas naturezas. • Para cada tipo de problema são construídos projetos específicos que possuem requisitos e características específicas. • Por exemplo, medicina, armazenamento, negócios, eletrônica e etc. • Esse é o motivo de existir as diversas LP. LP aplicadas as ciências • Estrutura de dados simples • Operações aritméticas com ponto flutuante • Estrutura de dados comuns: array e matriz • Estruturas de controle comuns: laços de repetição e de seleções • Exemplos: • FORTRAN • ALGOL 60 e suas descendentes LP aplicadas aos negócios • Produz relatórios elaborados • Maneira precisa de descrever e armazenar números decimais e dados caracteres • Capacidade de especificar operações aritméticas com decimais • Exemplo: • COBOL LP aplicadas a inteligência artificial • Uso de computações simbólicas em vez de numéricas • Operações baseadas na execução de funções e análise de predicados • Exemplo • LISP • Prolog LP aplicadas a Sistemas Operacionais • Rapidez na execução de instruções • Eficiência na utilização de recursos • Princípio de recuperação de problemas • Exemplos: • PL/S • Extended ALGOL • C LP aplicadas a Internet • Linguagens de marcações • Não são linguagens de programação • HTML, XML, JSTL, CSS • Princípio da portabilidade • Utilização de scripts • Exemplos: • Java • PHP • Perl Ambiente de programação • Pode ser um critério de escolha da LP • Coleção de ferramentas (aplicativos) usadas no desenvolvimento de programas• Sistema de arquivos (ou Banco de Dados) • Editor de texto • Compilador • Ferramentas integradas • Exemplos: • MS Visual Studio, Borland Delphi, Eclipse, Netbeans, Code blocks e etc... Breve histórico das LP • FORTRAN (1957) • Aplicações numéricas e científicas (poucos dados e muita computação) • Ênfase em eficiência computacional • Única estrutura de controle era GOTO • Não havia alocação dinâmica de memória • LISP (1959) • Programação funcional • Ênfase em processamento simbólico • Ainda hoje é a mais usada em IA Breve histórico das LP • ALGOL (1960) • Programação estruturada • Primeira LP com sintaxe formalmente definida • Importância teórica (várias LP ALGOL-like) •COBOL (1960) • Aplicações comerciais (muitos dados e pouca computação) • Focou legibilidade (similaridade com inglês) mas prejudicou a redigibilidade. Breve histórico das LP • BASIC (1964) • Ensino para leigos • PASCAL (1971) • Ensino de programação estruturada • Simplicidade • C (1972) • Ênfase na programação de sistemas operacionais (características de baixo nível) • Implementação de UNIX Breve histórico das LP • PROLOG (1972) • Programação lógica • Bastante uso em IA • SMALLTALK (1972) • Programação orientada a objetos • Introduziu o conceito de GUI • ADA (1983) • Grande e complexa (8 anos de desenvolvimento) • Programação concorrente e sistemas de tempo real Breve histórico das LP • C++ (1985) • Suporte à POO mantendo a eficiência de C • Disseminação da POO • JAVA (1995) • Inicialmente criada para sistemas embarcados (set-up boxes, eletrodomésticos) • Baseada em C/C++, porém com facilidade de aprendizado • Simples, confiável, portável • Internet Breve histórico das LP Indicativo de popularidade das LP • Referencia: TIOBE Index • http://www.tiobe.com/ • Atualizado mensalmente e baseado em: • Número de engenheiros, cursos e vendedores (produtos) ao redor do mundo • Motores de busca populares
Compartilhar