• Nenhum resultado encontrado

INF1621 Linguagens de Programação I

N/A
N/A
Protected

Academic year: 2021

Share "INF1621 Linguagens de Programação I"

Copied!
6
0
0

Texto

(1)

Linguagens de Programacão I

mleal@inf.puc-rio.br 1

INF1621

INF1621 –

Linguagens de Programação I

Linguagens de Programação I

Prof.: Marcus Leal

Prof.: Marcus Leal ––mleal@inf.pucmleal@inf.puc--rio.brrio.br

4as e 6as, 15

4as e 6as, 15--17hs, sala 520L17hs, sala 520L

Todo o material apresentado em aula será disponibilizado na

Todo o material apresentado em aula será disponibilizado na

web

web ÖÖhttp://www.inf.puchttp://www.inf.puc--rio.br/~rio.br/~inf1621inf1621

Bibiliografia:

Bibiliografia:

Ghezzi, Carlo; Jazayeri, Mehdi.

Ghezzi, Carlo; Jazayeri, Mehdi. Programming Language ConceptsProgramming Language Concepts. .

John Wiley & Sons, 1998.

John Wiley & Sons, 1998.

Scott, Michael.

Scott, Michael.Programming Languages PragmaticsProgramming Languages Pragmatics. Morgan . Morgan

Kaufmann, 2000.

Kaufmann, 2000.

A xerox dos livros do Ghezzi e do Scott está disponível na pasta

A xerox dos livros do Ghezzi e do Scott está disponível na pasta

295 da xerox dos homens.

295 da xerox dos homens.

INF1621

INF1621 –

Linguagens de Programação I

Linguagens de Programação I

Programa:

Programa:

Introdução Introdução Sintaxe e semântica Sintaxe e semântica

Escopo, ligação e ambiente de execução

Escopo, ligação e ambiente de execução

Tipos Tipos Estruturas de controle Estruturas de controle Concorrência e paralelismo Concorrência e paralelismo

(2)

Linguagens de Programacão I

mleal@inf.puc-rio.br 3

INF1621

INF1621 –

Linguagens de Programação I

Linguagens de Programação I

Avaliação:

Avaliação:

A avaliação do curso será composta por duas provas

A avaliação do curso será composta por duas provas

(P1 e P2) e dois trabalhos (T1 e T2).

(P1 e P2) e dois trabalhos (T1 e T2).

A média final será calculada por:

A média final será calculada por:

MF = (P1+P2+(T1+T2)/2)/3

MF = (P1+P2+(T1+T2)/2)/3

Se MF for menor que 5.0 o aluno deverá fazer a

Se MF for menor que 5.0 o aluno deverá fazer a

prova final (PF), e a nova MF será:

prova final (PF), e a nova MF será:

