INF1621 Linguagens de Programação I



Documentos relacionados
Paradigmas de Linguagens de Programação

Paradigmas de Programação

Linguagens de Programação. Introdução. Carlos Bazilio

Fonte (livro-texto): Conceitos de Linguagens de Programação, 4ed. Robert W. Sebesta

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

Carga horária : 4 aulas semanais (laboratório) Professores: Custódio, Daniel, Julio foco: introdução a uma linguagem de programação Linguagem Java

Organização de Computadores Software

AULA 1: PARADIGMAS DE PROGRAMAÇÃO

Nesta aula... Analisamos na ultima aula a evolução e caraterísticas de computadores e linguagens de programação. Nesta aula iremos ver:

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO

Introdução à Engenharia de Computação

Introdução à Programação Aula 2 Introdução à linguagem Python

Linguagens de. Aula 01. Profa Cristiane Koehler

Construção de Compiladores. Construção de Compiladores. Motivação. Motivação. Contexto Histórico. Classificações: Gerações 09/03/2010

Programação de Computadores. Turma CI-180-B. Josiney de Souza.

UNIP - UNIVERSIDADE PAULISTA. Arquitetura de computadores

Computador Digital Circuitos de um computador (Hardware)

Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01

Breve Histórico & Conceitos Básicos

ENIAC. Introdução aos Computadores e à Programação (Noções Básicas)

Programação Funcional. Capítulo 1. Introdução. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2015.

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

Curso Técnico em Redes

Introdução à Computação: Sistemas de Computação

Linguagens de Programação Aula 10

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.

Requisitos de Sistemas

Algoritmos e Programação Aula 01 Introdução a Computação

Indústria de Software - Histórico

O Windows é um software de sistema, que permite ao utilizador interagir com o computador e com os seus periféricos.

Abstrações e Tecnologias Computacionais. Professor: André Luis Meneses Silva /msn: andreluis.ms@gmail.com Página: orgearq20101.wordpress.

O COMPUTADOR. Introdução à Computação

Introdução a Computação

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Sobre C. Linguagem de Programação C

Algoritmos DCC 119. Introdução e Conceitos Básicos

Aula teórica 3. Tema 3.Computadores e linguagens Linguagens de Programação Compilação e linkagem LP Java. Preparado por eng.

Arquitetura do conjunto de instruções (ISA); características de instruções de máquina; tipos de operandos

Introdução à Arquitetura de Computadores. Prof.ª Ms. Elaine Cecília Gatto

Linguagem de Programação

Sistemas Distribuídos (DCC/UFRJ)

As respostas devem ser assinadalas na Folha de Resposta, a qual deverá ser entregue ao Fiscal de Sala Itapetininga, 04 de Dezembro de 2015

Introdução. Paradigmas de Linguagens de Programação. Heloisa de Arruda Camargo. Motivos para estudar os conceitos de linguagens de programação

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Programação de Computadores III

Introdução à estrutura e funcionamento de um Sistema Informático

Introdução às Linguagens de Programação

GBD PROF. ANDREZA S. AREÃO

Linguagem de Montagem

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

Linguagem de Programação Orientada a Objeto. Introdução a Orientação a Objetos Professora Sheila Cáceres

BREVE HISTÓRIA DA LINGUAGEM FORTRAN

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

Questão 1. Benefícios. Benefícios. Desafios. Desafios. 1. Quais são os desafios e benefícios em potencial da computação distribuída?

Algoritmo e Técnica de Programação - Linguagem C

Sistemas Operacionais Arquitetura e organização de sistemas operacionais: Introdução. Prof. MSc. Hugo Souza

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS. 2º TRIMESTRE Patrícia Lucas

Sistemas Operacionais. Prof. André Y. Kusumoto

O Hardware e o Software do Computador

TRABALHO DE PROGRAMAÇÃO FUNCIONAL LINGUAGEM DE PROGRAMAÇÃO I

Paradigmas e Linguagens de Programação. Prof. Josino Rodrigues Neto josinon@gmail.com

CST em Redes de Computadores

Organização de Computadores. Professor: Francisco Ary

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

Software Básico. Conceito de Linguagem de Máquina e Montagem: introdução ao Assembly. Prof. MSc. Hugo Vieira L. Souza

Introdução a Linguagens de Programação

Paradigmas de Linguagens de Programação. Aspectos Preliminares

Paradigmas. Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I

SOFTWARES. Rotina de Instruções. Dados

Motivos para você ter um servidor

Introdução à Sistemas Operacionais. Glauber Magalhães Pires

UNIVERSIDADE ESTADUAL DA PARAÍBA CENTRO DE CIÊNCIAS E TECNOLOGIA DEPARTAMENTO DE QUÍMICA CURSO DE LICENCIATURA EM QUÍMICA LINDOMÁRIO LIMA ROCHA

CONCEITOS BÁSICOS SOBRE PROGRAMAÇÃO Programação Orientada a Objetos (POO)

Resolução de problemas e desenvolvimento de algoritmos

Introdução à Programação 2006/07. Computadores e Programação

Avaliação de Desempenho

INTRODUÇÃO À PROGRAMAÇÃO

Lógica para a Programação - 1º semestre AULA 01 Prof. André Moraes

Ambiente de Simulação Virtual para Capacitação e Treinamento na Manutenção de. Disjuntores de Subestações de Energia Elétrica,

Linguagens de Programação

Introdução sobre Scilab

Introdução a Informática. Prof.: Roberto Franciscatto

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador

