A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Estudos de Linguagens de Programação - Introdução

Apresentações semelhantes


Apresentação em tema: "Estudos de Linguagens de Programação - Introdução"— Transcrição da apresentação:

1 Estudos de Linguagens de Programação - Introdução
Marcelo Marinho 1

2 O que é uma Linguagem de Programação?
“Linguagem usada por uma pessoa para expressar um processo através do qual um computador pode resolver um problema.” Estudo de Linguagens de Programação - Prof. Marcelo Marinho

3 Por que estudar Conceitos de Linguagens de Programação?
Aumento da capacidade de expressar idéias: melhor domínio; Melhor uso de uma LP: extrair o máximo de sua funcionalidade e eficiência; Melhor escolha de uma LP: adequação ao problema; Maior facilidade em aprender novas LPs. Maior habilidade em projetar novas LPs. Possibilitar o avanço global da computação. Estudo de Linguagens de Programação - Prof. Marcelo Marinho

4 Por que estudar Conceitos de Linguagens de Programação?
Entender a importância da implementação O entendimento sobre as questões de implementação auxilia o programador a criar programas mais eficientes. Ex.: programa recursivo é menos eficiente que o equivalente iterativo. Certos bugs podem ser encontrados e corrigidos apenas por programadores que conheçam os detalhes de implementação. Estudo de Linguagens de Programação - Prof. Marcelo Marinho

5 Linguagens de Programação
Estudo de Linguagens de Programação - Prof. Marcelo Marinho

6 Domínios de Programação
Aplicações Científicas Primeiras aplicações surgiram na década de 40 junto com os primeiros computadores; Características: Estruturas de dados simples: arrays e matrizes; Estruturas de controle comuns: laços e seleções; Operações aritméticas com ponto-flutuante de alta precisão; Assembly, FORTRAN, Algol 60 Os computadores são usados em uma infinidade de diferentes áreas, desde o controle de usinas elétricas nucleares à armazenagem de registros e talões de cheques pessoais. Por causa dessa grande diversidade no seu espaço, linguagens de programação com metas muitos diferentes têm sido desenvolvida. Estudo de Linguagens de Programação - Prof. Marcelo Marinho

7 Domínios de Programação
Aplicações Comerciais Início na década de 50 Características: Capacidade de armazenar cadeias de caracteres; Facilidade para produzir relatórios elaborados; Operações aritméticas decimais; Primeira linguagem bem sucedida para negócios foi COBOL (1960) Estudo de Linguagens de Programação - Prof. Marcelo Marinho

8 Domínios de Programação
Inteligência Artificial Características: Computação simbólica em vez de numérica; Uso intensivo de listas encadeadas; LISP (McCarthy, 1959), Linguagem funcional. Prolog (Clocksin e Mellish, 1970), Linguagem Lógica. Estudo de Linguagens de Programação - Prof. Marcelo Marinho

9 Domínios de Programação
Programação de Sistemas Sistema operacional e ferramentas de suporte à programação (software básico) Características: Execução rápida; Deve possuir recursos de baixo nível; PL/S (IBM), BLISS (Digital), Extended ALGOL (Burroughs). C (ANSI, 1989) - Linguagem do Unix e do Windows. Estudo de Linguagens de Programação - Prof. Marcelo Marinho

10 Domínios de Programação
Construção de Scripts (Scripting Languages) Script : arquivo contendo lista de comandos básicos Atividades de gerenciamento: sh - Primeira delas; ksh -David Korn, Bell Laboratories; awk - Al Aho, Brian Kernighan & Peter Wienberger, Bell Laboratories; tcl - John Ousterhout, Universidade da Califórnia; Perl - Larry Wall: WWW popularizou Perl, principalmente para programação de Common Gateway Interface (CGI) JavaScript – Netscape, 1995 Estudo de Linguagens de Programação - Prof. Marcelo Marinho

11 Domínios de Programação
Linguagens de Propósitos Especiais Geração de relatórios comerciais (RPG, Easytrieve) Instrução de máquinas programáveis (APT) Simulação de sistemas (GPSS) Formatação de hipertextos (HTML) Estudo de Linguagens de Programação - Prof. Marcelo Marinho

12 Classificação das LPs As LPs podem ser classificadas de diversas formas, algumas são quanto ao: Nível de Utilização; Propósito; Paradigma; Estudo de Linguagens de Programação - Prof. Marcelo Marinho

