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

Slides:



Advertisements
Apresentações semelhantes
PROGRAMAÇÃO DE COMPUTADORES
Advertisements

1.3.2 – Linguagem Assembly Um programa em linguagem de máquina sofre de total falta de clareza O programa é uma sequência de linhas numeradas Cada linha.
Introdução à Ciência da Computação Linguagens de Programação.
Arquitetura e organização de computadores.
Paradigmas de Programação
1 Introdução (Informal) à Programação DI/FCT/UNL 1º Semestre 2004/2005.
ELEMENTOS DA INFORMÁTICA
LABORATÓRIO DE PROGRAMAÇÃO
Introdução à Computação - Jorge Macêdo
Introdução à Compilação Prof. Leandro Magno Slides adaptados a partir do material cedido pelos professores Heloise Manica Paris Teixeira, Yandre M. G.
Introdução a Informática
INTRODUÇÃO À PROGRAMAÇÃO
Ferramentas Programação
Curso Sistemas de Informação Disciplina: Arquitetura de Software
Curso Sistemas de Informação I Disciplina: Arquitetura de Software
Curso Sistemas de Informação Disciplina: Arquitetura de Software
Curso Sistemas de Informação Disciplina: Arquitetura de Software
Tradutores de Linguagens
Paradigmas da Programação – Semestre 1 - Aula 1
Linguagens de Programação
Aula 2 Aspectos Preliminares
Laboratório de Programação de Computadores I
Paradigmas de Linguagens de Programação Introdução Professor: Armando Hage Belém-2008.
Universidade do Vale do Rio dos Sinos
Lógica de Programação UNIDADE 1 – Introdução a) Computador
PROGRAMAÇÃO I UNIDADE 1.
Programação Avançada Prof. Natalia Castro Fernandes
Flávio Melo Gabriel Fornari
Linguagem de programação I A
Tópicos avançados em internet A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
PCI- Introdução à Computação
Caracterização e Objetivos das LP
Laboratório I Mateus Raeder Material baseado nos originais da
História dos computadores e da programação
Avaliação da Linguagem de Programação
Paradigmas de Programação
02/08/2011 Professor Leomir J. Borba- –
Geração de Código aula-12-geração-de-código.pdf.
Paradigma funcional.
Paradigmas de Linguagens de Programação Aula 2
Introdução a Linguagens de Programação
3/4/2015 Prof. Msc George Cabral Bacharelado em Sistema de Informação Ambientes de Desenvolvimento de Software.
Paradigmas de Linguagens de Programação
Fundamentos de Arquitetura da Computação
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Projeto de Linguagens de Programação
Processadores de Linguagens
Programação de PIC em C Exposição das funções básicas para
Aula 1 – Profª Danielle Costa
Back-End Compilação aula-11-back-end.pdf.
Linguagens de Programação Introdução Prof. Renato Melo.
Critérios de Avaliação das Linguagens de Programação
Compiladores – IF688 Professor: André Santos
Introdução à Computação - Jorge Macêdo1 ICC – Software Jorge Macêdo.
Algoritmos e Programação MC102
Linguagens de Programação
ALGORITMOS.
SISTEMAS DE INFORMAÇÃO
PROGRAMAÇÃO II – PARTE 1 Profa. Maria Augusta Constante Puget.
Evolução das Principais Linguagens de Programação
Linguagem de Programação I PARTE i
Paradigmas de Programação
Sistemas Operacionais
Ciência da Computação I
Módulo II Capítulo 1: Orientação a Objetos
Influencias sobre o Projeto da Linguagem
Módulo I – Softwares: Linguagens de Programação Prof.: Rogério Morais.
PROGRAMAÇÃO DE COMPUTADORES Engenharia Unificado Prof. Leonardo Bacelar Lima Santos Departamento de Matemática
COMPILADORES 02 Prof. Marcos. COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:
Ewerton Patrick, Fernando Henrique, Jéssica Rebeca.
Transcrição da apresentação:

Estudos de Linguagens de Programação - Introdução Marcelo Marinho (marinho.mlm@gmail.com) 1

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

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

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

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

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

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

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

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

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

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

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

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

Linguagens de Máquina (LM) Internamente o computador só trabalha com números binários ( 0000011100...). 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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