Herança e Polimorfismo de Inclusão

PROGRAMA DE DISCIPLINA

Introdução à Arquitetura de Computadores

Curso Técnico em Informática Organização Curricular. A carga horária total dos módulos é oferecida conforme quadro síntese abaixo:

Edeyson Andrade Gomes.

Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis

Introdução a Banco de Dados Aula 03. Prof. Silvestri

Programação de Computadores

Introdução à Informática

JinSol, uma interface em Java para solvers lineares.

ALP Algoritmos e Programação. . Linguagens para Computadores

Transcrição:

INF1621 Linguagens de Programação I Prof.: Marcus Leal mleal@inf.puc-rio.br 4as e 6as, 15-17hs, 17hs, sala 520L Todo o material apresentado em aula será disponibilizado na web http://www.inf.puc-rio.br/~ rio.br/~inf1621inf1621 Bibiliografia: Ghezzi, Carlo; Jazayeri, Mehdi. Programming Language Concepts. John Wiley & Sons, 1998. Scott, Michael. Programming Languages Pragmatics.. Morgan Kaufmann, 2000. A xerox dos livros do Ghezzi e do Scott está disponível na pasta 295 da xerox dos homens. mleal@inf.puc-rio.br 1 INF1621 Linguagens de Programação I Programa: Introdução Sintaxe e semântica Escopo, ligação e ambiente de execução Tipos Estruturas de controle Concorrência e paralelismo Linguagens de programação orientada a objetos Linguagens de programação lógicas e funcionais Introdução as linguagens Lua, Java, Prolog e ML mleal@inf.puc-rio.br 2

INF1621 Linguagens de Programação I Avaliação: A avaliação do curso será composta por duas provas (P1 e P2) e dois trabalhos (T1 e T2). A média final será calculada por: MF = (P1+P2+(T1+T2)/2)/3 Se MF for menor que 5.0 o aluno deverá fazer a prova final (PF), e a nova MF será: MF = ((maior(p1,p2) +PF+(T1+T2)/2)/3 mleal@inf.puc-rio.br 3 INF1621 Linguagens de Programação I Trabalhos: O primeiro trabalho consistirá na implementação de um scanner em Lua e em Java. O segundo trabalho será um apresentação sobre uma LP a ser definida. mleal@inf.puc-rio.br 4

Introdução mleal@inf.puc-rio.br 5 Linguagens de Programação Introdução Nos primeiros computadores a programação era feita exclusivamente através de linguagens de baixo nível, envolvendo a manipulação direta d de recursos específicos de cada máquina. As linguagens de programação (LPs) surgiram da necessidade de isolar o programador de detalhes particulares das máquinas em que a programação é feita, permitindo a programação em termos mais próximos ao problema, ou em nível mais alto. Algumas LPs são desenvolvidas para atender domínios específicos de problemas (SQL, PHP, etc), enquanto outras são de uso mais geral. As características de uma LP têm um impacto significativo na capacidade de um programador desenvolver um programa a opção por uma linguagem é portanto uma decisão de projeto importante. mleal@inf.puc-rio.br 6

Classificação de LPs Podemos identificar duas categorias principais: LPs imperativas (ou procedurais) Um programa é composto por uma sequência de comandos que realizam atividades computacionais, usualmente envolvendo a manipulação da memória ou outros dispositivos. LPs declarativas Um programa é composto por declarações que descrevem um problema e\ou e suas característcas. mleal@inf.puc-rio.br 7 Classificações de LPs Imperativas: von Neumann LPs tradicionais em que o programa é composto por rotinas e sequências de comandos (C, Pascal, Fortran, Basic). Orientada a Objetos O estilo de programação é baseado na definição de classes e objetos (Smalltalk, Eiffel, C++, Java). Declarativas: Funcionais O modelo de computação é baseado na definição recursiva de funções (Lisp, Scheme, ML). Lógica Um programa consiste na definição de relações lógicas que devem ser satisfeitas pela solução procurada (Prolog). mleal@inf.puc-rio.br 8

Características Desejáveis de LPs Legibilidade: facilidade com que um programa pode ser lido e compreendido. Redigibilidade: facilidade de expressar soluções de uma forma natural. Expressividade: capacidade de representar soluções adequadamente. Robustez: capacidade de lidar com situações imprevistas. Eficiência do programa compilado: velocidade de execução do código gerado, utilização de memória, etc. Disponibilidade de ferramentas e bibliotecas. Produtividade. Portabilidade. mleal@inf.puc-rio.br 9 Compiladores Aplicações que transformam um programa fonte descrito em uma LP de alto nível em um programa objeto (descrito em uma LP de baixo nível - usualmente linguagem de máquina). A execução do programa é controlada pelo próprio programa objeto. programa fonte compilador programa objeto input programa objeto output mleal@inf.puc-rio.br 10

Interpretadores Um interpretador executa diretamente um programa fonte, simulando uma máquina virtual cuja programação é executada diretamente através da própria LP de alto nível. A execução do programa é controlada diretamente pelo interpretador que compõe o ambiente de execução. programa fonte interpretador output input mleal@inf.puc-rio.br 11 Máquinas virtuais Diversas implementações de LPs incluem uma composição de compiladores e interpretadores (ex: Java, Lua,.Net). A geração de código intermediário facilita a portabilidade da LP. programa fonte programa intermediário input compilador máquina virtual programa intermediário output mleal@inf.puc-rio.br 12