Influencias sobre o Projeto da Linguagem

Slides:



Advertisements
Apresentações semelhantes
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.
Advertisements

Arquitetura de Computadores
Introdução à Ciência da Computação Linguagens de Programação.
Algoritmo Exemplo: faça um algoritmo para tocar todas as músicas de um cd. Após o usuário apertar o play Algoritmo Para as músicas de 1 até última música.
Paulo Marques Hernâni Pedroso
Linguagem de Montagem Visão geral.
Seminários de Compiladores
O Essencial sobre Linguagens de Programação Luís Caires Maio 2005.
LABORATÓRIO DE PROGRAMAÇÃO
Introdução a Programação Renata Freire
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 À 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
Linguagens de Programação
Aula 2 Aspectos Preliminares
Laboratório de Programação de Computadores I
Prof. Msc. Raul Paradeda Aula 2 Introdução
O Portal do Estudante de Computação
Paradigmas de programação
Lógica de Programação UNIDADE 1 – Introdução a) Computador
JAVA: Conceitos Iniciais
PROGRAMAÇÃO I UNIDADE 1.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 02: Introdução.
Linguagem de programação I A
Laboratório I Mateus Raeder Material baseado nos originais da
Arquitetura de computadores
Teoria e Implementação de Linguagens Computacionais – IF688
Organização e Arquitetura de Computadores
02/08/2011 Professor Leomir J. Borba- –
Geração de Código aula-12-geração-de-código.pdf.
Paradigma funcional.
Capítulo VIII Ambientes de Execução
Execução de programas Cap. VIII.
Paradigmas de Linguagens de Programação
SISTEMAS OPERACIONAIS I
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
Zeque - Grad. CC1 Sistemas Operacionais Curso de Ciência da Computação da UFPE Prof. José Queiroz - ZEQUE.
Organização e Arquitetura de Computadores
Aula 1 – Profª Danielle Costa
Componentes de um Sistema de Computação
Linguagens de Programação Introdução Prof. Renato Melo.
Algoritmos e Programação I
Registradores.
Fundamentos de linguagens de programação
CES-10 INTRODUÇÃO À COMPUTAÇÃO
Engenharia de Software
Software Básico Introdução à Organização de Computadores Capítulo 1 Mitsuo Takaki
A maior parte dos programas de computador gera uma saída resultante de um processamento que é executado sobre dados que ele recebe como entrada. Em geral.
Algoritmos e Programação MC102
Programação Computacional Aula 2: Introdução -Algoritmos
Linguagens de Programação
SISTEMAS DE INFORMAÇÃO
Introdução a linguagem de Programação Java. Linguagens de Programação Linguagens de máquina(muito difíceis de usar e compreender) – Comanda ações do computador.
Curso Engenharia Química Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores.
Algoritmo e Estrutura de Dados I Introdução ao conceito de algoritmo Márcia Marra
INTRODUÇÃO THOBER CORADI DETOFENO, MSC. Aula 01 JOINVILLE 2015 Universidade do Estado de Santa Catarina – CCT/UDESC.
LÓGICA DE PROGRAMAÇÃO Curso: Técnico em Informática Professor: Ronaldo Disciplina: Lógica de Programação.
Módulo I – Softwares: Linguagens de Programação Prof.: Rogério Morais.
COMPILADORES 02 Prof. Marcos. COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:
 Processamento de dados: requer a execução de uma série de passos, o programa (software)  Cada passo é uma instrução, ou ordem de comando, dada ao.
Ewerton Patrick, Fernando Henrique, Jéssica Rebeca.
Transcrição da apresentação:

Influencias sobre o Projeto da Linguagem

Arquitetura do Computador A maioria das mais populares dos ultimos 40 anos foi projetada em função da arquitetura de Von Newman Essas linguagens são chamadas de imperativas Recursos centrais: variáveis, as quais modelam as células de memória, as instruções de atribuição e a forma iterativa de repetição.