MF = ((maior(P1,P2) +PF+(T1+T2)/2)/3

MF = ((maior(P1,P2) +PF+(T1+T2)/2)/3

INF1621

INF1621 –

Linguagens de Programação I

Linguagens de Programação I

Trabalhos:

Trabalhos:

O primeiro trabalho consistirá na implementação de

O primeiro trabalho consistirá na implementação de

um scanner em Lua e em Java.

um scanner em Lua e em Java.

O segundo trabalho será um apresentação sobre

O segundo trabalho será um apresentação sobre

uma LP a ser definida.

(3)

Linguagens de Programacão I mleal@inf.puc-rio.br 5

Introdução

Introdução

Linguagens de Programação

Linguagens de Programação

Introdução

Introdução

Nos primeiros computadores a programação era feita exclusivament

Nos primeiros computadores a programação era feita exclusivamente e através de linguagens de baixo nível, envolvendo a manipulação d

através de linguagens de baixo nível, envolvendo a manipulação direta ireta de recursos específicos de cada máquina.

de recursos específicos de cada máquina.

As linguagens de programação (LPs) surgiram da necessidade de is

As linguagens de programação (LPs) surgiram da necessidade de isolar olar o programador de detalhes particulares das máquinas em que a

o programador de detalhes particulares das máquinas em que a

programação é feita, permitindo a programação em termos mais

programação é feita, permitindo a programação em termos mais

próximos ao problema, ou em

(4)

Linguagens de Programacão I

mleal@inf.puc-rio.br 7

Classificação de LPs

Classificação de LPs

Podemos identificar duas categorias principais:

Podemos identificar duas categorias principais:

LPs imperativas (ou procedurais)

LPs imperativas (ou procedurais)

Um programa é

Um programa é

composto por uma sequência de comandos que realizam

composto por uma sequência de comandos que realizam

atividades computacionais, usualmente envolvendo a

atividades computacionais, usualmente envolvendo a

manipulação da memória ou outros dispositivos.

manipulação da memória ou outros dispositivos.

LPs declarativas

LPs declarativas

Um programa é composto por

Um programa é composto por

declarações que descrevem um problema e

declarações que descrevem um problema e

\

\

ou suas

ou suas

característcas.

característcas.

Classificações de LPs

Classificações de LPs

Imperativas:

Imperativas:

von Neumann

von Neumann ––LPs tradicionais em que o programa é composto LPs tradicionais em que o programa é composto por rotinas e sequências de comandos (C, Pascal, Fortran, Basic)

por rotinas e sequências de comandos (C, Pascal, Fortran, Basic)..

Orientada a Objetos

Orientada a Objetos ––O estilo de programação é baseado na O estilo de programação é baseado na

definição de classes e objetos (Smalltalk, Eiffel, C++, Java).

definição de classes e objetos (Smalltalk, Eiffel, C++, Java).

Declarativas:

Declarativas:

Funcionais

Funcionais ––O modelo de computação é baseado na definição O modelo de computação é baseado na definição

recursiva de funções (Lisp, Scheme, ML).

recursiva de funções (Lisp, Scheme, ML).

Lógica

Lógica ––Um programa consiste na definição de relações lógicas Um programa consiste na definição de relações lógicas

que devem ser satisfeitas pela solução procurada (Prolog).

(5)

Linguagens de Programacão I

mleal@inf.puc-rio.br 9

Características Desejáveis de LPs

Características Desejáveis de LPs

Legibilidade: facilidade com que um programa pode ser lido e

Legibilidade: facilidade com que um programa pode ser lido e

compreendido.

compreendido.

Redigibilidade: facilidade de expressar soluções de uma forma na

Redigibilidade: facilidade de expressar soluções de uma forma natural.tural. Expressividade: capacidade de representar soluções adequadamente

Expressividade: capacidade de representar soluções adequadamente..

Robustez: capacidade de lidar com situações imprevistas.

Robustez: capacidade de lidar com situações imprevistas.

Eficiência do programa compilado: velocidade de execução do códi

Eficiência do programa compilado: velocidade de execução do código go gerado, utilização de memória, etc.

gerado, utilização de memória, etc.

Disponibilidade de ferramentas e bibliotecas.

Disponibilidade de ferramentas e bibliotecas.

Produtividade. Produtividade. Portabilidade. Portabilidade.

Compiladores

Compiladores

Aplicações que transformam um programa fonte descrito em

Aplicações que transformam um programa fonte descrito em

uma LP de alto nível em um programa objeto (descrito em uma

uma LP de alto nível em um programa objeto (descrito em uma

LP de baixo nível

LP de baixo nível --usualmente linguagem de máquina).usualmente linguagem de máquina). A execução do programa é controlada pelo próprio programa

A execução do programa é controlada pelo próprio programa

objeto.

(6)

Linguagens de Programacão I

mleal@inf.puc-rio.br 11

Interpretadores

Interpretadores

Um interpretador executa diretamente um programa fonte,

Um interpretador executa diretamente um programa fonte,

simulando uma máquina virtual cuja programação é executada

simulando uma máquina virtual cuja programação é executada

diretamente através da própria LP de alto nível.

diretamente através da própria LP de alto nível.

A execução do programa é controlada diretamente pelo

A execução do programa é controlada diretamente pelo

interpretador que “compõe” o ambiente de execução.

interpretador que “compõe” o ambiente de execução.

interpretador output programa fonte

input

Máquinas virtuais

Máquinas virtuais

Diversas implementações de LPs incluem uma composição de

Diversas implementações de LPs incluem uma composição de

compiladores e interpretadores (ex: Java, Lua, .Net).

compiladores e interpretadores (ex: Java, Lua, .Net).

A geração de código intermediário facilita a portabilidade da LP

A geração de código intermediário facilita a portabilidade da LP..

compilador programa intermediário programa fonte

máquina virtual output programa

intermediário

Referências

Documentos relacionados

n  Independentemente das necessidades de um projeto de desenvolvimento de software específico, um conjunto geral de características das linguagens de programação pode ser

• Simulating Server Push with Client Pull and

• O computador executa programas auxiliares escritos em linguagem de máquina para interpretar cada. comando

• A alteração entre os modos de operação pode ser feita por uma chave ou pelo próprio software de

Inicialmente, os Microcontroladores foram desenvolvidos para trabalharem com linguagens de programação de baixo nível, mas ao longo dos anos, esses dispositivos

• Alta nas linguagens de alto-nível e baixa nas linguagens de baixo-

• Simulating Server Push with Client Pull and

Compreender melhor noções de programação básica, de C++, de Cobol, de Java, de TML, de Ajax, de hardware, de Windows e de Linux faz parte para desenvolver qualquer tipo