Linguagens de Programação -- Compilação e Execução -- Compilação. Paulo Marques. Compilador. Tecnologia dos Computadores 2004/2005
|
|
- Matilde Ana Palmeira Castilho
- 7 Há anos
- Visualizações:
Transcrição
1 Linguagens de Programação -- Compilação e Execução -- Paulo Marques Moth found trapped between points at Relay # 70, Panel F, of the Mark II Aiken Relay Calculator while it was being tested at Harvard University, 9 September The operators affixed the moth to the computer log, with the entry: First actual case of bug being found. They put out the word that they had debugged the machine, thus introducing the term debugging a computer program. In 1988, the log, with the moth still taped by the entry, was in the Naval Surface Warfare Center Computer Museum at Dahlgren, Virginia. pmarques@dei.uc.pt Tecnologia dos Computadores 2004/2005 U.S. Naval Historical Center Photograph. Compilação Programa numa Linguagem de Alto Nível (calendario.c) Compilador (gcc) Programa em Código Máquina (calendario.exe)
2 Compilador Programa de Alto Nível em Pascal Traduz uma linguagem de alto nível na linguagem máquina da arquitectura destino Depois de compilado, o programa é específico da máquina onde corre Program gcd(input, Output); Var i, j : Integer; Begin Read(i, j); Calcula o Máximo Divisor Comum entre dois números. As linguagens de programação de alto nível é fornecerem ao programador um conjunto de instruções que estão próximo da sua forma de pensar e do seu domínio de aplicação Em 1995 estavam inventariadas cerca de 2300 linguagens (comp.lang.misc) End. While i<>j Do If i>j Then i := i - j; Else j := j - i; WriteLn(i) Funcionamento de um Compilador Análise Lexical A análise lexical reconhece a estrutura de um programa sem olhar ao seu significado. O compilador lê os caracteres do programa e agrupa-os em tokens, que são as unidades mais pequenas significativas de um programa Compiler tokens do programa Program gcd ( Input, Output ) ; Var i, j : Integer ; Begin Read ( i, j ) ; While i <> j Do If i > j Then i := i - j ; Else j := j - i ; WriteLn ( i ) End.
3 Parsing A fase seguinte do compilador é organizar os tokens numa árvore de parsing que representa a estrutura de alto nível do programa. Os tokens têm de ser compatíveis com a gramática da linguagem. Árvore de parsing Geração de código O último passo consiste na geração de código. O compilador percorre a árvore, gerando as instruções máquina A geração de código pode ser feita: Para assembly do processador. Nesse caso é necessário correr um assembler sobre o ficheiro resultante. Directamente para código máquina. Nesse caso obtém-se directamente o executável da máquina. Para uma máquina virtual. Nesse caso a máquina virtual traduz just-in-time de uma linguagem intermédia para código máquina. Exemplo de Código Final (ou quase!) Código Assembly Código Máquina
4 Máquinas Virtuais Máq. Virtuais Portabilidade de Código (2) Na máquina virtual existe um just-in-time compiler (JIT) que antes de executar o código o traduz em código máquina do processador alvo Gcd.java Compilador javac Gcd.class Gcd.class Máquina Virtual java JIT Máq. Virtuais Portabilidade de Código Máquinas Virtuais A favor Permitem independência da arquitectura da máquina onde o código vai correr Permitem fazer verificações de segurança sobre o código Na maioria das vezes oferecem gestão automática de memória Carregamento dinâmico de código Contra Em muitos casos existe perda de performance ao utilizar uma máquina virtual No caso do Java, fica-se limitado a uma linguagem (o que não acontece em.net!)
5 » I don t know what the language of the year 2000 will look like, but I know it will be called FORTRAN «C.A.R. Hoare Paradigmas de Programação Actualmente existem quatro paradigmas de linguagens de programação em uso comum: Imperativas (e.g. C, Pascal, Fortran) Funcionais (e.g. LISP, Scheme) Lógicas/Declarativas (e.g. Prolog) Orientadas-aos-Objectos (e.g. Java, C++, C#) Hoje em dia a indústria é dominada pelos paradigmas Imperativo e Orientado-aos-Objectos Evolução das Linguagens de Programação Linguagens de Programação -- Paradigmas -- Paulo Marques pmarques@dei.uc.pt Tecnologia dos Computadores 2004/2005
6 Linguagens Imperativas Para programar um computador diz-se que PROGRAMA = ESTRUTURAS DADOS + ALGORITMOS No programa existem variáveis que representam os dados Existe um conjunto de instruções que sucessivamente, a cada instrução, altera o valor das variáveis, manipulando os dados Segue de forma bastante próxima o modelo básico de funcionamento do processador Exemplos: C, Pascal, Fortran Tipos de Instruções Declaração de variáveis Controlo de fluxo - Selecção (if, switch, ) Iteração (for, while, do-while, ) Chamada de Funções e Procedimentos Estrutura Típica de uma Linguagem Imperativa Funções e Procedimentos int factorial; int n; int i; void main() { scanf( %d, &n); factorial = 1; for (i=1; i<=n; i++) factorial = factorial*i; printf( %d, factorial); A primeira parte do programa consiste na declaração dos dados A segunda parte do programa consiste nas instruções que manipulam os dados Procedimento: É um pequeno sub-programa dentro de um programa. Não tem valor de retorno. Função: É como se fosse um procedimento, mas tem um valor de retorno, calcula algo. Nota: apesar de não mostrado aqui, normalmente existem variáveis (dados) locais e globais
7 Passagem por Valor e por Referência Passagem por Referência (C++) As funções/procedimentos têm parâmetros de entrada. Os parâmetros podem ser passados por valor ou por referência. Na passagem por valor, apenas o valor é passado. Dentro da rotina, alterações na variável não afectam a variável original. Na passagem por referência, a variável que se encontra no parâmetro representa a variável original. Alterações na variável são reflectidas na variável original. void factorial(int& n) { for (int i=n-1; i>1; i--) n = n*i; printf( n! = %d\n, n); void main() { int n = 5; factorial(n); printf( n = %d\n, n); Ao chamar-se a função factorial(), a variável n representa a variável original com a qual se chama o programa (note-se que não têm de ter o mesmo nome). Alterações feitas sobre variável na função reflectem-se na variável original! Imprime n! = 120 n = 120 Passagem por Valor (C++) Personalidades John Backus void factorial(int n) { for (int i=n-1; i>1; i--) n = n*i; printf( n! = %d\n, n); void main() { int n = 5; factorial(n); printf( n = %d\n, n); Ao chamar-se a função factorial(), o valor de n é copiado para dentro da função. Não existe nenhuma relação entre a variável n do factorial e a variável n do programa principal excepto o seu valor inicial. Imprime n! = 120 n = 5 John Backus, desenvolveu o FORTRAN circa 1957, na IBM Foi a primeira linguagem de alto nível digna desse nome Era suposto levar 6 meses a fazer, levou mais de 2 anos ninguém sabia as técnicas básicas de implementar um compilador, aprenderam aqui. BNF: Backus-Naur Form
8 Dennis Ritchie (& Brian Kernighan) Exemplo: Factorial em LISP Dennis Ritchie Brian Kernighan Em 1967, M. Richards desenvolve a linguagem BCPL Em 1970, Ken Thompson implementa o núcleo sistema operativo UNIX em Assembly! A primeira linguagem/compilador escrita para Unix foi a B, uma variante do BCPL Dennis Ritchie (Bell Labs) reconhece a necessidade de implementar o próprio sistema operativo usando uma linguagem de alto nível: inventa o C, uma evolução do B A linguagem C é altamente apropriada para programação de sistema Dennis Ritchie e Brian Kernighan escrevem a bíblia do C: The C Programming Language (defun fact (x) (if (<= x 0) 1 (* x (fact (- x 1))) ) ) Não tem definição de tipos/variáveis Não tem instruções de iteração Não tem instruções de atribuição (Quase) Tudo são definições de funções Uso forte de recursividade A primitiva básica é a lista! (+ (* 2 4) (/ 4 3)) Linguagens Funcionais LISP Não existem atribuições de variáveis: tudo é feito invocando funções Tradicionalmente são utilizadas em cálculo simbólico / Inteligência Artificial Tipicamente tem suporte directo para trabalharem com Listas de Símbolos Exemplos: LISP, ML, Scheme Em termos de indústria não tiveram grande aceitação, embora se encontrem alguns locais (e.g. AutoCAD, Emacs ) Criado por John McCarthy em 1959 A principal ideia era a manipulação de símbolos utilizando listas directamente na linguagem LISP = LIST PROCESSING (+ 5 (* 2 5)) A primeira tentativa chamava-se FLPL (Fortran List Processing Language) As funcionalidades que McCarthy queria eram: Expressões condicionais (ifs) Recursividade Listas Garbage Collection Escreveu um artigo onde definia o LISP e a sua função base eval Uma aluno dele notou que era possível implementar o eval na prática, o que deu origem ao LISP!
9 Programação Lógica O programador não diz como é que se resolve um problema. Apenas diz: Quais são os factos Quais são os teoremas que descrevem o sistema O interpretador/compilador encarrega-se de encontrar a solução para as interrogações feitas ao programa Isto implica que na sua forma pura: Não existem atribuições Não existe controlo de fluxo Linguagem mais conhecida: PROLOG Também é fortemente baseada em listas Utilização: Inteligência Artificial PROLOG Calcular um Factorial Factos e Teoremas fact(n,1) :- N =:= 1. fact(n, Resultado) :- N > 1, K is N-1, fact(k, FactK), Resultado is N*FactK. PROLOG Raciocinar sobre Famílias Factos e teoremas (o que é dado ao sistema): pai(carlos, antonio). pai(antonio, jose). pai(miguel, antonio). avo(x,y) :- pai(x,z), pai(z,y). irmao(x,y) :- pai(x,z), pai(y,z). Interrogações (o que perguntamos ao sistema):?- pai(carlos, X). X = antonio; no?- avo(carlos, X). X = jose; no Programação Orientada aos Objectos Os grandes problema da programação imperativa, estruturada: Grande Acoplamento! Baixa Coesão! f() g() h() f() f() j() f() f() m() f() l() f() f() f() k() p() Dados (/Estruturas de Dados)?- irmao(carlos, X). X = miguel; no Temos os dados, e o programa é constituído por milhares de funções que -- Ou manipulam directamente esses dados -- Ou trocam imensos valores por parâmetro
10 Programação Orientada aos Objectos Em OOP (Object-Oriented Programming), as funções estão encapsuladas juntamente com os dados a que podem (e devem aceder) Fundamentos da OOP Noção de Classe e Objecto Herança Dados h() f() g() Dados q() l() m() Polimorfismo Dados h() f() g() Programação Orientada aos Objectos A principal ideia das objectos é que: Apenas as funções relacionadas com os dados lhes podem aceder Reduzir o acoplamento e aumentar a coesão Isto é, permitir a construção de software em projectos de larga escala, de forma consistente e fácil de gerir Para além disso, é muito mais natural pensar em termos de objectos e suas relações do que em termos de dados e algoritmos Programação estruturada: PROGRAMA = DADOS + ALGORITMOS Programação orientada aos Objectos PROGRAMA = OBJECTOS + RELAÇÕES Noção de Classe e Objecto Uma classe representa um grupo de coisas Exemplo: Pessoa, Automóvel É sempre um NOME Uma classe tem operações associadas: métodos Os métodos representam acções sobre uma entidade, logo são VERBOS Um objecto (ou instância) representa uma coisa em particular de um grupo. Exemplo: Paulo Marques, XM
11 Classes e Objectos (Java) Polimorfismo class Pessoa { private String nome; private int idade; Capacidade de objectos diferentes se comportarem de forma diferente face à mesma chamada de método Pessoa(String nomepessoa, int idadepessoa) { nome = nomepessoa; idade = idadepessoa; public void identifica() { System.out.println(nome + : + idade); Pessoa cliente1 = new Pessoa( António, 32); Pessoa cliente2 = new Pessoa( José, 23); cliente1.identifica(); cliente2.identifica(); class Patrao extends Pessoa { public void identifica() { System.out.println( --- PATRAO --- ); System.out.println(nome + : + idade); class Empregado extends Pessoa { public void identifica() { System.out.println( --- EMPREGADO --- ); System.out.println(nome + : + idade); ( ) Pessoa p; p = patrao; p.identifica(); p = ze_ninguem; p.identifica(); Herança Um pouco de História Alan Kay É possível definir especializações de uma classe base. Chama-se a isso classe derivada. A classe derivada contém tudo o que a base contém, mas com informação/métodos adicionais class Patrao extends Pessoa { private String codigocofreempresa; public void abrecofre() { class Empregado extends Pessoa { private String balcao; public void abrebalcao() { Patrao boss = new Patrao( António, 32); Empregado ze_ninguem = new Empregado( José, 23); boss.identifica(); ze_ninguem.identifica(); boss.abrecofre(); ze_ninguem.abrebalcao(); Um dos pais da programação orientada aos objectos SmallTalk, Laboratórios da XEROX em Palo Alto, 1972 Também inventou o conceito de computador pessoal, GUI e Portátil (sim, para além da programação orientada aos objectos ) A ideia de computador pessoal era RADICAL! "There is no reason anyone would want a computer in their home." (Ken Olsen, Digital Equipment Corp, 1977) As ideias da programação orientada aos objectos, de Kay, vêm da Biologia!!!
12 Um pouco de História Bjarne Stroustrup Bjarne Stroustrup queria ter classes e objectos na linguagem C Criou um pré-processador que compilava a sua linguagem C with Classes para C 1984, Bell Labs, C++ Leitura Recomendada Niklaus Wirth Criador, entre outras coisas, do Algol-W, Pascal, MODULA e Oberon. A linguagem Pascal foi extremamente influente em termos de linguagens de programação Alguns dos problemas do C++ é que é horrivelmente grande, complicada de utilizar e muito fácil de cometer erros/gerar código de baixa qualidade Niklaus Wirth é conhecido pela sua determinação em tornar as coisas o mais simples e elegantes possíveis Um pouco de História JAVA Em 1991 a Sun começa um projecto para construir uma linguagem para sistemas embebidos Linguagem Oak, James Gosling, Sun Microsystems Para saber mais Computer Science An Overview Capítulo 5 (5.1, 5.2, 5.3, 5.4, 5.5, 5.7) Em 1994 a Internet começava a mostrar sinais promissores. O projecto Oak é adaptado para a Internet Nasce o Java em 1995 Filosofia do JAVA: Ser parecido com o C/C++ Eliminar radicalmente tudo o que há de mau (ou considerado mau) no C++ Adicionar ideias brilhantes de outros sistemas (Carregamento dinâmico de código, Máquina Virtual, Garbage Collection, Threads, ) Computer Science Illuminated Capítulo 8 (8.1, 8.2, 8.3, 8.4)
História das Linguagens de Programação. Rosana Braga
História das Linguagens de Programação Rosana Braga Links interessantes Timeline das linguagens de programação https://en.wikipedia.org/wiki/timeline_of_programmi ng_languages Crash course computer science
Leia maisFundamentos de Programação 1
Fundamentos de Programação 1 Slides N. 2 - A Prof. SIMÃO Jean Marcelo SIMÃO Computador Noção elementar de um computador. - Dipositivo para processar informação. Processador Sistema Operacional (SO) Aplicativos
Leia maisConceitos de Linguagens de Programação - Características. Paavo Soeiro
Conceitos de Linguagens de Programação - Características Paavo Soeiro Motivação Para que possa escolher uma linguagem apropriada ao problema. Melhorar o entendimento da linguagem utilizada. Facilitar o
Leia maisDELEGAÇÃO REGIONAL DO ALENTEJO CENTRO DE FORMAÇÃO PROFISSIONAL DE ÉVORA REFLEXÃO 5
REFLEXÃO 5 Módulos 0782, 0783, 0784 e 0785 1/5 23-05-2013 Esta reflexão tem como objectivo partilhar e dar a conhecer o que aprendi nos módulos 0782 Programação em C/C++ - Estrutura Básica e Conceitos
Leia maisIntrodução à Programação Aula 03. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação
Aula 03 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação Linguagens de Programação A primeira linguagem de programação foi criada por Ada Lovelace. Amiga
Leia maisLinguagem C Introdução. Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux
Linguagem C Introdução Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux Porquê C em AC? A linguagem C fornece um modelo de programação próximo da máquina física
Leia maisInformática I. Aula 19. Aula 19-31/10/2007 1
Informática I Aula 19 http://www.ic.uff.br/~bianca/informatica1/ Aula 19-31/10/2007 1 Ementa Noções Básicas de Computação (Hardware, Software e Internet) HTML e Páginas Web Internet e a Web Javascript
Leia maisParadigmas de Linguagens
Paradigmas de Linguagens Paradigma Imperativo Professora Sheila Cáceres Paradigma Imperativo Um pouco de historia Paradigma fundamentado no conceito de máquina de Turing. A máquina de Turing é uma abstração
Leia maisCurso: Análise e Desenvolvimento de Sistemas. (Introdução a disciplina Algoritmos e Programação)
Curso: Análise e Desenvolvimento de Sistemas Disciplina Algoritmos e Programação (Introdução a disciplina Algoritmos e Programação) Prof. Wagner Santos C. de Jesus wsantoscj@gmail.com Conceito de Lógica
Leia maisProgramação Estruturada Aula - Introdução a Linguagem C
Programação Estruturada Aula - Introdução a Linguagem C Prof. Flávio Barros flavioifma@gmail.com www.flaviobarros.com.br 2 HISTÓRICO DA LINGUAGEM C HISTÓRICO DA LINGUAGEM C Como tudo iniciou... C iniciou
Leia maisConceitos Básicos de C
Conceitos Básicos de C Bibliografia Problem Solving & Program design in C, Jeri R. Hanly e Elliot B. Kpffman, 3 a edição Data Structures and Algorithm Analysis in C, Mark Allen Weiss, 2 a edição, Addison-Wesley,
Leia maisProgramação em Sistemas Computacionais
Programação em Sistemas Computacionais Linguagem C Introdução, tipos Centro de Cálculo Instituto Superior de Engenharia de Lisboa Jorge Martins (jmartins@isel.pt) baseado no slides de Pedro Pereira Enquadramento
Leia maisIntrodução à linguagem C
Introdução à linguagem C Luís Charneca luis.charneca@gmail.com Introdução ao C O C nasceu na década de 70. O seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 correndo
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
Programação Orientada a Objetos 1.1 - Perspectiva histórica: Conceitos A evolução das linguagens de programação tem-se feito na procura de ferramentas: -cada vez mais próximas da percepção humana - e que
Leia maisIntrodução as Máquinas de Autômatos
Faculdade de Engenharia da Computação Disciplina: Autômatos e Linguagens Formais Introdução as Máquinas de Autômatos Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis Wagner Santos C. de
Leia maisCompiladores. Introdução
Compiladores Introdução Apresentação Turma Noite Continuada I 20/03 Continuada II 22/05 Atividades Regimental 05/06 Total 1 Ponto 1 Ponto 1 Ponto 7 Pontos 10 Pontos Aulas expositivas teórico-práticas Exercícios
Leia maisOrientação a Objetos. Programação em C++
Engenharia Eletrônica Orientação a Objetos - Programação em C++ 1 o Conjunto de Slides A : o Conteúdo da Disciplina, Importância Sistêmica desta, e a Introdução à OO/C++. Prof. Jean Marcelo SIMÃO - DAELN/UTFPR
Leia mais3. Linguagem de Programação C
Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3. Linguagem de programação C 3.1. Conceitos
Leia maisLAPRO I. Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática - FACIN. Prof. Dr. Rafael Garibotti
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática - FACIN LAPRO I Prof. Dr. Rafael Garibotti v Baseado no material cedido pelos Profs. Dr. Marco Mangan e Dr. Matheus Trevisan
Leia maisIntrodução a lógica e a Linguagem de Programação
Faculdade de Engenharia da Computação Disciplina: Lógica de Programação Introdução a lógica e a Linguagem de Programação Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis Wagner Santos C.
Leia maisParadigmas de Programação
Paradigmas de Programação Prof.: Edilberto M. Silva http://www.edilms.eti.br Aula 2 Linguagens de Programação Desenvolvimento e execução de programas Características de linguagens Execução de programas
Leia maisProjeto de Compiladores
Projeto de Compiladores FIR Faculdade Integrada do Recife João Ferreira 12 e 13 de fevereiro de 2007 Questionário 1. Em quais linguagens de programação você já programou? 2. O que você sabe sobre compiladores?
Leia maisProgramação Orientada a Objetos. Programação Funcional
Programação Orientada a Objetos Programação Funcional Cristiano Lehrer, M.Sc. Introdução (1/3) É uma categoria de linguagens não-imperativas. Imperativas: Uso eficiente das arquiteturas de computadores
Leia maisIntrodução. Parte 01. Desenvolvimento de Programação Orientada a Objetos. Prof. Pedro Neto
Introdução Parte 01 Prof. Pedro Neto Aracaju Sergipe - 2011 Conteúdo 1. Introdução i. Paradigmas de ii. Motivação da OO iii. Desafio das novas tecnologias iv. Ambientes de Desenvolvimento Modernos v. OO
Leia maisIntrodução à linguagem C
MCTA028 Programação Estruturada Introdução à linguagem C Material preparado a partir de slides dos profs. Jesús MenaChalco e Fabrício Olivetti Prof. Guilherme Mota Q3-2018 1 Linguagens de programação 2
Leia maisEderson Luiz da Silva Ciência da Computação. Algoritmos e Programação
Ederson Luiz da Silva Ciência da Computação Algoritmos e Programação Linguagem de programação Linguagem de Programação Linguagem de máquina http://www.assemblyprogressivo.net/p/curso.html Linguagem de
Leia maisLicenciatura em Informática
Licenciatura em Informática Unidade Curricular Programação I Programming I Objetivos -Técnicas Fundamentais de Programação; -A linguagem C e C++: fundamentos; -Aplicações em linguagem C; -Aplicações em
Leia maisALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal
ALGORITMOS AULA 01 Baseado nas aulas do Prof. Jorgiano Vidal LINGUAGEM C Uma das grandes vantagens do C é que ele possui tanto caracterìsticas de "alto nìvel" quanto de "baixo nìvel". Linguagem de propósito
Leia maisLinguagens de Programação
Linguagens de Programação 128 13 129 Linguagens de Programação Uma linguagem de programação é um vocabulário e um conjunto de regras gramaticais usadas para escrever programas de computador. Esses programas
Leia mais09/05/2017. Técnicas Avançadas de Programação APRESENTAÇÃO
APRESENTAÇÃO Técnicas Avançadas de Programação Técnica: Secretária Escolar(FDR) Graduação: Bacharelado em Sistemas de Informação(FIED) Pós-Graduação: Especialização em Engenharia de Software(FGF) MBA em
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
Programação Orientada a Objetos 1.1 - Perspectiva histórica: Conceitos A evolução das linguagens de programação tem-se feito na procura de ferramentas: -cada vez mais próximas da percepção humana - e que
Leia maisAspectos preliminares
Aspectos preliminares Linguagens de Programação Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. http://github.com/malbarbo/na-lp-copl
Leia maisMCTA028 Programação Estruturada Aula 01: - Introdução à linguagem C - Teste de avaliação
MCTA028 Programação Estruturada Aula 01: - Introdução à linguagem C - Teste de avaliação Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 3Q-2017 1 Linguagens de programação 2 Linguagem de programação
Leia maisPLANO DE UNIDADE DIDÁTICA- PUD
Professor: Marcus Vinícius Midena Ramos Coordenação: Ricardo Argenton Ramos Data: 03/08/2010 Página: 1 de 5 EMENTA: Conceitos básicos de linguagens. Histórico, classificação e principais aplicações de
Leia maisProgramação I A Linguagem C. Prof. Carlos Alberto
Programação I A Linguagem C Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br 2 Origem A linguagem C foi desenvolvida em 1972, nos Laboratórios Bell, por Dennis Ritchie. Implementada
Leia maisFundamentos de Programação 1
Fundamentos de Programação 1 Slides N. 2 E / Prof. SIMÃO Slides elaborados pelo Prof. Robson Linhares elaborados pelo Prof. Robson Linhares http://www.dainf.ct.utfpr.edu.br/~robson/ Jean Marcelo SIMÃO
Leia maisMCTA028 Programação Estruturada Aula 01: - Introdução à linguagem C - Teste de avaliação
MCTA028 Programação Estruturada Aula 01: - Introdução à linguagem C - Teste de avaliação Prof. João Henrique Kleinschmidt Material elaborado pelo Prof. Jesús P. Mena-Chalco 3Q-2018 Linguagens de programação
Leia maisCurso Profissional de Gestão e Programação de Sistemas Informáticos. Programação e Sistemas de Informação. Módulo 1. 1ª Parte Prof. Sandra Pais Soares
Curso Profissional de Gestão e Programação de Sistemas Informáticos Programação e Sistemas de Informação Módulo 1 1ª Parte Prof. Sandra Pais Soares Linguagens de Programação Linguagens de Programação Uma
Leia maisPROGRAMAÇÃO ORIENTADA A OBJETOS I -CONCEITOS PRELIMINARES. Prof. Angelo Augusto Frozza, M.Sc.
PROGRAMAÇÃO ORIENTADA A OBJETOS I -CONCEITOS PRELIMINARES Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO O que é programação Linguagens de Programação Paradigmas de Programação História
Leia maisLinguagem C. Brian W. Kernighan, Dennis Ritchie (K&R) Slides adaptados, inspirados, muitos copiados dos slides do professor Pedro Pereira
Linguagem C Brian W. Kernighan, Dennis Ritchie (K&R) Slides adaptados, inspirados, muitos copiados dos slides do professor Pedro Pereira Centro de Cálculo Instituto Superior de Engenharia de Lisboa João
Leia maisCompiladores. Motivação. Tradutores. Motivação. Tipos de Tradutores. Tipos de Tradutores
Motivação Prof. Sérgio Faustino Compiladores Conhecimento das estruturas e algoritmos usados na implementação de linguagens: noções importantes sobre uso de memória, eficiência, etc. Aplicabilidade freqüente
Leia maisSlides trabalhados durante a quinta aula
Slides trabalhados durante a quinta aula prática Estruturas de Controle de Fluxo 3. Laços de repetição (continuação) Exercício: Construa um algoritmo, representando-o através de um pseudocódigo e de um
Leia maisAula 4 Introdução ao C
Considere o nosso MSC. O Processador Central, entende o conjunto de instruções, leia, imprima, atribuição e condicional e com ela resolvemos vários problemas, construindo vários algoritmos. As instruções
Leia maisAula teórica 7. Preparado por eng.tatiana Kovalenko
Aula teórica 7 Tema 7. Introdução a Programação Ø Linguagens de Programação Ø LP Java ØEstrutura de um programa em Java ØIdentificadores, variáveis e constantes. ØTipos de dados básicos Preparado por eng.tatiana
Leia maisCompilador de LP3 para C3E e P3
Compilador de LP3 para C3E e P3 Luís Gil 1 13 de Junho de 2005 1 estudante de Ciências Informáticas no Instituto Superior Técnico 1 Introdução Este relatório descreve a sintaxe e a semântica da Linguagem
Leia maisLinguagens de Programação Princípios e Paradigmas
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Linguagens e Ambientes de Programação 2002-2003 Linguagens de Programação Princípios e Paradigmas Gladys Castillo
Leia maisUnidade 1. Introdução e histórico
Unidade 1 Introdução e histórico Histórico Os computadores surgiram na história há relativamente pouco tempo. Quase todos os computadores de hoje em dia são baseados no modelo (ou máquina) de von Neumann
Leia maisLinguagens de Programação
Curso Superior em Análise e Desenvolvimento de Sistemas História da Ciência e da Tecnologia - (HCT) Linguagens de Programação Alunas: Érika H. Gamas Flávia G. Pereira Melissa B. Alcantud Thaynara da Silva
Leia maisIntrodução e Conceitos
Introdução e Conceitos Aula 1 11/08/2017 diegoquirino@gmail.com 1 Agenda 1. Motivações: porque estudar linguagens de programação? 2. Breve Histórico sobre as Linguagens de Programação 3. Processos de Tradução
Leia maisProgramação Imperativa
Programação Imperativa Linguagem de Programação Linguagem de Programação é um sistema de notações para descrição de computação sob forma legível tanto para o ser humano quanto para as máquinas. É um método
Leia maisIntrodução as Linguagens de Programação (POO-II) Prof. Responsável Wagner Santos C. de Jesus. www1.univap.br/wagner
Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Introdução as Linguagens de Programação (POO-II) Prof. Responsável Wagner Santos C. de Jesus www1.univap.br/wagner 1 Assuntos
Leia mais1 Introdução à Programação O que é? Para que serve?... 1
Nesta aula... Conteúdo 1 Introdução à Programação 1 1.1 O que é?................................. 1 1.2 Para que serve?............................. 1 2 Linguagens de programação 2 2.1 Programação estruturada........................
Leia maisA linguagem C (visão histórica)
A linguagem C (visão histórica) A linguagem C é uma linguagem de programação desenvolvida no ínício dos anos 70 por Dennis Ritchie, que trabalhava nos laboratórios Bell e que também inciou em paralelo,
Leia maisProgramação de Computadores:
Instituto de C Programação de Computadores: Introdução a Linguagens de Programação Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Seis Camadas Problema
Leia maisProgramação I Apresentação
Programação I Apresentação Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br Referências JUNIOR, D. P.; NAKAMITI, G. S.; ENGELBRECHT, A. de M. E.; BIANCHI, F. Algoritmos e Programação
Leia maisINTRODUÇÃO À LINGUAGEM C
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação INTRODUÇÃO À LINGUAGEM C Material preparado pela profa Silvana Maria Affonso de Lara e utilizado por outros professores
Leia maisInformática I. Aula 12. Aula 12-29/05/2006 1
Informática I Aula 12 http://www.ic.uff.br/~bianca/informatica1/ Aula 12-29/05/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação
Leia maisAULA TEÓRICA 3 Tema 2. Introdução a programação em Java (JVM, JDK)
AULA TEÓRICA 3 Tema 2. Introdução a programação em Java (JVM, JDK) Ø LP Java. Estrutura de um programa em Java. Ø Conjunto de caracteres utilizado. Ø Identificadores. Ø Variáveis e constantes. Ø Tipos
Leia maisParadigmas. Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I
Paradigmas Paradigmas Tradicional Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I Paradigmas Tradicional Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I OO Simula-67, Smalltalk, C++, Eiffel, Object Pascal,
Leia maisPROGRAMAÇÃO I. Introdução
PROGRAMAÇÃO I Introdução Introdução 2 Princípios da Solução de Problemas Problema 1 Fase de Resolução do Problema Solução na forma de Algoritmo Solução como um programa de computador 2 Fase de Implementação
Leia maisFundamentos de Programação1
Fundamentos de Programação1 Linguagem C Introdução e elementos principais Aula N. 01 Prof. SIMÃO Jean Marcelo SIMÃO 1 Exemplo 2 % código em Octave/Matlab clc; A = 5; A = 4 ; if ( A > B ) printf ( A é maior
Leia maisLinguagem de Programação C. Prof. Fabrício Olivetti de França
Linguagem de Programação C Prof. Fabrício Olivetti de França Linguagem C 2 Linguagem C Imperativo e estruturado Pequeno conjunto de palavras-chaves, operadores, etc. Tipagem estática, porém fraca Permite
Leia maisQuestões de Paradigmas de Programação Matéria: Prova 1 4ª EDIÇÃO
Questões de Paradigmas de Programação Matéria: Prova 1 4ª EDIÇÃO QUESTÃO 1 : Enviada por: Francisco Carlos Moraes Junior Duvidas: Thaise Domínios de programação são áreas onde os computadores são usados.
Leia maisao paradigma imperativo
PARADIGMA FUNCIONAL PARADIGMA FUNCIONAL: INTRODUÇÃO G Exemplos de linguagens funcionais LISP - Início: LP puramente funcional - Depois: acréscimo de alguns recursos imperativos (aumentaram eficiência de
Leia maisINSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Introdução Copyright 2014 IFRN Agenda Conceitos básicos ANSI C Hello World Funções em C Exercícios 2 /26 A linguagem
Leia mais#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C
#include Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C ANTES DO C ERA A LINGUAGEM B B foi essencialmente uma simplificação da linguagem BCPL. B só tinha um tipo de dado, que
Leia maisApresentação. !! Familiarização com os métodos de construção de compiladores de linguagens e com as técnicas de compilação mais habituais.
Apresentação Universidade dos Açores Departamento de Matemática www.uac.pt/~hguerra/!! Aquisição de conceitos sobre a definição de linguagens de programação.!! Familiarização com os métodos de construção
Leia maisImplementação de Linguagens
Implementação de Linguagens Pedro Vasconcelos DCC/FCUP 11 de Abril de 2016 Objectivos Introdução à implementação de linguagens de programação funcionais. Enfoce sobre técnicas de interpretação/compilação
Leia maisParadigmas de Programação
Paradigmas de Programação Aula 3 Histórico das Linguagens Prof.: Edilberto M. Silva http://www.edilms.eti.br Prof. Edilberto Silva / edilms.eti.br Definição Linguagens de programação são usadas para descrever
Leia maisAULA TEÓRICA 10. Tema 9. Interface. Tema 10. Recursividade
AULA TEÓRICA 10 Tema 9. Interface Tema 10. Recursividade 1 Interface Uma interface é como uma classe que não pode ser instanciada. Seu objectivo é espicificar um conjunto de métodos que uma classe deverá
Leia maisLinguagens de Programação Funcional
Linguagens de Programação Funcional Conceitos de Linguagens de Programação Pedro Libório Setembro de 2013 2 Roteiro Introdução Funções matemáticas Fundamentos das linguagens de programação funcionais A
Leia maisNoções de compilação
Noções de compilação Compilador: o que é, para que serve e estrutura geral Parentes do compilador e programas correlatos Prof. Thiago A. S. Pardo 1 Compilação: por que estudar? (parte 1) Compiladores:
Leia maisNoções de compilação
Noções de compilação Compilador: o que é, para que serve e estrutura geral Parentes do compilador e programas correlatos Prof. Thiago A. S. Pardo 1 Exercício em duplas Para esquentar... 2 1 Compilação:
Leia maisCompiladores. Eduardo Ferreira dos Santos. Fevereiro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 38
Compiladores Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Fevereiro, 2017 1 / 38 Sumário 1 Compiladores 2 Linguagens de programação 3 Ciência dos compiladores
Leia maisInformática I. Aula 9. Aula 9-17/05/2006 1
Informática I Aula 9 http://www.ic.uff.br/~bianca/informatica1/ Aula 9-17/05/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação
Leia maisLinguagens de Programação Conceitos e Técnicas. Amarrações
Linguagens de Programação Conceitos e Técnicas Amarrações Conceituação Amarração (ou binding) é uma associação entre entidades de programação, tais como entre uma variável e seu valor ou entre um identificador
Leia maisReinaldo Gomes Análise/projeto estruturado
Programação Orientada a Objetos Objetos, Classes e Mensagens O Modelo de Objetos Objetos e Classes Mensagens e métodos Reinaldo Gomes reinaldo@cefet-al.br Decomposição Análise/projeto estruturado Soluciona
Leia maisIntrodução. PCO / PPO Departamento de Informática Faculdade de Ciências da Universidade de Lisboa
Introdução PCO / PPO Departamento de Informática Faculdade de Ciências da Universidade de Lisboa Resumo Funcionamento da cadeira Intuição sobre programação orientada-a-objectos A linguagem Java: história
Leia maisInformática I. Aula 9. Aula 9-27/09/2006 1
Informática I Aula 9 http://www.ic.uff.br/~bianca/informatica1/ Aula 9-27/09/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação
Leia maisCapítulo 6: Linguagens de Programação
Capítulo 6: Linguagens de Programação Ciência da Computação: Uma Visão Abrangente 11a Edição by J. Glenn Brookshear Copyright 2012 Pearson Education, Inc. Capítulo 6: Linguagens de programação 6.1 Perspectiva
Leia maisEstrutura e funcionamento básico de um computador
Estrutura e funcionamento básico de um computador O que é um computador? Um computador é uma máquina composta por um conjunto de dispositivos electrónicos e electromecânicos capazes de processar informação.
Leia maisComputação e Programação
Computação e Programação MEMec, LEAN - 1º Semestre 2015-2016 Aula Teórica 22 Introdução a linguagem compilada C (2) Structs Ponteiros Arrays D.E.M. Área Científica de Controlo Automação e Informática Industrial
Leia maisLinguagens de Programação
O estudante estuda muito. Regras: 7 9 12 14. . Regras: 2 4 . Regras: 1 Representar através de uma árvore de derivação. 77 O estudante estuda muito.
Leia maisIntrodução à Computação
Universidade Federal do Maranhão Curso de Química Departamento de Informática Introdução à Computação Linguagem Fortran Profa. Msc. Maria Auxiliadora Freire maria@deinf.ufma.br 1 Lógica de Programação
Leia maisFerramentas Programação. UDESC - Prof. Juliano Maia 1
Ferramentas Programação UDESC - Prof. Juliano Maia 1 Índice Seção 1 Linguagens de Programação Seção 2 Interpretador Seção 3 Compilador / Linkeditor Seção 4 Ambientes de Desenvolvimento UDESC - Prof. Juliano
Leia maisIntrodução à Programação
Introdução à Programação 1.Ano LCC-MIERSI DCC - FCUP Nelma Moreira Aula 2 Etapas para o desenvolvimento dum programa 1. Perceber o problema 2. Encontrar um procedimento algorítmico para o resolver. Estratégias:
Leia maisIntrodução à Programação. Conceitos Básicos de Orientação a Objetos
Introdução à Programação Conceitos Básicos de Orientação a Objetos Tópicos da Aula Aprenderemos fundamentos do paradigma orientado a objetos, mas antes veremos o que é paradigma Conceito de paradigma Diferentes
Leia maisInstituto Superior de Engenharia de Lisboa
Instituto Superior de Engenharia de Lisboa Introdução à Programação (PG) Docente: Pedro Viçoso Fazenda (pfazenda@cedet.isel.ipl.pt) Professor Responsável: Pedro Alexandre Pereira (palex@cc.isel.ipl.pt)
Leia maisCapítulo 1. Aspectos Preliminares
Capítulo 1 Aspectos Preliminares Tópicos do Capítulo 1 Razões para estudar conceitos de linguagens de programação Domínios de programação Critérios de avaliação de linguagens Influências no projeto de
Leia maisFigura 3.1 Modelo da programação estruturada
3 - Conceitos de Orientação aos Objectos Hoje em dia, praticamente todo o software está a ser escrito numa ou noutra linguagem orientada aos objectos. As linguagens estruturadas como o C e o Pascal tiveram
Leia maisCompiladores Aula 1. Celso Olivete Júnior.
Aula 1 Celso Olivete Júnior olivete@fct.unesp.br Tópicos da disciplina Introdução à compilação Analisador léxico Analisador sintático descendente Analisador sintático ascendente Análise semântica Geração
Leia maisProgramação. MEAer e LEE. Bertinho Andrade da Costa. Instituto Superior Técnico. Argumentos da linha de comando Funções recursivas
Programação MEAer e LEE Bertinho Andrade da Costa 2010/2011 1º Semestre Instituto Superior Técnico Argumentos da linha de comando Funções recursivas Programação 2010/2011 DEEC-IST Arg. da linha de comando;
Leia maisConstrução de Compiladores. Capítulo 1. Introdução. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2014.
Construção de Compiladores Capítulo 1 Introdução José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2014.2 1/22 1 Linguagens de programação 2 Compilação 2/22 Tópicos 1
Leia maisÍNDICE. PREFÁCIO xv. 3 PROCESSOS GERADOS POR PROCEDIMENTOS Recursão Linear Cálculo de potências Cálculo de factoriais 91
ÍNDICE PREFÁCIO xv 1 NOÇÕES BÁSICAS 1 1.1 Algoritmos 5 1.2 O Desenvolvimento de Programas 8 1.3 Programas em Scheme 11 1.3.1 Sintaxe e semântica 13 1.3.2 Construção de formas 15 1.4 Expressões 16 1.4.1
Leia maisAJProença, Sistemas de Computação, UMinho, 2017/18 1
Introdução aos Sistemas de Computação (3) Estrutura do tema ISC 1. Representação de informação num computador 2. Organização e estrutura interna dum computador 3. Execução de programas num computador 4.
Leia maisComputação e Programação MEMec - LEAN
Computação e Programação MEMec - LEAN 2009-2010 Docentes: Miguel Pedro Silva - Responsável José Borges João Reis Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Programa 1. Introdução
Leia mais