Arquitetura do computador A iteração é rapida nos computadores de Von Newman porque as instruções são armazenadas em celulas adjacentes da memória. Essa eficiência desencoraja o uso de recursão para repetição: Linguagens funcionais

Metodologias de Programação As novas metodologias de desenvolvimento de software surgiram em consequencia das pesquisas da decada de 70 As principais deficiencias descobertas: Não verificação de tipos Insuficiencia de instruções de controle

Verificação de Tipos Testar se existem erros de tipo em determinado programa, ou por meio de compilador ou durante a execução do programa. Uma vez que a verificação de tipos em tempo de execução é dispendiosa A verificação em tempo de compilação é mais desejavel

Verificação de Tipos Erros: Na linguagem C original, o tipo de parametro real em uma chamada a função não é verificado para determinar se seu tipo coincide com o do parametro formal correspondente na função. Uma variavel do tipo int pode ser usada como um parametro real em uma chamada a uma função que espera um tipo float como seu parametro formal, e nem o compilador nem o sistema em tempo de compilação detectarão a incoerencia.

Metodologias de Programação Iniciou-se projetos de linguagem onde há ênfase nos tipos abstratos de dados, nos anos 70. Nos anos 80, surgiu a orientação a objetos, onde alem da abstração dos dados há a encapsulamento, herança e vinculação de tipos dinamicos

Introdução: execução de programas Componentes: programa, dados, computador Objetivo: viabilizar a execução de um programa fonte, juntamente com seus dados, em um computador para a obtenção dos resultados Problema: notação usada no programa pode ser incompatível com o conjunto de instruções executáveis

Computador e linguagens Um computador pode ser representado por: uma máquina virtual, capaz de executar operações mais abstratas (representadas através de uma linguagem de programação)‏ uma máquina real, capaz de executar um determinado conjunto de operações concretas (expressas em linguagem de máquina)‏

Linguagens e Máquinas Cada máquina representa um conjunto integrado de estruturas de dados e algoritmos Cada máquina é capaz de armazenar e executar programas em uma linguagem de programação L1, L2, L3,...Ln.

Linguagens e Máquinas

Máquina reais e máquinas virtuais Máquina real: conjunto de hardware e sistema operacional capaz de executar um conjunto próprio de instruções (plataforma de execução) O elo de ligação entre a máquina abstrata e a máquina real é o processador da linguagem

Máquina reais e máquinas virtuais Processador da linguagem: programa que traduz as ações especificadas pelo programador usando a notação própria da linguagem em uma forma executável em um computador Máquina abstrata (virtual): combinação de um computador e um processador de linguagem

Máquina reais e máquinas virtuais

Preparação de programas

Programa Montador (assembler) Montadores aceitam como entrada um programa escrito em linguagem de montagem (assembler) e produzem código de máquina correspondente a cada instrução Sendo P1 o programa assembler e P0 o programa em linguagem de máquina, P1 e P0 devem ser funcionalmente equivalentes

Programa Compilador Compiladores aceitam como entrada um programa escrito em linguagem de programação e produzem um programa equivalente em outro código

Programa Compilador Programa objeto: linguagem de máquina, linguagem assembler ou linguagem intermediária Sendo P2 o programa fonte e P0 o programa objeto, P2 e P0 devem ser funcionalmente equivalentes

Compiladores x plataformas

Compilador Pascal Programas fonte de usuários podem ser traduzidos para linguagem de máquina ou para P-code

Compilador Pascal A versão em P-code deve ser interpretada maior tempo de execução melhores diagnósticos de erros favorece o processo de alterações e testes permite a reexecução completa ou incremental dentro do próprio ambiente de desenvolvimento

Interpretador Interpretador: a partir de um programa fonte escrito em uma linguagem de programação ou código intermediário e mais o conjunto de dados de entrada exigidos pelo programa realiza o processo de execução  Pode produzir código executável, mas não produz programa objeto persistente  Exemplos: Basic, LISP, Smalltalk e java