Descrição da Linguagem Pascal Jr.

Documentos relacionados
Compiladores. Análise Léxica

Linguagem Pascal. Prof. Sérgio Rodrigues. É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa;

Compiladores. Análise Léxica

Compiladores. Bruno Lopes. Bruno Lopes Compiladores 1 / 31. Instituto de C

Teoria da Computação e Algoritmos. Introdução à Linguagem Pascal. ALGORITMO <Nome do algoritmo>; <definições>; INÍCIO <Comandos>; FIM.

Compiladores Aula 3. Celso Olivete Júnior.

Elementos básicos das linguagens de programação

Procedimento. Função. Selecção Condicional - a instrução if-then-else. expressão if lógica then instrução else instrução

Compiladores 02 Analise léxica

Linguagem Pascal. Prof. Antonio Almeida de Barros Junior

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Linguagem de Programação Pascal - Introdução

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Identificadores Nome de variáveis, constantes, métodos, etc...

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Linguagem de programação: Pascal

Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida)

Programação de Computadores III

2.2.5 EXPRESSÕES - Regras para o cálculo de valores

Programação de Computadores III

Linguagens de Programação

1.1 o que é um algoritmo... 6

Organização de programas em Pascal

Função, interação com o compilador Especificação e reconhecimento de tokens Implementação Tratamento de erros. Prof. Thiago A. S.

Programação de Computadores:

IV.2 Aspectos Léxicos Convencionais

Compiladores Aula 2. Celso Olivete Júnior.

Tokens, Padroes e Lexemas

Estrutura geral de um compilador programa-fonte

Compilação da linguagem Panda

Curso básico de JavaScript Aula 2

Lógica de Programação I. Gilson de Souza Carvalho

Compiladores. Conceitos Básicos

Analisador Léxico parte II

Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.

LISTA DE EXERCÍCIOS 15 ( Matrizes (7Cs))

Estruturas de Repetição e String. Vanessa Braganholo

INE5421 LINGUAGENS FORMAIS E COMPILADORES

Compiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA)

Introdução ao Pascal. Computação I. Níveis de Linguagens de Programação. Níveis de Linguagens de Programação. Como um Programa é Executado?

Sintaxe e Semântica. George Darmiton da Cunha Cavalcanti.

Aulas Anteriores. Detalhes da linguagem de programação

Notas de Aula de Algoritmos e Programação de Computadores

Métodos de Programação I Ana Maria de Almeida

Análise Léxica II. Eduardo Ferreira dos Santos. Setembro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 30

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

Introdução à Programação

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

Introdução à Linguagem Lua Variáveis e Expressões

Linguagem C. André Tavares da Silva.

Folha 3 - Análise léxica

CMP Algoritmos Algoritmos Parte I. Professor Vicente Paulo de Camargo

LÓGICA DE PROGRAMAÇÃO. Algoritmos Computacionais. Sérgio Carlos Portari Júnior

Programação Orientada a Objetos II Java Segunda aula. Prof. Rogério Albuquerque de Almeida

ALGORITMOS AULA 2. Profª Amanda Gondim

APÊNDICE A - FUNDAMENTOS DA LINGUAGEM DE PROGRAMAÇÃO PASCAL.

Tratamento dos Erros de Sintaxe. Adriano Maranhão

Algoritmos Fundamento e Prática

Linguagem C Entrada/Saída (console)

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

VARIÁVEIS NUMÉRICAS : integer - Números inteiros entre e real - Números reais de 11 algarismos significativos.

ALGORITMOS VARIÁVEIS E OPERADORES. Prof. Angelo Augusto Frozza, M.Sc.

Fundamentos da programação Parte - 1

Papel do analisador léxico: ler o arquivo fonte em busca de unidades significativas (os tokens) instanciadas por lexemas ou átomos.

FERRAMENTAS BÁSICAS DA PROGRAMAÇÃO

Modularidade. Objetivos: Introduzir noções básicas de modularidade. Funções e procedimentos

DESENVOLVIMENTO DO COMPILADOR PARA A LINGUAGEM SIMPLE

Introdução à Programação

