Trabalho de Desenho de Linguagens de Programação e de Compiladores. Mini Pascal
|
|
- Amanda Thais Lancastre Bennert
- 6 Há anos
- Visualizações:
Transcrição
1 Trabalho de Desenho de Linguagens de Programação e de Compiladores Mini Pascal (cod ) Departamento de Informática Universidade da Beira Interior Ano lectivo 2015/ Introdução Este trabalho é parte constituinte da avaliação prática da Unidade Curricular de código designada por Desenho de Linguagens de Programação e de Compiladores, na sua edição de O trabalho visa o exercício dos conceitos e das técnicas básicas de desenho de linguagens de programação e de compiladores expostos nas aulas da presente UC. Com tal este trabalho é estruturado nas várias fases que constituem um projecto desta natureza (espelhado pela própria estrutura lectiva da UC). Estas diferentes fases visam ilustrar a utilização de técnicas (e ferramentas computacionais associadas) de desenho de compiladores. Em particular as técnicas de analises semântica, produção de código máquina e optimização de código. 2 Descrição geral do trabalho O objectivo geral é a definição/extensão formal de uma pequena linguagem de programação, a linguagem Mini-Pascal (da autoria do François Pottier), 1
2 e a construção do compilador correspondente, tendo por alvo a arquitectura x Este trabalho está assim estruturado em duas fases. A primeira fase consiste em entender a linguagem de base Mini-Pascal (cuja sintaxe abstracta e semântica a está descrito em anexo deste enunciado) e estendê-la. Esta fase dará lugar a primeira entrega dia 31 de Março de A segunda fase consiste em desenhar e implementar o compilador para a extensão definida da linguagem. O trabalho completo, concluído com a execução da segunda fase, deverá ser entregue no dia 26 de Maio 2016, e as defesas terão lugar nos primeiros dias da semana seguinte em calendário por definir e afixar na página da UC. A entrega deverá respeitar as modalidades de entrega descritas na secção 4. 3 Trabalho Requerido Como intregável para a primeira fase do trabalho, requer-se um documento que apresenta a linguagem do ponto de vista da sua sintaxe abstracta, o seu sistema de tipo e a sua semântica. Como entregável para a segunda fase, um compilador completo escrito em OCaml/menhir para a linguagem Mini-Pascal extendida (cujo núcleo de base de partida está descrita em anexo). Impreterivelmente, a arquitectura alvo considerada é a arquitetura x86-64 apresentada nas aulas. O grupo de trabalho deverá considerar extensões que achar apropriadas e documentadas no relatório final. Estas extensões deverão ser discutidas com o regente da UC. Em jeito de sugestão, as extensões sugeridas são: novos tipos primitivos (float, character, string, etc,); mecanismos de definição de estruturas; mecanismos de definição de tipos soma; mecanismos de definição de tipos polimórficos; mecanismos de declaração de tipos definidos pelo programador; 2
3 mecanismos de declaração e utilização de apontadores/memória dinâmica; introdução de novos modos de passagem de parâmetros; introdução de novas primitivas; tec. É esperado igualmente que o grupo reporte atempadamente à equipa docente os eventuais entregáveis preliminares (a conclusão incremental das fases de geração código, como introduzido nas aulas) mas igualmente as dificuldades ou questões encontradas. 4 Entrega do trabalho O trabalho deve ser entregue num arquivo tar comprimido (nome.tgz) em que nome é o identificador do vosso grupo. este arquivo deve conter todos os ficheiros fontes necessários à compilação assim como um Makefile completo (as entradas all e clean devem estar presentes). Este arquivo deverá igualmente conter o relatório que descreve o trabalho feito, as escolhas (de desenho, etc.) tomadas, a documentação do código e o manual do utilizador. É igualmente esperada que seja preparada uma apresentação para a respectiva defesa. 5 Documentos auxiliares Anexa-se a este enunciado os documentos que definam a linguagem alvo por compilar: a descrição da sintaxe abstracta e da semântica do core da linguagem Mini-Pascal. estes documentos são adaptações directas dos documentos fornecidos pelo François Pottier na sua UC de Desenho de Linguagens de Programação e Compilação. A Sintaxe abstracta de Mini-Pascal Nas seguintes definições, a variável b percorre o conjunto dos booleanos, ou seja {true, f alse}. A variável n contempla os inteiros com sinal representados 3
4 com 32 bits (i.e. [ ]). A variável x percorre o conjunto (numerável) dos identificadores de variável, a variável f percorre o conjunto (numerável) dos identificadores de funções e procedimentos. Os tipos primitivos considerados são os tipos integer, boolean, array of τ onde τ é ele próprio um tipo - que descreve os elementos do vector definido. τ ::= tipos integer inteiros boolean booleanos array of τ vectores As constantes são booleanos ou inteiros. Não há constantes de tipo vector : os vectores são alocados dinamicamente. k ::= constantes n constante inteira b constante booleana Os operadores unários e binários que aparecem na sintaxe das expressões são as seguintes. Todas produzem um resultado de tipo integer, coma excepção dos operadores de comparação que produzem um resultado de tipo boolean. uop ::= operador unário negação bop ::= operador binário + adição subtracção multiplicação / divisão < > = comparação As operações primitivas, isto é, procedimentos e funções predefinidas são as seguintes. π ::= operações primitivas write escrita de um inteiro writeln escrita de um inteiro com mudança de linha readln leitura de um inteiro 4
5 O alvo de uma chamada de um procedimento ou função é ou uma operação primitiva ou um procedimento/função definido pelo utilizador, a qual é designada pelo seu nome. φ ::= alvo de uma chamada π operação primitiva f procedimento ou função definida pelo utilizador A sintaxe das expressões, condições e instruções é a seguinte. e ::= expressões k constante x variável uop e aplicação de um operador unário e bop e aplicação de um operador binário φ(e...e) chamada de função e[e] acesso a um elemento de vector new array of τ [e] alocação de um vector c ::= condições e expressões (com retorno de tipo boolean) not c negação c and c conjunção c or c disjunção i ::= instruções φ(e...e) chamada de procedimento x := e atribuição e[e] := e escrita num vector if c then i else i condicional while c do i ciclo i... i sequência Uma definição de procedimento ou de função é composta por um cabeçalho, por uma série de declarações de variáveis locais e de um corpo. O cabeçalho define o nome do procedimento ou da função, declara os seus parâmetros formais, se se trata de uma função, indica qual o tipo do seu resultado. A notação τ? indica um tipo opcional. 5
6 d ::= definição de procedimentos/funções f(x : τ...x : τ) : τ? cabeçalho var x : τ... x : τ variáveis locais i corpo Um programa é composto de uma (eventual) sequência de declaração de variáveis globais, de uma (eventual) sequência de declaração de procedimentos/funções e de um corpo. p ::= programa var x : τ... x : τ variáveis globais d.. d definições de procedimentos/funções i corpo B Semântica formal de Mini-Pascal Esta secção introduz uma semântica operacional big-step B.1 Valores Os valores manipulados durante a execução são booleanos, inteiros (com representação sobre 32 bits), endereços de vectores e igualmente a contante nil. Um vector é representado pelo seu endereço em memória e não pela sequência dos seus elementos. Esta distinção tem a sua importância : ela significa, por exemplo, que é possível para duas variáveis distintas de tipo array of τ serem um alias uma da outra, isto é, conter o mesmo endereço e logo apontar para o mesmo vector. Significa igualmente que o conteúdo de uma variável de tipo vector pode ser guardada nos registos, porque se trata de um endereço e não do vector em si. O vector será arquivado na heap. O valor nil é o valor atribuido a vectores sem inicialização. cv ::= valores b constante booleana n constante inteira l endereço de vector nil endereço inválido No Mini-Pascal, quando declaramos uma variável, damos o seu tipo τ, mas não indicamos o seu valor inicial. Nalgumas linguagens, como a linguagem 6
7 C, o valor inicial da variável está então indefinida : é prohibido aceder ao conteúdo desta variável antes de uma inicialização. Noutras linguagens, como em Java, as variáveis são inicializadas com um valor por omissão (que depende do tipo). Esta será a abordagem seguida no Mini-Pascal. Assim define-se uma função default que atribuí a cada tipo o valor por omissão que lhe corresponde. default (boolean) = false default (integer) = 0 default (array of τ) = nil O último caso justifica a existência do valor nil. B.2 Operadores A semântica dos operadores unários é dada por uma função. que associa a todo o operador uop (recorde-se, este operador é pura sintaxe, é um nome) uma função parcial uop dos valores para os valores. Por exemplo, a semântica do operador de negação é dada definindo como sendo a função que a toda a constante inteira n associa a contante inteira n normalizada no intervalo É importante notar que a função não está definida para outros valores do que os valores inteiros : não se pode aplicar esta função sobre valores booleanos, nem a um endereço, nem ao valor nil. A semântica de um programa que aplicaria o operador da negação sobre um vector, por exemplo, está então sem definição. Um tal programa é felizmente excluído pelo sistema de tipos do Mini-Pascal, visto que o tipo inteiro é incompatível com o tipo array of τ. De forma semelhante, a semântica de operadores binários é dada por uma função. que a todo o operador bop associa uma função binária parcial uop dos pares de valores para os valores. A definição exacta de cada um dos operadores é deixada em exercício (por este não oferecer dificuldades particulares). B.3 Juízos O conteúdo das variáveis globais é dada por um ambiente G que associa às variáveis os valores que lhes correspondem. De igual forma, o conteúdo das variáveis locais é dado por um ambiente E. Finalmente o heap H associa aos endereços sequências finitas de valores. 7
8 A semântica de Mini-Pascal é definida por juízos. A avaliação de uma expressão, de uma condição, de uma instrução pode modificar as variáveis globais, as variáveis locais, assim como a heap. Os juízos que descrevem a avaliação mencionam assim o estado inicial G, H, E e o estado resultante G, H, E. No caso das expressões e das condições, estes juízos mencionam também um valor, que representa o resultado da avaliação. Os juízos são assim da forma G, H, E/e G, H, E /v G, H, E/c G, H, E /b G, H, E/i G, H, E O primeiro caso destes juízo lê-se : no estado descrito por G, H, E, a avaliação da expressão e conduz ao estado descrito por G, H, E e produz o valor v. O segundo e o terceiro caso lêem-se de forma semelhante. Damo-nos a liberdade de escrever S para representar G, H, E. Este estilo de semântica, como vismos nas aulas, é designada de semântica operacional de passos grandes (big-step). É assim designada porque estes juízos ligam directamente as expressões e os seus resultados sem contemplar os eventuais passos intermédios do calculo inerente. A semântica das expressões é dada na figura 1. esta contém um conjunto de regras que definam o juízo G, H, E/e G, H, E /v. Da mesma forma, os juízos que descrevem das condições e das instruções estão definidos nas figuras 2 e 3. Na forma implícita de abuso de notação, todas as regras estão implicitamente parametrizadas por uma série de definições de funções e procedimentos que são consultadas pelas duas regras que descrevem a chamada de funções e a chamada de procedimentos definidos pelo utilizador. Estas definições de funções e de procedimentos estão definidas aquando a exploração de um programa p particular. A semântica de um programa p particular é definida por um juízo da forma p Este juízo p lê-se o programa p executa-se sem erro e termina. A sua definição é dada na figura 4. 8
9 Figura 1: Figura 2: 9
10 Figura 3: Figura 4: 10
Trabalho de Linguagens Formais e Compilação
Trabalho de Linguagens Formais e Compilação Desenho de uma linguagem simples e do seu compilador para MIPS. (cod. 5387) Departamento de Informática Universidade da Beira Interior Ano lectivo 2012/2013
Leia maisTÉCNICO DE INFORMÁTICA - SISTEMAS
782 - Programação em C/C++ - estrutura básica e conceitos fundamentais Linguagens de programação Linguagem de programação são conjuntos de palavras formais, utilizadas na escrita de programas, para enunciar
Leia maisCurso Profissional de Gestão e Programação de Sistemas Informáticos. Programação e Sistemas de Informação. Módulo 1. 3ª 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 3ª Parte Prof. Sandra Pais Soares Fundamentos de Programação 1. Palavras Reservadas 2.
Leia maisPROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@gmail.com
Leia maisConceitos básicos de programação
Constantes class Exemplo { static void Main() { float fahr, celsius; int lower, upper, step; lower = 0; /* limite inferior da tabela de temperaturas */ upper = 300; /* limite superior */ step = 20; /*
Leia mais4. Constantes. Constantes pré-definidas
4. Constantes Constantes pré-definidas O PHP possui algumas constantes pré-definidas, indicando a versão do PHP, o Sistema Operacional do servidor, o arquivo em execução, e diversas outras informações.
Leia maisEXPRESSÕES BOOLEANAS. Ex: boolean b = false; // declara uma variável do tipo boolean e atribui false
Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 4 EXPRESSÕES BOOLEANAS O tipo primitivo boolean É um tipo de dados primitivo em Java que possui
Leia maisGeração de Código para LALG
Geração de Código para LALG Ambiente de execução para LALG Máquina hipotética Repertório de instruções Prof. Thiago A. S. Pardo 1 Geração de código para LALG Código-alvo será um código de montagem Portanto,
Leia maisProgramação Introdução
PROGRAMAÇÃO Programação Introdução Prof. Dr. Adriano Mauro Cansian 1 Introdução Para armazenar um algoritmo na memória de um computador e para que ele possa, em seguida, comandar as operações a serem executadas,
Leia maisAulas Anteriores. Detalhes da linguagem de programação
Aulas Anteriores Detalhes da linguagem de programação Elementos básicos (identificadores, constantes, símbolos gráficos) Estrutura básica de um programa (cabeçalho, parte declarativa, parte de execução)
Leia maisCapítulo 7. Expressões e Sentenças de Atribuição
Capítulo 7 Expressões e Sentenças de Atribuição Introdução Expressões são os meios fundamentais de especificar computações em uma linguagem de programação Para entender a avaliação de expressões, é necessário
Leia maisParadigmas de Linguagens
Paradigmas de Linguagens Aula 2: Tipos de dados Professora Sheila Cáceres Tipos de dados Dados são a matéria prima da computação junto com os programas. LPs precisam manipular dados. LPS utilizam os conceitos
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 maisSintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida)
Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida) Não-terminais são nomes mnemônicos colocados entre parênteses angulares. Vocabulário terminal formado por
Leia maisComputação e Programação
Computação e Programação MEMec, LEAN - º Semestre 205-206 Expressões Relacionais Estruturas de Selecção Simples Genéricas Aula Teórica 5 D.E.M. Área Científica de Controlo Automação e Informática Industrial
Leia maisTeoria da Computação e Algoritmos. Introdução à Linguagem Pascal. ALGORITMO <Nome do algoritmo>; <definições>; INÍCIO <Comandos>; FIM.
Teoria da Computação e Algoritmos Introdução à Linguagem Pascal 1 Estrutura de um programa INÍCIO FIM. PROGRAM END.
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 maisI1, I2 e In são instruções simples ou estruturadas da linguagem Pascal.
Capítulo 4 TESTES, ESCOLHAS E MALHAS DE REPETIÇÃO 1. INTRODUÇÃO Em muitos exemplos e exercícios realizados nos capítulos anteriores, não foram raras as vezes em que fizemos uso de elementos disponíveis
Leia maisEstruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.
1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras
Leia maisJavaScript (Elementos de Programação e Programação Básica)
Linguagem de Programação para Web JavaScript (Elementos de Programação e Programação Básica) Prof. Mauro Lopes 1 Objetivos Iniciaremos aqui o nosso estudo sobre a Linguagem de Programação JavaScript. Apresentaremos
Leia maisSintaxe da linguagem Java
Sintaxe da linguagem Java (PG) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Pedro Alexandre Pereira (palex@cc.isel.ipl.pt) Classe pública com método main Uma classe pública com nome A tem
Leia maisIntrodução à Computação
Conteúdo de hoje... Your Logo Here Prof. Lucas Amorim lucas@ic.ufal.br Tipos de dados Dados numéricos Inteiro Real Dados literais Dados lógicos Variáveis Introdução à Computação Tipos de dados, variáveis
Leia maisIntrodução à Computação
Your Logo Here Prof. Bruno de Jesus bruno.jesus@ic.ufal.br Introdução à Computação Tipos de dados, variáveis e expressões Conteúdo de hoje... Tipos de dados Dados numéricos Inteiro Real Dados literais
Leia maisModelo de plano analitico
Modelo de pla analitico Disciplina: Algoritmização e Programação Curso: Licenciatura em Ensi de Informática A/Semestre: 1º A/2º Semestre Carga horária: 4 h/semana; Docente: Célio Sengo Introdução A linguagem
Leia maisFACULDADE BATISTA MINEIRA - CST Banco de Dados Estruturas de Dados - Variáveis
Variável, na Matemática, é um termo utilizado em substituição de outro, normalmente, desconhecido. É utilizado para representar um número ou um conjunto. No contexto da programação de computadores, uma
Leia maisResolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema
ALGORITMIA Resolução De Problemas Em Informática Docente: Ana Paula Afonso 2000-2001 Resolução de Problemas 1. Analisar o problema Conhecer o bem o problema Descrever o problema: subdividir, detalhar 2.
Leia maisRevisões de PG. Programação Orientada por Objetos (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa
Revisões de PG (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Pedro Alexandre Pereira (palex@cc.isel.ipl.pt) Compilar e executar programas em Java Ficheiro fonte (Prog.java) Ficheiro
Leia maisA linguagem algorítmica utiliza o português para a definição dos comandos e tem as seguintes característica:
1 de 16 08/02/2012 14:08 Linguagem Linguagem Algorítmica A linguagem algorítmica utiliza o português para a definição dos comandos e tem as seguintes característica: 1 - A linguagem não á sensível á capitulaçã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 de Linguagens de Programação. Expressões e Instruções de Atribuição
Expressões e Instruções de Atribuição Cristiano Lehrer Introdução Expressões são o meio fundamental de especificar computações em uma linguagem de programação: Familiarização com as ordens de avaliação
Leia maisVariáveis primitivas e Controle de fluxo
Variáveis primitivas e Controle de fluxo Material baseado na apostila FJ-11: Java e Orientação a Objetos do curso Caelum, Ensino e Inovação, disponível para download em http://www.caelum.com.br/apostilas/
Leia maisLinguagem Computacional
Informática II Linguagem Computacional Algoritmos e Programação Parte 2 Prof. Dr. Adriano Cansian Prof. Dr. Leandro Alves Neves 1 Sumário Tipos de Dados Variáveis Modelo esquemático Características e Regras
Leia maisAula Teórica 8. Preparado por eng.tatiana Kovalenko
Aula Teórica 8 Tema 8. Tipos de Dados básicos Ø Representação de números inteiros Ø Representação de números decimais Ø Representação de caracteres Ø Representação de valores lógicos Ø Expressões Ø Classe
Leia maisLinguagem Pascal. Prof. Sérgio Rodrigues. É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa;
Linguagem Pascal Prof. Sérgio Rodrigues Introdução Algoritmo É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa; Programa é a formalização de um algoritmo
Leia maisProgramação Orientada a Objetos
Programação Orientada a Objetos Professor: Diego Oliveira Conteúdo 05: Linguagem Java Conteúdo da Aula Linguagem Java Tipos Primitivos Operadores Aritiméticos Operadores Lógicos Precedência de Operadores
Leia maisProgramação de Computadores II
Programação de Computadores II 1. Programação Básica 2019.1 Slides adaptados do material de Karina Mochetti Problema, Algoritmo, Programa Um programa de computador é a implementação de um algoritmo para
Leia maisRevisão da Linguagem C Prof. Evandro L. L. Rodrigues
SEL0433 Aplicação de Microprocessadores I Revisão da Linguagem C Prof. Evandro L. L. Rodrigues Estrutura de um programa C Diretivas de pré processamento Declaração de variáveis globais Declaração de protótipos
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 maisLinguagem Pascal. Prof. Jonatas Bastos Site:
Linguagem Pascal Prof. Jonatas Bastos Email: jonatasfbastos@gmail.com Site: http://jonatasfbastos.wordpress.com/ 1 Linguagem Pascal Foi desenvolvida pelo prof. Niklaus Wirth como uma linguagem simples
Leia maisExpressões e sentença de atribuição
Expressões e sentença de atribuição Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Leia maisAlgoritmos e Técnicas de Programação Introdução Givanaldo Rocha de Souza
Algoritmos e Técnicas de Programação Introdução Givanaldo Rocha de Souza givanaldo.rocha@ifrn.edu.br http://docente.ifrn.edu.br/givanaldorocha Conceitos Lógica de Programação técnica de encadear pensamentos
Leia maisLição 4 Fundamentos da programação
Lição 4 Fundamentos da programação Introdução à Programação I 1 Objetivos Ao final desta lição, o estudante será capaz de: Identificar as partes básicas de um programa em Java Reconhecer as diferenças
Leia maisGeração de Código para LALG
Geração de Código para LALG Ambiente de execução para LALG Máquina hipotética Repertório de instruções Prof. Thiago A. S. Pardo 1 Geração de código para LALG Código-alvo será um código de montagem Portanto,
Leia maisAnálise Semântica e Representação Intermédia
Análise Semântica e Representação Intermédia Compiladores, Aula Nº 22 João M. P. Cardoso 1 Representação do fluxo de controlo Nós de enunciados Nó if Árvore de expressão para a condição Nó para o corpo
Leia maisRevisão C++ - Parte 1
Revisão C++ - Parte 1 Prof. Gustavo Leitão Campus Natal Central Disciplina Programação para Ambiente de Redes 5/3/2010 Objetivo da Aula 5/3/2010 5/3/2010 OBJETIVO DA AULA Revisar os principais comandos
Leia maisSEBENTA INTRODUÇÃO Á ALGORITMIA
SEBENTA INTRODUÇÃO Á ALGORITMIA O desenvolvimento de programas para computador está sempre baseado na tarefa de programar um computador para seja resolvido um problema ou executada uma função e assim dar
Leia maisPROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S
PROGRAMAÇÃO I VA R I Á V E I S, C O N S TA N T E S, O P E R A D O R E S E N T R A DA E S A Í DA D E DA D O S Variáveis 2 Variáveis são locais onde são armazenados os valores na memória. Toda variável é
Leia maisPascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string
Pascal -Cabeçalho do programa Áreas do programa -Área de declarações -Corpo do programa - label - const - type - var - procedure - function - integer - real - byte - boolean - char - string Program
Leia maisPLANIFICAÇÃO ANUAL. 1. Introdução à Programação e Algoritmia. Tempos letivos previstos (45) Período escolar
PLANIFICAÇÃO ANUAL DEPARTAMENTO: MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS ÁREA DISCIPLINAR: 550 - INFORMÁTICA DISCIPLINA: Programação e Sistemas de Informação CURSO PROFISSIONAL: Téc. de Gestão e Programação
Leia maisParadigmas de Linguagem de Programação. Paradigma Imperativo
Paradigmas de Linguagem de Programação Paradigma Imperativo Paradigma Imperativo Imperare Comandar É o mais antigo de todos; Baseado no modo de funcionamento do computador; São também chamadas de procedurais;
Leia maisALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br
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 maisIntrodução à programação em PASCAL. Aula de 22/10/2001. Nota: Conjunto de slides baseados nas transparências utilizadas em PEDA em anos anteriores
Introdução à programação em PASCAL Aula de 22/10/2001 Nota: Conjunto de slides baseados nas transparências utilizadas em PEDA em anos anteriores Conteúdo Conceito de linguagem de programação O processo
Leia maisPrimeiros programas.
Primeiros programas. David Déharbe 1 1 Objetivos da aula Revisar as atividades "edição", "compilação", ("correção" e) "execução". Revisar os primeiros elementos de linguagem C já vistos. Aprender a escrever
Leia mais1.2 OPERAÇÕES BÁSICAS EM ALGORITMOS E PROGRAMAS 18
ÍNDICE MÓDULO 1 INTRODUÇÃO À ALGORITMIA 11 1.1 PROGRAMAS E ALGORITMOS 12 Fases da programação 12 Algoritmos e algoritmia 13 Algoritmos em linguagem informal, pseudocódigo e fluxogramas 14 Símbolos utilizados
Leia maisLinguagens de Programação. Marco A L Barbosa
Expressões e sentença de atribuição 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 maisIntrodução ao Pascal. Computação I. Níveis de Linguagens de Programação. Níveis de Linguagens de Programação. Como um Programa é Executado?
Computação I Introdução ao Pascal Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel Linguagens de Programação DEL-Poli/UFRJ Níveis de Linguagens de Programação Linguagens declarativas Linguagens
Leia maisComputação I. Prof. Miguel Elias Mitre Campista.
Computação I Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel Linguagens de Programação DEL-Poli/UFRJ Introdução ao Pascal Níveis de Linguagens de Programação Linguagens declarativas Linguagens
Leia maisMétodos para a construção de algoritmo
Métodos para a construção de algoritmo Compreender o problema Identificar os dados de entrada e objetos desse cenário-problema Definir o processamento Identificar/definir os dados de saída Construir o
Leia maisIntrodução. Lógica e Algoritmo. Lógica e Algoritmo. Lógica e Algoritmo. Lógica e Algoritmo
Introdução Lógica e programação Aula 02 Introdução à Programação Pascal Formalização de algoritmos na Exercícios Sky Informática Ltda. 1 2 Algoritmo: É uma maneira formal de expressar o raciocínio. O grau
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 maisLinguagem de programação: Pascal
Aula 04 Linguagem de programação: Pascal Prof. Tecgº Flávio Murilo 26/03/2013 1 Pascal Introdução Pascal é uma linguagem de programação estruturada, criada em 1970 pelo suíço Niklaus Wirth, dando este
Leia maisExpressões e Instruções de Atribuição. George Darmiton da Cunha Cavalcanti
Expressões e Instruções de Atribuição George Darmiton da Cunha Cavalcanti (gdcc@cin.ufpe.br) Tópicos Introdução Expressões Aritméticas Operadores Sobrecarregados Conversões de Tipo Expressões Relacionais
Leia mais2.2.5 EXPRESSÕES - Regras para o cálculo de valores
Métodos de Programação I Departamento de Matemática, FCTUC 30 2.2.5 EXPRESSÕES - Regras para o cálculo de valores As expressões fornecidas ao computador, quer tenham variáveis, constantes ou apenas literais,
Leia maisAlgoritmos: Conceitos Fundamentais. Slides de autoria de Rosely Sanches e Simone Senger de Souza
Algoritmos: Conceitos Fundamentais Slides de autoria de Rosely Sanches e Simone Senger de Souza DADOS E EXPRESSÕES Uso da Informação Computador manipula informações contidas em sua memória. Classificadas
Leia maisUniversidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores
Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores 2013-2 Compilador para a Linguagem Cafezinho Especificação dos trabalhos: T2 (Geração da Representação Intermediária e Análise
Leia maisIntrodução. Universidade Federal de Uberlândia. Programação Orientada a Objetos. Prof. Fabiano Dorça
Introdução Universidade Federal de Uberlândia Programação Orientada a Objetos Prof. Fabiano Dorça Introdução Definições iniciais: classe, objeto, métodos, atributos. Introdução Ao escrever um programa
Leia maisAnálise Semântica e Tratamento de Erros Dependentes de Contexto
Análise Semântica e Tratamento de Erros Dependentes de Contexto O componente Semântico de uma LP Tarefas da Análise Semântica Implementação da Tabelas de Símbolos Ações Semânticas em Compiladores Dirigidos
Leia maisPuca Huachi Vaz Penna
Aula 3 C++: variáveis e expressões aritméticas 2017/1 BCC201 Introdução à Computação Turmas 61, 62, 63, 64, 65 e 66, 32 e 33 Puca Huachi Vaz Penna Departamento de Computação Universidade Federal de Ouro
Leia maisAPONTAMENTOS DE PASCAL
APONTAMENTOS DE PASCAL PROGRAMAÇÃO DE COMPUTADORES 1º ANO DA LICENCIATURA EM ENGENHARIA MECÂNICA 2000 Luisa Costa Sousa 1 ÍNDICE: 1 INTRODUÇÃO 3 1.1 A estrutura do algoritmo e do respectivo programa 4
Leia maisProgramação com Acesso a BD. Programação com OO Acesso em Java
Programação com OO Acesso em Java a BD Curso: Técnico em Informática Campus: Ipanguaçu José Maria Monteiro Pontifícia Universidade Católica do Rio de Janeiro PUC-Rio Departamento Clayton Maciel de Informática
Leia maisClasses e Objetos. Sintaxe de classe em Java
Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados
Leia maisCIT Aula 02 Variáveis e Estruturas de desvio condicional. Autor: Max Rodrigues Marques Carga Horária: 2 h 22/07/15 1
CIT 2015.2 Aula 02 Variáveis e Estruturas de desvio condicional Autor: Max Rodrigues Marques Carga Horária: 2 h 22/07/15 1 Variáveis Uma variável nada mais é que um nome que damos a uma determinada posição
Leia maisProgramação de Computadores I. Professor Ilaim Costa Junior
Programação de Computadores I Professor Ilaim Costa Junior ilaim@ic.uff.br Roteiro da Aula de Hoje ariável Tipos básicos Declaração Expressões Aritméticas Lógicas Atribuição 2 ariável Representa uma região
Leia maisProgramação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO
Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Introdução Criada em 1972, por Dennis Ritchie; Centro de Pesquisas da Bell Laboratories; Para utilização no S.O. UNIX; C é uma linguagem
Leia maisProgramação Orientada a Objetos II Java Segunda aula. Prof. Rogério Albuquerque de Almeida
Programação Orientada a Objetos II Java Segunda aula 1 Programação Orientada a Objeto II Tipos de Dados e Variáveis Operadores Operadores aritméticos Operadores relacionais Operadores lógicos Operadores
Leia maisEstruturas condicionais
Estruturas condicionais David Déharbe 1 1 Objetivos da aula Revisar os primeiros elementos de linguagem C já vistos. Condicionais simples Condicionais compostas Operadores lógicos 2 2 Objetivos da aula
Leia maisPLANO DE ENSINO. Súmula:
INF01211 NOME DA DISCIPLINA: Algoritmos e Programação Semestre: 2009/2 Carga horária: 4 h Créditos: 4 Professor: Luis de França G. Ferreira Súmula: Formulação de problemas, construção de algoritmos e implementação
Leia maisIntrodução à Linguagem C++
Introdução à Linguagem C++ C++: Definição C++ C A Linguagem de Programação C++ pode ser definida como uma extensão da Linguagem C; Todo código de programação em Linguagem C pode a priori ser compilado
Leia maisLaboratório 4 Correcção de erros sintácticos e tipos de dados primitivos
Instituto Politécnico de Setúbal Escola Superior de Tecnologia Departamento de Sistemas e Informática Laboratório 4 Correcção de erros sintácticos e tipos de dados primitivos Disciplina de Introdução à
Leia maisLinguagens de Programação
Linguagens de Programação de Linguagens de Programação Bruno Lopes Bruno Lopes Linguagens de Programação 1 / 11 Propriedades desejáveis Legibilidade: A leitura do programa é facilmente compreendida? Redigibilidade:
Leia maisFolha 4.2 Análise sintática ascendente
Folha 4.2 Análise sintática ascendente 1. Considere a gramática G = (S, T, P, S) que representa o cabeçalho de métodos na linguagem Java (sem os modificadores de acesso), onde T = {S, Type, Param, Exception,
Leia maisCompiladores. Simão Melo de Sousa. Computer Science Department University of Beira Interior, Portugal. S. Melo de Sousa Compiladores
Compiladores Verificação e inferência dos Tipos Simão Melo de Sousa Computer Science Department University of Beira Interior, Portugal Problema Permitir evitar declarar o tipo das variáveis, das assinaturas
Leia maisAlgoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi
Algoritmos Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi Conceitos Linhas de Código de um Algoritmo ou Programa escrita do programa linha a linha, ou seja, a sintaxe do programa, podendo-se
Leia maisAnálise Semântica e Representação Intermédia
Análise Semântica e Representação Intermédia Compiladores Cristina C. Vieira 1 Representação do fluxo de controlo Nós de enunciados Nó if Árvore de expressão para a condição Nó para o corpo do then e nó
Leia maisProgramação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação
Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Programação em C Variáveis e Expressões DCA0800 Algoritmos e Lógica de Programação Heitor Medeiros Florencio
Leia maisPlanificação Anual da disciplina de Programação e Sistemas de Informação 10º 1PI
Res e M ó d u l o 1 - I n t r o d u ç ã o à P r o g r a m a ç ã o e A l g o r i t m i a 1. Introdução à Lógica de Programação 1.1. Lógica 1.2 Sequência Lógica 1.3 Instruções 1.4 Algoritmos 2. Desenvolvimento
Leia maisAula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU
Aula 5 Oficina de Programação Introdução ao C Profa. Elaine Faria UFU - 2017 Linguagem de Programação Para que o computador consiga ler um programa e entender o que fazer, este programa deve ser escrito
Leia maisLinguagem de Programação I Prof. Tiago Eugenio de Melo.
Linguagem de Programação I Prof. Tiago Eugenio de Melo tmelo@uea.edu.br www.tiagodemelo.info 1 Sumário Introdução Conceitos preliminares Introdução Variáveis Comandos Condicionais 2 Por que aprender a
Leia mais= = = = = = = = = = = = = = = =
Página 1 de 7 A Linguagem PASCAL = = = = = = = = = = = = = = = = 1) ALFABETO: são os símbolos (ié, caracteres ) permitidos na linguagem. São as letras (maiúsculas e minúsculas), os algarismos (ou dígitos)
Leia maisAlgoritmos e Modelação Computacional. Paulo Mateus MEBiom LMAC 2018
Algoritmos e Modelação Computacional Paulo Mateus MEBiom LMAC 2018 Objetivos Edição e compilação de programas Tipos e expressões Declaração de variáveis Atribuição, composição sequencial, iterativa e alternativa
Leia maisVariáveis. Prof. Alberto Costa Neto Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe
Variáveis alberto@ufs.br de Programação Departamento de Computação Universidade Federal de Sergipe Variáveis Uma vez que o programador tenha entendido o uso de variáveis, ele entendeu a essência da programação.
Leia maisIntrodução à Ciência da Computação
Introdução à Ciência da Computação Variáveis Conceitos Básicos Variáveis x Constantes a = x + 5 a, x e 5 são variáveis ou constantes? Variáveis As variáveis são recipientes de valores É um espaço reservado
Leia maisTexto retirado e adaptado da apostila Curso de Linguagem Pascal, disponível no site (autor: desconhecido).
Texto retirado e adaptado da apostila Curso de Linguagem Pascal, disponível no site http://www.portaldaprogramacao.com (autor: desconhecido). Leitura indicada: Notas de Aula de Algoritmos e Programação
Leia maisParadigmas de Programação
Paradigmas de Programação Fabrício Olivetti de França 14 de Junho de 2018 1 λ-cálculo 2 Computabilidade Computabilidade é uma área de estudo central da Ciência da Computação. Ela estuda a possibilidade
Leia mais1 Lógica de primeira ordem
1 Lógica de primeira ordem 1.1 Sintaxe Para definir uma linguagem de primeira ordem é necessário dispor de um alfabeto. Este alfabeto introduz os símbolos à custa dos quais são construídos os termos e
Leia maisAlgoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2
Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas Aula Tópico 2 1 Problema 3 Exibir o maior número inteiro que pode ser representado no computador. 2 Qual o maior número inteiro? Para o compilador
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem
Leia maisProgramação Estruturada e Orientada a Objetos
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Programação Estruturada e Orientada a Objetos Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br
Leia mais