13 Quanto ao nível de utilização classificam-se em:
Classificação das LPs Quanto ao nível de utilização classificam-se em: Linguagens de Máquina; Linguagens de Baixo Nível; Linguagens de Alto Nível; Estudo de Linguagens de Programação - Prof. Marcelo Marinho

14 Linguagens de Máquina (LM)
Internamente o computador só trabalha com números binários ( ). LM é a linguagem nativa de computadores sendo totalmente dependente de máquina, onde programas são expressos somente por números. LM é praticamente ilegível para humanos, mas é o que o computador entende. É totalmente dependente da arquitetura da máquina. Portanto, não é portável. Estudo de Linguagens de Programação - Prof. Marcelo Marinho

15 Linguagens de Baixo Nível
Linguagem Assembly (LA) Linguagem de baixo nível que utiliza nomes e símbolos ao invés de códigos de instruções de máquina. LA é dependente de máquina, mas cria um nível de abstração sobre a linguagem de máquina, através de nomes e símbolos, que tornam a tarefa de programação um pouco menos árdua. Exemplos de instruções em Assembly: SUB AX,AX; atribui o valor zero para AX CMP DX,BX; compara o valor de DX com o de BX Estudo de Linguagens de Programação - Prof. Marcelo Marinho

16 Linguagens de Alto Nível
Linguagens de alto nível são aquelas que são independentes de máquina. Necessitam de tradução para a linguagem de máquina, por meio de compiladores (mais comum) e/ou interpretadores. Seu uso possui diversos benefícios: Notações legíveis e familiares aos programadores; Independência de máquina – portabilidade; Maior facilidade para detecção de erros durante desenvolvimento e execução; Estudo de Linguagens de Programação - Prof. Marcelo Marinho

17 Linguagens de Alto Nível
Exemplos de linguagens de alto nível: FORTRAN, Algol, COBOL, Pascal, Python, C. C é às vezes considerada uma linguagem de nível médio, porque permite o uso de instruções de baixo nível com acesso direto à máquina, o que pode comprometer a portabilidade. Estudo de Linguagens de Programação - Prof. Marcelo Marinho

18 Quanto ao propósito (domínio de aplicação):
Classificação das LPs Quanto ao propósito (domínio de aplicação): Aplicações Comerciais Cobol, Clipper, Mumps, Natural; Desenvolvimento de Software Básico C, C++, Pascal; Desenvolvimento de Sistemas Especialistas Lisp, Prolog; Educacionais: Logo, Basic; Aplicações Científicas: Fortran, Algol; Propósito Específico Simula, HTML, VRML, Java, LEX, YACC. Estudo de Linguagens de Programação - Prof. Marcelo Marinho

19 O que é um Paradigma de Programação?
Classificação das LPs Quanto ao Paradigma: O que é um Paradigma de Programação? Modelo, padrão ou estilo de programação suportado por linguagens que agrupam certas características comuns. Tal classificação é uma conseqüência de decisões de projeto que impactam radicalmente a forma na qual uma aplicação real é modelada do ponto de vista computacional. Estudo de Linguagens de Programação - Prof. Marcelo Marinho

20 Paradigmas de LPs Estudo de Linguagens de Programação - Prof. Marcelo Marinho

21 Paradigmas de LPs Imperativo Declarativo
Processo de mudanças de estados Variável, valor e atribuição Células de memória Estruturado, Orientado a Objetos e Concorrente Declarativo Especificações sobre a tarefa a ser realizada Abstrai-se de como o computador é implementado Funcional e Lógico Estudo de Linguagens de Programação - Prof. Marcelo Marinho

22 Paradigmas Imperativo
Estruturado Refinamentos sucessivos Blocos aninhados de comandos Desestímulo ao uso de desvio incondicional C, Pascal Orientado a Objetos Abstração de dados Encapsulamento de dados Herança e atribuição dinâmica de tipos Provenientes das linguagens estruturadas Estudo de Linguagens de Programação - Prof. Marcelo Marinho

23 Paradigmas Imperativo
Concorrente Processos executam simultaneamente e concorrem por recursos. Java, ToonTalk, TyCO, SPELL Estudo de Linguagens de Programação - Prof. Marcelo Marinho

24 Paradigmas Declarativo
Funcional Computação realizada através da aplicação de funções a parâmetros LISP, Scheme Lógico Predicados (regras) Regras são especificadas sem especificar ordem. Dedução automática Prolog Estudo de Linguagens de Programação - Prof. Marcelo Marinho

25 Estudo de Linguagens de Programação - Prof. Marcelo Marinho