Linguagem Computacional. Estruturas de Controle: Estruturas de Repetição. Prof. Dr. Adriano Cansian Prof. Dr. Leandro Alves Neves

Linguagens de Programação Aula 3

Compiladores. Bruno Lopes. Bruno Lopes Compiladores 1 / 30. Instituto de C

Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

INFORMÁTICA APLICADA AULA 03 ALGORITMOS

Programação de Computadores II

Algoritmos e Programação

Transcrição:

Descrição da Linguagem Pascal Jr. Características gerais PascalJr possui convenções de tipos igual a linguagem Pascal PascalJr suporta definições de funções Com passagem de parâmetros por valor e por referência Um programa correto em PascalJr é também um programa correto em Pascal Excetuando-se pelo tipo alfa Os comandos de PascalJr são: atribuição, comando composto begin..end, if-then, if-thenelse, while-do, do-while, for, repeat-until, chamada de procedimentos, chamada de funções, etc. As rotinas de E/S (múltiplos argumentos) em PascalJr são: read, readln: com apenas 1 argumento write, writeln: com 2 argumentos, sendo uma string e uma variável, separados por vírgula CCComp - DCE - UESB

Descrição da Linguagem Pascal Jr. Características gerais As constantes lógicas, assim como em Pascal, são true e false Palavras chaves são palavras reservadas em PascalJr Um comentário pode ser colocado em qualquer lugar onde um delimitador for permitido Compatibilidade de tipos é como em Pascal A gramática de PascalJr é a mesma gramática da linguagem Pascal Porém reduzida, uma vez que PascalJr não possui muitas das construções que são suportadas por Pascal A semântica dos comandos de PascalJr é equivalente à semântica dos respectivos comandos em Pascal PascalJr somente possui constantes numéricas decimais, não suportando constantes em octal e hexadecimal CCComp - DCE - UESB

Descrição da Linguagem Pascal Jr. Características gerais Para simplicidade de implementação, identificadores em PascalJr necessitam diferir nos primeiros 15 caracteres. Os caracteres excedentes poderão ser ignorados pelo scanner PascalJr não possui nenhum comando de pré-processador CCComp - DCE - UESB

CCComp - DCE - UESB Definições para Pascal Jr. O tamanho de cada linha (buffer) será de 80 caracteres O tamanho máximo de uma string será uma linha O tamanho máximo das tokens será de 15 caracteres Os erros poderão ser reportados na mesma hora em que são encontrados ou bem mais tarde Ex.: Falta de um end O diagrama de estados para o Pascal Jr. possui mais ou menos 30 estados e poucas colunas

CCComp - DCE - UESB Programando o SCANNER O objetivo do SCANNER é identificar as tokens A idéia básica de programação do SCANNER é construir um autômato finito Para isto serão necessárias três etapas Construir um diagrama de estados para cada token Construir uma tabela de próximo estado Programar o reconhecimento da tabela de próximo estado O autômato considera um apontador movendo-se através dos estados A partir de um estado inicial até um estado de aceitação ou erro

CCComp - DCE - UESB Programando o SCANNER Para cada token o SCANNER deverá gerar as seguintes informações (veja a tabela exemplo) tipo valor (conjunto de símbolos) tamanho Os operadores devem ser agrupados em 3 classes: ADDOP (+, -, OR) MULTOP (*, /, DIV, MOD, AND) RELOP (=, <, >, <=, =>, <>)

Projeto Final do SCANNER CCComp - DCE - UESB SCANNER Piloto Pede ao scanner uma token por vez GetToken Classifica token (palavra chave ou nome do usuário) ADDOP, MULTOP, RELOP Retorna token: tipo, valor, tamanho GetBSU Implementa a tabela de próximo estado GetChar Obtém caracteres do buffer. Responsável pela devolução de caracteres não utilizados GetFile Lê e imprime linhas do arquivo fonte. Cada linha é retida em um buffer para ser analisada

CCComp - DCE - UESB Tratamento de Erros na Fase 1 Erros léxicos Erros na formação das tokens Saída na tela Linha 1: if (a $ 10) then ^ Erro na linha 1: SIMBOLO NAO PERTENCE A GRAMATICA! Exemplo de linha que não contém erros Exemplo: then )10 < a( if