26 Influências sobre o Projeto da Linguagem
Arquitetura Von Neumann Estudo de Linguagens de Programação - Prof. Marcelo Marinho

27 Influências sobre o Projeto da Linguagem
Arquitetura Von Neumann Linguagens imperativas. As variáveis são fundamentais pois modelam as células de memória. Atribuições representam a transferência de valores da memória para a CPU para serem utilizados em alguma operação; ou da CPU para memória após alguma operação. Repetição iterativa é o método mais eficiente desta arquitetura (laços while, for, etc.) Estudo de Linguagens de Programação - Prof. Marcelo Marinho

28 Métodos de Implementação
Compilação Interpretação Pura Sistemas de Implementação Híbridos Estudo de Linguagens de Programação - Prof. Marcelo Marinho

29 Compilação Transformar programas escritos em linguagens de alto nível para linguagem de máquina, podendo ser diretamente executados pelo computador. Muitas linguagens baseiam-se no uso de compiladores para gerar programas: Pascal, C, Ada, COBOL, FORTRAN. Estudo de Linguagens de Programação - Prof. Marcelo Marinho

30 Compilação Estudo de Linguagens de Programação - Prof. Marcelo Marinho

31 Algumas linguagens interpretadas: Smalltalk,LISP, APL.
Interpretação Pura Método de execução de programas escritos em linguagens de alto nível onde os programas são interpretados, por um interpretador, declaração por declaração, gerando código compilado e executando-a. Algumas linguagens interpretadas: Smalltalk,LISP, APL. Estudo de Linguagens de Programação - Prof. Marcelo Marinho

32 Interpretação Pura Estudo de Linguagens de Programação - Prof. Marcelo Marinho

33 Sistemas Híbridos Em sistemas híbridos, é tanto utilizado compilação quanto interpretação. Normalmente, programas escritos em linguagens de alto nível são compilados para uma linguagem intermediária de baixo nível (mas acima do nível de código de máquina). Então, um interpretador executa o código intermediário, transformando-o passo a passo em código de máquina. Um exemplo bem conhecido disto é o usado pelos ambientes de desenvolvimento da linguagem Java (JVM). Estudo de Linguagens de Programação - Prof. Marcelo Marinho

34 Sistemas Híbridos Estudo de Linguagens de Programação - Prof. Marcelo Marinho

35 Comparativo Compilação Interpretação Pura Híbrido
Eficiência - Execução rápida dos programas, pois são executados diretamente em linguagem de máquina. Problemas com Portabilidade. Interpretação Pura Flexibilidade e Portabilidade do código-fonte. Problemas de eficiência, normalmente 10 a 100 vezes menor comparada ao compilado e Maior Consumo de Memória. Raramente Usada. Híbrido Une Vantagens dos Outros Métodos. Estudo de Linguagens de Programação - Prof. Marcelo Marinho

36 Ambientes de Desenvolvimento de Software
Conjunto integrado de ferramentas e técnicas que auxiliam no desenvolvimento de software. Apóiam todas as fases do desenvolvimento do software. Ferramentas CASE - Computer-Aided Software Engineering Rational Rose, Poseidon, ErWin, Oracle Designer. Estudo de Linguagens de Programação - Prof. Marcelo Marinho

37 Ambientes de Desenvolvimento de Software
Ferramentas de apoio a programação Editores de Textos e Editores Sintáticos Compiladores (Compilers) Interpretadores (Interpreters) Bibliotecas (Libraries) Ligadores (Linkers) Debugadores (Debuggers) Estudo de Linguagens de Programação - Prof. Marcelo Marinho

38 Ambientes de Desenvolvimento de Software
Por que usar ambientes? Aumento da Produtividade Diminuição das chances de erro; Diminuição do tempo de localização dos erros. Melhor Depuração; Maior Legibilidade; Melhor Documentação. Estudo de Linguagens de Programação - Prof. Marcelo Marinho

39 Ambientes de Desenvolvimento de Software
Exemplos: UNIX (SO e ferramentas) Turbo Pascal Borland C++ Microsoft Visual C++ Delphi (Object Pascal) Borland Jbuilder (Java) Microsoft Visual Studio.NET (C#, Visual BASIC.NET, Jscript, J#, or C++) J2SDK (Java) Estudo de Linguagens de Programação - Prof. Marcelo Marinho


Carregar ppt "Estudos de Linguagens de Programação - Introdução"

Apresentações semelhantes


Anúncios Google