Você está na página 1de 21

#===============================================================# | | | |

| | | | | | | | | | | | | verso 5.1.3 | #===============================================================# # Bem vindo ao fascinante mundo da linguagem Pascal! # #===============================================================# #===============================================================# # Organizao desse documento # #===============================================================# | | | 1. Apresentao | | 2. Consideraes de uso | | 3. Histrico do compilador | | 4. Subconjunto da linguagem Pascal implementado | | 5. Download | | 6. Procedimento de instalao | | 7. Agradecimentos | | 8. Comentrios, crticas e sugestes | | | #===============================================================# #===============================================================# # 1.Apresentao # #===============================================================# | | | A linguagem Pascal foi desenvolvida pelo professor | | | Ni laus Wirth no ano de 1972, em Genebra, Sua. O | nome da linguagem, Pascal, foi uma homenagem ao | | filsofo e matemtico Blaise Pascal ( 1623-1662 ), | | inventor da primeira calculadora mecnica. O desejo | | de Wirth ao criar a linguagem Pascal era dispor, | | para o ensino de programao, de nova linguagem que | | fosse simples, coerente e capaz de incentivar o | | desenvolvimento de programas claros e legveis, | | favorecendo ainda a utilizao de boas tcnicas de | | programao. | | | | A linguagem Pascal se tornou amplamente conhecida e | | utilizada com o lanamento da mundialmente famosa | | srie de compiladores Turbo Pascal pela Borland, em | | 1985, devido a uma combinao de simplicidade e | | poder. | | | | O compilador Pascalzim, desenvolvido no Departamento de | | Cincias da Computao da Universidade de Braslia, | | fruto de muitos anos de pesquisa e trabalho na rea de | | algoritmos, tradutores e linguagens de programao. Foi |

| adotado como ferramenta de apoio ao ensino e | | aprendizagem da linguagem Pascal pelos alunos | | do curso de Introduo Cincia da Computao, onde | | comeou a ser utilizado no primeiro semestre de 2000. | | | | No segundo semestre de 2001, e nos semestres que se | | seguiram, o compilador foi utilizado pelos meus alunos | | do Instituto de Educao Superior de Braslia (IESB) | | na disciplina "Algoritmos e Programao Estruturada". | | | | Desde ento o compilador vem sendo utilizado em diversas | | outras instituies de ensino brasileiras, e at mesmo | | em Portugal. | | | #===============================================================# #===============================================================# # 2.Consideraes de uso # #===============================================================# | | | O compilador Pascalzim foi concebido para fins | | educacionais e sua distribuio livre e gratuita. | | O compilador no pode, sob nenhuma circunstncia, ser | | comercializado. | | | | O compilador foi exaustivamente testado, mas ainda assim | | erros de implementao podem ser eventualmente | | encontrados. A correo destes ser efetuada to breve | | quanto sua descoberta, levando ao lanamento de verses | | mais atualizadas do compilador. | | | | O compilador implementa um subconjunto da linguagem | | Pascal e contm as estruturas de dados, funes e | | comandos mais utilizados por iniciantes no estudo | | dessa linguagem. O arquivo de ajuda que acompanha | | o produto especifica as instrues suportadas. | | | | Crticas e sugestes so bem vindas! | | | #===============================================================# #===============================================================# | 3.Histrico do compilador | #===============================================================# | | | O desenvolvimento do Pascalzim vem sendo feito de | | maneira gradativa, e cada nova verso disponibilizada | | traz consigo um novo conjunto de recursos e/ou | | estruturas da linguagem da linguagem Pascal. | | | | Abaixo exibido um breve resumo do esforo de | | desenvolvimento do compilador: | | | |---------------------------------------------------------------| |------VERSO 5.1.3 (12/10/2011) -------------------------------| |---------------------------------------------------------------| | |

| - Implementado o suporte ao tipo subgrupo. Declaraes | | como as seguintes so agora reconhecidos pelo | | compilador: | | type dias = (seg, ter, qua, qui, sex, sab, dom ) ; | | var letras : 'a' ..'z' ; | | duzia : 1 .. 12 ; | | folga : sex .. dom ; | | - Agora as dimenses de um vetor podem ter tipos mais | | elaborados, como nas declaraes a seguir. Esse recurso | | foi sugerido por Paulo Alfredo Mainieri Jr. Obrigado | | pela contribuio! ;) | | var a: array[-5 .. 5] of 1 .. 10 ; | | b: array['a' .. 'z'] of 1 .. 10 ; | | c: array[false .. true] of 1 .. 10 ; | | d: array[qua .. sex] of 1 .. 10 ; | | e: array[1+5 .. 3*3] of 1 .. 10 ; | | f: array[ 3+1 .. abs(-5) ] of 1 .. 10 ; | | - Corrigido um erro envolvendo a atribuio de vetores do | | do tipo string. | | - Corrigido um erro envolvendo a funo int. | | - A definio de tipos de dados foi toda reescrita e | | revisada. Agora o cdigo est muito mais confivel e | | claro nessa parte. ;) | | - A avaliao de expresses e funes pr-defindas foi | | toda reescrita e revisada. Agora o cdigo est muito | | mais confivel e claro nessa parte. ;) | | - Identificados e corrigidos alguns outros pequenos bugs. | | | |---------------------------------------------------------------| |------VERSO 5.1.2 (29/05/2011) -------------------------------| |---------------------------------------------------------------| | | | - Atendendo a diversos pedidos, o comando with foi | | implementado nessa verso. ;) | | - Funes agora podem retornar valores de um tipo que foi | | definido pelo usurio. At ento funes s podiam | | retornar valores dos tipos pr-definidos. | | - A anlise de tipos realizada pelo analisador semntico | | foi completamente reescrita. Inmeros problemas foram | | identificados e corrigidos, e agora possvel fazer | | atribuies de vetores e matrizes como as seguintes: | | var a, b : array[1..2, 1..4] of integer ; | | a := b ; a[2] := b[1] ; | | - Corrigido um erro no comando trunc, que em rarssimos | | casos gerava um arredondamento invlido. Reportado por | | Hudson Daniel Santana. Obrigado pela contribuio! ;) | | - Corrigido mais um erro no comando read com caracteres, | | que algumas vezes ainda ignorava o comando. Reportado | | por Rodrigo Bruno Kehdy. Obrigado pela contribuio! ;) | | - Corrigido um erro que acontecia quando se declarava uma | | varivel com o nome long. Reportado por Raphael Vidal | | Costa. Obrigado pela contribuio! ;) | | - Adicionado aos programas de exemplo o jogo invasores do | | espao. Esse programa foi desenvolvido por Joo Lucas | | Torres. Obrigado pela contribuio! ;) | | | |---------------------------------------------------------------| |------VERSO 5.1.1 (30/06/2010) -------------------------------| |---------------------------------------------------------------| | |

|---------------------------------------------------------------| |------VERSO 5.1.0 (21/06/2009) -------------------------------| |---------------------------------------------------------------| | | | - Atendendo a diversos pedidos, foi implementada a funo | | copy. A ltima solicitao veio de Davi Cavalcante. | | Obrigado pela contribuio! ;) | | - Corrigido um erro que impedia o comando continue de | | funcionar corretamente em loops do tipo for. | | - Corrigidos vrios erros envolvendo a manipulao de | | ponteiros. Esses bugs foram reportados pelo professor | | Paulo Ribeiro, de Portugal. Obrigado pela contribuio, | | professor! ;) | | - Corrigido um erro no comando read com strings. Nesse | | caso o compilador ignorava os caracteres que apareciam | | aps o primeiro espao em branco. Reportado pelo | | professor Eleandro Maschio. Obrigado pela contribuio, | | professor! ;) | | - Corrigido um erro no comando case, que acontecia em | | rarssimas situaes. Reportado por Thiago Ribas da | | Silva. Obrigado pela contribuio! ;) | | - Revisada a implementaao da janela de templates, por | | causa de um erro reportado por Lo Douglas Padilha. | | Obrigado pela contribuio! ;) | | - Implementadas as funes concat e pos. Sugesto do | | professor Marcelo Josu Telles, que ajudou tambm a | | validar essa nova verso antes do lanamento oficial. |

| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |

- Corrigido um erro no comando read com caracteres. O | compilador estava ignorando esse comando, devido s | otimizaes realizadas na verso anterior. Reportado | pelo professor Homero Picollo e seus alunos. Obrigado | pela contribuio, professor! ;) | - Corrigido um erro no comando delete. O tamanho da | cadeia produzida pelo comando algumas vezes estava com | o tamanho incorreto. Reportado por Cassio Henrique | Crestani de Oliveira. Obrigado pela contribuio! ;) | - Antes a funo pos aceitava somente strings como | parmetros. Agora ela aceita tambm caracteres. | Sugesto de Miguel Moreira, de Portugal. | Obrigado pela contribuio! ;) | - Corrigido mais um erro no comando read. Esse comando | antes funcionava como o realdn, esvaziando o buffer de | leitura. Reportado por Miguel Moreira, de Portugal. | Obrigado pela contribuio! ;) | - O compilador agora reconhece as constantes maxint e pi. | Mais uma sugesto de Miguel Moreira, de Portugal. | Obrigado pela contribuio! ;) | - Atendendo ao pedido de vrias pessoas, o arquivo de | ajuda do compilador foi migrado do formato hlp para o | mais recente formato chm. ;) | - Adicionado aos programas de exemplo uma versao do jogo | PONG. Esse programa foi desenvolvido por Mateus Riva, | Caio Augusto Faria, Denis Miura e Tobias Furtado. | Obrigado pela contribuio! ;) | | - Adicionado aos programas de exemplo o jogo Word ill, que simula um jogo de espaonave. Esse programa foi | desenvolvido por Marco Andr Dinis e Jos Luis Teixeira.| Obrigado pela contribuio! ;) | |

| Obrigado pela contribuio, professor! ;) | | - Agora possvel declarar variveis antes ou depois de | | funes e procedimentos. Embora essa sintaxe no siga o | | padro ANSI, ela aceita pelo Turbo Pascal. Sugesto | | de Francisco Grangeiro Diniz Jnior. Obrigado pela | | contribuio! ;) | | - Implementadas as funes frac e int, e tambm os | | comandos insert, delete e exit. | | - Grande parte do cdigo do analisador semntico foi | | reescrito, visando melhorar a manuteno do cdigo. | | - Vrias mensagens de erro foram revisadas e melhoradas. | | - Agora possvel selecionar mais de um arquivo na opcao | | de abrir arquivo. | | - Foi criada uma nova logomarca para o compilador. ;) | | - A interface grfica do compilador foi modernizada. ;) | | | |---------------------------------------------------------------| |------VERSO 5.0.3 (26/04/2009) -------------------------------| |---------------------------------------------------------------| | | | - A funo val estava retornando valores incorretos para | | o cdigo de erro. O correto seria retornar a posio | | onde o erro foi encontrado. A funo foi revista, e seu | | resultado comparado com os resultados do Delphi. Esse | | bug foi reportado por Diogo Dias. Obrigado por esse | | | importante feedbac ! ;) | | |---------------------------------------------------------------| |------VERSO 5.0.2 (13/04/2009) -------------------------------| |---------------------------------------------------------------| | | | - Foi necessrio fazer uma correo emergencial no | | compilador, porque alguns erros sintticos no estavam | | sendo reportados corretamente na verso 5.0.1, como por | | exemplo o ponto e vrgula antes do else. Esse bug foi | | reportado por Francisco Grangeiro Diniz Jnior. | | Obrigado pelo importante feedbac ! ;) | | | | - Adicionado no banco de templates os comandos write e | | read, que estavam faltando. | | | |---------------------------------------------------------------| |------VERSO 5.0.1 (14/03/2009) -------------------------------| |---------------------------------------------------------------| | | | - Depois de receber a solicitao de diversas pessoas, | | resolvi adicionar ao compilador a capacidade de ignorar | | a declarao uses. Assim, no mais necessrio | | comentar a linha de cdigo uses crt. | | | | - Atendendo a diversos pedidos, foi adicionada tambm a | | opo de personalizar a cor do editor de cdigo. | | | | - Adicionado no banco de templates vrios novos comandos | | e funes. Basta pressionar CTRL+Espao para conferir. | | Sugesto de Flaviano Gon Alves. :) | | | | - As variveis globais do programa no estavam sendo | | inicializadas com o valor zero. Esse problema foi | | reportado por Emmanuel O Monteiro. Obrigado pela |

| contribuio! :) | | | | - A funo LN agora verifica se o argumento informado | | diferente de zero. Esse problema foi reportado por | | Francisco Rodrigues Santos. Obrigado pela | | contribuio! :) | | | | - Adicionado o comando CASE no help. Esse problema foi | | reportado pelo Professor Licinio L. R. Branco. | | Obrigado pela contribuio! :) | | | | - Corrigido o comentrio do comando gotoxy no help. Esse | | problema foi reportado por William Xavier de Almeida. | | Obrigado pela contribuio! :) | | | | - Se o arquivo executvel estivesse em uso pelo sistema | | operacional o compilador no conseguir gerar um novo | | arquivo, e tambm no acusava nenhum erro. Esse | | problema foi reportado por Flaviano Gon Alves. | | Obrigado pela contribuio! :) | | | | - Alterado o nome dos novos arquivos de UntitledX para | | NovoX. Sugesto de Flaviano Gon Alves. :) | | | | - Adicionada uma restrio ao comando write, para impedir | | que uma varivel do tipo record seja exibida na tela ou | | escrita em arquivo. Isso estava gerando erro em tempo | | de execuo. Esse problema foi reportado por Vitor | | Afonso Pinto. Obrigado pela contribuio! :) | | | | - Realizada uma srie de outras pequenas otimizaes. | | | |---------------------------------------------------------------| |------VERSO 5.0 (02/04/2007) ---------------------------------| |---------------------------------------------------------------| | | | - Depois de vrios meses sem lanar uma nova verso do | | compilador, foi adicionado um recurso h muito tempo | | desejado por todos: a execuo passo a passo de | | programas! :) | | | | | | - Corrigido um erro envolvendo passagem de parmetros. | | Obrigado, Jefferson Chaves, por detectar e reportar | | esse bug! | | | | - Quando o usurio pressiona CTRL+PAGEUP o editor passa | | para o prximo editor. CTRL+PAGEDOWN volta para o | | editor anterior. Sugesto de Jnior Golalvez! | | | | | | - Corrigido uma srie de outros pequenos bugs | | | |---------------------------------------------------------------| |------VERSO 4.09 (30/01/2006) --------------------------------| |---------------------------------------------------------------| | | | - Corrigido uma srie de pequenos bugs | | | |---------------------------------------------------------------|

|------VERSO 4.08 (07/09/2005) --------------------------------| |---------------------------------------------------------------| | | | - Corrigido uma srie de pequenos bugs envolvendo | | vetores, registros e atribuies com tipos definidos. | | Obrigado, beta-testers! :) | | | | - Reescrito e revisado grande parte do cdigo, incluindo | | o analisador lxico, sinttico e semntico. | | | | - Agora, ao clicar no boto fechar, a janela preta no | | fecha. :) | | | | - Usando CTRL+C, pode-se parar a execuo do programa | | (til em loops infinitos) | | | | - Implementado o operador XOR (sim, no havia xor antes!) | | | | - Agora o compilador salva o estilo de editor | | selecionado, bem como o tamanho da fonte. | | | | - Adicionado aos programas de exemplo um interessante | | jogo de labirinto, desenvolvido por mim. ;) | | | | - Adicionado vrios outros exemplos. | | | |---------------------------------------------------------------| |------VERSO 4.07 (16/04/2004) --------------------------------| |---------------------------------------------------------------| | | | - Corrigidos alguns pequenos bugs no editor: | | => Revisado o pareamento Begin-End, que identificava | | incorretamente esses marcadores em "endereco" | | etc. | | => Desabilitado pareamento Begin-End em comentarios | | => Amenizado SRIO problema de lentido do editor | | para programas muito extensos. | | | | - Corrigido um SRIO problema com o comando 'val', | | quando chamado com variaveis do tipo char. | | | | - Corrigido um SRIO problema ao retornar strings em | | funes. | | | | - Corrigido um SRIO problema ao ler reais de arquivo. | | | | - Corrigido um SRIO problema ao ler vrias variveis | | de arquivo, em um mesmo comando READ. | | | | - Revisado os comandos para leitura de strings em | | arquivos. | | | | - Implementada as funes EOLN, KEYPRESSED e o comando | | STR | | | | - Sobrecarregada a funo UPCASE para receber cadeias | | | | - Agora CTRL+C no fecha mais a janela estilo DOS | | | | | - Adicionado o estilo de editor Dar Pascal

| | | - Corrigidos alguns outros pequenos bugs... | | | | - Mais uma vez, agradeo ao colega Leonardo Pignataro | | (beta-tester do Pzim) e aos alunos do curso | | de ICC do 2 semestre de 2003 na Unb pela importante | | ajuda na deteco destes erros e sugestes. ;) | | | | - Corrigido um bug na passagem de parametros de tipo | | definido para funcoes. Reportado por Paulo Marcos | | Figueiredo de Andrade, e tambm pelo pessoal da UnB. | | Obrigado! ;) | | | | - Adicionado mais alguns programas de exemplo, enviados | | por Rodrigo Gar Pissarro (beta-tester do Pzim). ;) | | | | - Adicionado aos programas de exemplo um belssimo jogo | | estilo tetris, desenvolvido por Leonardo Pignataro | | (beta-tester do Pzim). ;) | | | |---------------------------------------------------------------| |------VERSO 4.06 (25/10/2003) --------------------------------| |---------------------------------------------------------------| | | | - Corrigido um pequeno problema de overflow na leitura | | de vetores de strings. | | | | - Inteiros agora tem 4 bytes, e variam de -2.147.483.647 | | at 2.147.483.647. | | | | - Detectado e corrigido um problema envolvendo a | | preciso de nmeros reais. Antes a atribuio: | | | | r := 12345678901 ; | | | | Resultava em: | | | | r = 12345678848.000000 | | | | - Detectado e corrigido um pequeno bug que ocorria | | no comando case, em rarssimas situaes. | | | | - Erros sintticos comuns, como ausncia de ponto e | | vrgula antes de um comando e ponto e vrgula antes | | de um else, so agora reportados de forma mais | | acurada. | | | | - Corrigido problema com a opo de substituir... | | | | - Habilitada a tecla TAB para o editor. | | | | - Habilitado CTRL+C para parar a execuo de um | | programa, sem fechar o compilador. | | | | - Agradeo ao colega Leonardo Pignataro e aos alunos | | do curso de ICC do 2 semestre de 2003 na Unb pela | | importante ajuda na deteco de erros, contribuio | | com sugestes, e tambm pela ajuda nos testes dessa | | nova verso. ;) | | |

| - Corrigido um bug envolvendo a passagem de valores de | | tipos definidos para funes e procedimentos - erro | | reportado por Gilson Marcos Nogacz. ;) | | | |---------------------------------------------------------------| |------VERSO 4.05 (11/08/2003) --------------------------------| |---------------------------------------------------------------| | | | - Nessa verso foi implementado o suporte a ponteiros | | (graas a importante ajuda de Alex Sandro Garzo). | | | | - Nessa verso foi implementado o suporte a tipos | | enumerados. | | | | - O editor foi substitudo pelo em desenvolvimento no | | projeto open source SynEdit. | | | | - O editor agora aponta, atravs de uma linha vertical, | | o incio e o fim de blocos de cdigo (begin/end) | | | | - O editor agora aponta, em destaque, o pareamento de | | parenteses (em funes e expresses) e colchetes | | (em vetores). | | | | - A definio de tipos foi revista. Agora, possvel | | declarar novos tipos da forma: | | | | Type novoTipo = tipoExistente ; | | | | At a verso anterior, s era possvel declarar tipos | | definidos registro e vetor. | | | |---------------------------------------------------------------| |------VERSO 4.04 (24/01/2003) --------------------------------| |---------------------------------------------------------------| | | | - A pedido de inmeras pessoas... Nessa verso o Pzim | | capaz de gerar arquivos executveis! | | O arquivo executvel contm, alm do cdigo do | | interpretador, o cdigo compilado do programa fonte. | | Dessa forma, os executveis gerados pelo compilador | | no chegam a ser so to pequenos quanto os gerados | | por outros compiladores mais avanados, como o Turbo | | Pascal da Borland, que geram cdigo assembler... | | Mas o importante que agora o Pzim pode agora ser | | utilizado para construir programas reais! :~ | | | | - Nessa verso o Pzim suporta comentrios delimitados | | pelos marcadores (* e *) | | | | - Benjamin y sus alunos :) reportaram que as funes | | round, trunc e abs no estavam funcionando da forma | | correta para round(1.2), trunc(-0.05) e abs(0.453). | | Essas funes foram ento reescritas. | | | | - Daniel Emilio apontou um exemplo de vetores onde o | | Pzim no se comportava como em outros compiladores, | | a exemplo o Turbo Pascal: | | | | type nota = array [1..3, 1..4] of real; |

| | | vnota[1,1]:=4.5; // Vlido na verso 4.03 | | vnota[1][1]:=4.5; // No aceita na verso 4.03 :( | | | | O tratamento de vetores foi completamente revisado, | | e o comportamento desejado foi implementado nesta | | nova verso. | | | | - Meus alunos do IESB reportaram que os itens do menu | | do Pzim no estavam sendo corretamente acionados | | pelas teclas CTRL+<algo>. Isso foi consertado nesta | | nova verso. Obrigado pela ajuda, meus pupilos! :~ | | | | - Nessa verso possvel acessar a ajuda rapidamente, | | colocando o cursor do editor sobre uma palavra e | | pressionando F1. Por exemplo, podemos posicionar o | | cursor sobre a palavra "while" e pressionar F1 para | | abrir a ajuda no tpico referente a este comando. | | | | - Muito do cdigo do compilador foi reescrito, com | | a inteno de portar o cdigo (originalmente | | escrito em C puro) para C++. O analisador lxico, | | o analisador sinttico e o interpretador foram | | revisados e reescritos. Algumas revises foram | | tambm efetuadas no analisador semntico. | | | |---------------------------------------------------------------| |------VERSO 4.03 (04/08/2002) --------------------------------| |---------------------------------------------------------------| | | | | - Implementados os comandos brea e continue. | | | - Editor clssico (ao estilo do Turbo Pascal) | | | | - O interpretador de cdigo e boa parte do analisador | | semntico foram reescritos. | | | | - Muitos bugs foram descobertos e consertados. | | | |---------------------------------------------------------------| |------VERSO 4.02 (11/04/2002) --------------------------------| |---------------------------------------------------------------| | | | - Agora ficou mais fcil trabalhar com seus programas | | escritos em Pascal. Foi adicionado ao compilador o | | Pascalzim Explorer, um utililitrio que permite a | | navegao pelo sistema de arquivos do Windows para | | localizao de arquivos com extenso pas. | | | | - Agora expresses contendo os operadores AND e OR so | | avaliadas em curto-circuito, a exemplo do compilador | | Turbo Pascal. Dessa forma, se o primeiro operando do | | AND for avaliado em false, o segundo no analisado. | | Tambm, se o primeiro operando do OR for avaliado em | | true, o segundo o operando no analisado. | | | | - Agora o comando case admite intervalos como 1..5 nas | | opes de seleo. | | | | - Weber - Rio de Janeiro - enviou um email reportando |

| que o comando de atribuio soma:= exp(ln(5)*2) no | | estava sendo executado adequadamente. Graas a este | | email consegui detectar e corrigir um erro que vinha | | sendo gerado na avaliacao de certas expresses, | | particularmente as expresses que faziam uso de | | funes matemticas como exp, ln, sin, etc. Obrigado | | pela ajuda na deteco destes erros, Weber! | | | |---------------------------------------------------------------| |------VERSO 4.01 (11/04/2002) --------------------------------| |---------------------------------------------------------------| | | | - O comando case agora reconhecido pelo compilador. | | | | - Foi implementado o comando readln ; ( equivalente a | | um read ey ) | | | | - Foram implementados os comando delay e val. | | Obrigado, Luiz Marcelo, pelas sugestes, e por | | ajudar na validao da verso 4.01 beta! | | | | - Ricardo Costa enviou um email reportando dois erros | | de implementao envolvendo o analisador semntico. | | Primeiro erro: estava sendo gerando uma instruo | | errada para comparao < entre reais. Segundo erro: | | uma constante real, declarada em const, estava | | perdendo sua preciso decimal. Obrigado pela ajuda | | na deteco destes erros, Ricardo, e por ajudar a | | validar a verso 4.01 beta! | | | | - At a verso 4.0 o primeiro caractere de uma string | | estava sendo referenciado pela posio zero (como | | em Java e C++). Nessa nova verso, esse caractere | | referenciado pela posio um (de acordo com a | | linguagem Pascal padro). | | | | - Pequenos problemas foram detectados e corrigidos. | | | | - Foram adicionados templates para os comandos case, | | readln e writeln. | | | | - Foi adicionado um atalho para a calculadora do | | Windows. | | | | - Foi adicionada opo Ir para a linha... | | | | - O compilador agora pede uma confirmao do usurio | | antes de sobrescrer um arquivo j existente, na opo | | Salvar Como. | | | |---------------------------------------------------------------| |------VERSO 4.0 (25/01/2002) ---------------------------------| |---------------------------------------------------------------| | | | O editor do compilador foi consideravelmente | | aprimorado, levando verso 4.0! Agora: | | | | - Os elementos lxicos do programa fonte apresentam | | uma formatao prpria, no estilo de compiladores | | como o Turbo Pascal da Borland. |

| | | - O editor apresenta uma barra vertical mostrando | | as linhas do programa fonte. | | | | - O editor disponibiliza agora templates para os | | comandos mais utilizados. | | | | - possvel trabalhar em vrios arquivos fonte | | ao mesmo tempo. | | | | - Foi removida a opo de alterar a fonte e a cor | | de fundo do editor. | | | | | | Essas alteraes no seriam possveis sem a | | considervel ajuda de Andrei Prygoun ov, autor da | | biblioteca de componentes R&A Library. | | Than s a lot, Andrei! | | | | Alm disso, nessa nova verso, foram adicionados: | | | | - O comando randomize. | | | | - As funes upcase, random e read ey (antes | | s existia o comando read ey). | | | |---------------------------------------------------------------| |------VERSO 3.16 (13/11/2001) --------------------------------| |---------------------------------------------------------------| | | | - Foram identificados e corrigidos alguns pequenos | | bugs envolvendo alocao dinmica de memria pelo | | compilador. Essa verso est muito menos sujeita a | | problemas e exibio de mensagens de erro dessa | | natureza (principalmente quando o programa | | fechado :) ). | | | | - Foram corrigidas algumas falhas associadas ao | | tratamento de arquivos. Esta nova verso | | imprescindvel se voc est construindo programas | | que fazem uso de arquivos. | | | | - Foram corrigidas algumas pequenas falhas na | | passagem de parmetros para funes. At a verso | | anterior era possvel declarar uma funo que | | espera n parmetros e cham-la sem passar nenhum | | dos parmetros. Tambm, era possvel chamar uma | | funo sem parmetros passando a ela parmetros. | | Esse tratamento de parmetros foi incorporado | | nova verso do compilador. Agradeo ao aluno | | Eolisses Ferreira Leopoldino, IESB, pela | | importante ajuda ao detectar a falta de tratamento | | destes casos de passagem de parmetro! | | | |---------------------------------------------------------------| |------VERSO 3.15 (08/10/2001) --------------------------------| |---------------------------------------------------------------| | | | - Foram implementadas no editor as opes de localizar | | e substituir. Tambm um problema envolvendo a troca |

| da fonte usada pelo editor foi corrigido. | | | |---------------------------------------------------------------| |------VERSO 3.14 (02/10/2001) --------------------------------| |---------------------------------------------------------------| | | | - Essa nova verso corrige alguns pequenos bugs. Alm | | disso, se a fonte ou a cor de fundo utilizada pelo | | editor for modificada a nova configurao | | automaticamente aparecer quando o programa for | | executado. | | | |---------------------------------------------------------------| |------VERSO 3.13 (27/08/2001) --------------------------------| |---------------------------------------------------------------| | | | Depois de mais de um ano sem uma nova atualizao, o | | Pascalzim foi recompilado. Foi includa a | | possibilidade de comentar uma linha de cdigo com //, | | de forma semelhante s linguagens C e Java. | | | |---------------------------------------------------------------| |------VERSO 3.12 (07/11/2000) --------------------------------| |---------------------------------------------------------------| | | | - O analisador lxico foi totalmente reescrito. Agora | | possvel executar um programa Pascal sem que seja | | necessrio salvar o arquivo fonte. Com essa mudana | | o tempo de compilao diminuiu consideravelmente. | | | | - Foi corrigido um erro na implementao da funo abs | | para reais - a funo estava truncando reais. | | | | - Erros envolvendo a leitura de dados de arquivos | | foram encontrados e consertados. | | | | - Foi implementado um menu popup para o editor, | | contendo funes como copiar, colar e executar! | | | | - Outros pequenos erros foram consertados. | | | | Agradeo ao professor Homero ( Departamento de | | Cincia da Computao da Universidade de | | Braslia ) pela importante ajuda em sugestes, | | teste e deteco de erros no compilador! | | | |---------------------------------------------------------------| |------VERSO 3.11 (15/08/2000) --------------------------------| |---------------------------------------------------------------| | | | - Novos erros envolvendo a passagem de parmetros | | foram encontrados e corrigidos. | | | | - Nessa nova verso possvel declarar os intervalos | | de um vetor atravs de constantes inteiras | | declaradas na seo const, como em: Const max = 5 ; | | | | Var vetor : array [ 1 ... max , 1.. max ] of integer; | | | | - Foi implementado um menu Popup para o Editor. |

| Atravs desse menu possvel acessar facilmente | | os comandos Editar, Recortar e Colar, alm das | | funes de formatao da cor de fundo e da fonte | | do editor. Atravs desse menu possvel tambm | | acessar a funo Executar! | | | | - O compilador guarda agora a informao sobre os | | cinco ltimos arquivos abertos. | | | |---------------------------------------------------------------| |------VERSO 3.10b (07/06/2000) -------------------------------| |---------------------------------------------------------------| | | | - Todo o cdigo envolvendo passagem de parmetros | | por valor e referncia para funes e procedimentos | | foi reescrito, e inmeros erros de implementao | | foram corrigidos. Muitas novas possibilidades de | | passagem, antes no previstas, foram implementadas. | | | | - O uso do comando read para leitura de cadeias em | | arquivos texto foi modificado, de forma a funcionar | | como no compilador Turbo Pascal da Borland. Agora | | uma sequncia de comandos como: | | | | Var cadeia : string [ 20 ] ; | | .... | | Read ( arquivo , cadeia ) | | | | | | L, do arquivo associado a arquivo, uma cadeia | | contendo 20 caracteres, ou todos os caracteres | | contidos em uma linha do arquivo se a linha conter | | menos de 20 caracteres. | | | | - Novos bugs foram identificados e corrigidos. | | | |---------------------------------------------------------------| |------VERSO 3.09 (07/06/2000) --------------------------------| |---------------------------------------------------------------| | | | - Foram detectados e corrigidos um conjunto de bugs | | que o compilador vinha trazendo at esta verso. | | Anteriormente a execuo de determinados programas | | causava estouro de memria, fazendo com que o | | compilador finalizasse prematuramente. Com a correo | | de alguns destes bugs, o compilador se tornou mais | | estvel ! Agradeo ao aluno Rafael Faria Braga, UnB, | | pela importante ajuda na deteco destes erros! | | | | - Revisado o comando Assign. | | | |---------------------------------------------------------------| |------VERSO 3.08 (06/06/2000) --------------------------------| |---------------------------------------------------------------| | | | - Os comandos para abertura de arquivos ( Reset, | | Rewrite, Append ) foram revisados. | | | | - A funo EOF foi revisada. | | |

| - Foi implementada a escrita de caracteres acentuados. | | Agora possvel imprimir um literal como: | | | | writeln ( 'Essa escrita correta s possvel a | | partir dessa nova verso !' ) ; | | | |---------------------------------------------------------------| |------VERSO 3.07 (30/05/2000) --------------------------------| |---------------------------------------------------------------| | | | - Foram revisadas as operaes de leitura de dados | | (read) em arquivos. | | | | - O esquema usado para reportar mensagens de erro foi | | reestruturado. Agora as mensagens de erro aparecem | | na janela do editor. | | | |---------------------------------------------------------------| |------VERSO 3.06 (24/05/2000) --------------------------------| |---------------------------------------------------------------| | | | - Foram revisadas as definies de tipos atravs da | | palavra reservada Type. Alguns pequenos bugs foram | | encontrados e consertados. | | | | - Foi corrigido um bug envolvendo a leitura de | | mltiplas variveis no comando read e readln. | | | | - Foram reescritas as rotinas de adio e impresso de | | cadeias. | | | | - Foi implementada a verificao de diviso por zero. | | | |---------------------------------------------------------------| |------VERSO 3.05 (11/05/2000) --------------------------------| |---------------------------------------------------------------| | | | - Foi habilitado o uso dos comandos for...to e | | for...downto para variveis do tipo char . | | | | - O operador / foi revisado. A diviso de inteiros, | | at a verso anterior do compilador, estava gerando | | uma instruo div no processo de diviso . | | | | - A definio das cadeias de caracteres (strings) foi | | revisada. Agora possvel acessar elementos | | individuais das cadeias. | | | | - Todas as operaes envolvendo cadeias de | | caracteres foram revisadas. | | | | - O comando de atribuio foi revisado. | | | | - As operaes envolvendo vetores foram revisadas. | | Alguns bugs foram encontrados e consertados. | | | |---------------------------------------------------------------| |------VERSO 3.04 (02/05/2000) --------------------------------| |---------------------------------------------------------------| | |

| - Foi desabilitada a opo de criao obrigatria do | | arquivo xxx.zim. | | | | - Foram revisadas as expresses lgicas. Pequenos | | bugs foram consertados. | | | | - Foram revisados os comandos de leitura e escrita | | em arquivo. | | | | - Foi implementada a especificao de parmetros | | formatadores para os comandos write e writeln. | | O compilador, nessa nova verso, reconhece um | | comando Pascal como: | | | | writeln ( 3.141516 : 3 : 2 ) ; | | | | - O compilador, nessa verso, aceita comandos | | writeln com a seguinte sintaxe : | | | | writeln ; | | | | - O tpico referente aos comandos write e writeln | | no arquivo de help foi atualizado. | | | |---------------------------------------------------------------| |------VERSO 3.03 (18/04/2000) --------------------------------| |---------------------------------------------------------------| | | | - Foram atualizadas as mensagens geradas para os | | erros sintticos do compilador. Agora os erros | | sintticos so reportados mais acuradamente. | | | |---------------------------------------------------------------| |------VERSO 3.02 (17/04/2000) --------------------------------| |---------------------------------------------------------------| | | | - O arquivo de help foi reescrito e atualizado com | | as novas funes implementadas na verso 3.01. | | | | - Foi corrigido um pequeno bug que fazia com que o | | compilador travasse ao executar determinados | | programas. | | | |---------------------------------------------------------------| |------VERSO 3.01 (13/04/2000) --------------------------------| |---------------------------------------------------------------| | | | - Foram implementadas as funes ln, exp, sqr, sqrt, | | abs, trunc, round, sin, cos, arctan, odd, succ, | | pred, predefinidas na linguagem Pascal. | | | | - Foram implementados os comandos de incremento e | | decremento de variveis inc e dec. | | | | - Foi implementado o suporte a mltiplas entradas | | nos comandos read e readln. | | | |---------------------------------------------------------------| |------VERSO 3.0 (fevereiro de 2000) --------------------------| |---------------------------------------------------------------|

| | | - O compilador foi portado para C++ Builder, e embutido | | em um ambiente de editorao visual; | | | | - Inmeros bugs foram identificados e consertados; | | | | - Foi abolida a chamada ao compilador via linha de | | comando. | | | |---------------------------------------------------------------| |------VERSO 2.0 (dezembro de 1999) ---------------------------| |---------------------------------------------------------------| | | | - O programa responsvel por interpretar as instrues | | geradas pelo compilador foi embutido no mesmo | | ambiente do compilador; | | | | - O subconjunto da linguagem Pascal implementada no | | compilador foi largamente expandida. | | | | - Foi desenvolvido um ambiente de editorao visual | | ( em ambiente Delphi ) capaz de se comunicar com | | o compilador via linha de comando; | | | | - Foi criado um arquivo de ajuda contendo a definio | | sinttica dos tipos, expresses, comandos e | | estruturas da linguagem Pascal implementada pelo | | compilador. | | | |---------------------------------------------------------------| |------VERSO 1.0 (dezembro de 1998) ---------------------------| |---------------------------------------------------------------| | | | - Foi implementada a primeira verso do compilador, | | em linguagem C, consistindo de um programa capaz | | de traduzir um programa fonte em um programa | | objeto (compilador) e um programa capaz de | | interpretar e executar programas objetos gerados | | pelo compilador; | | | #===============================================================# #===============================================================# | 4.Subconjunto da linguagem Pascal implementado | #===============================================================# | | | Na verso atual o compilador: | | | | - Admite os tipos predefinidos integer, char, boolean, | | real, string. | | | | - Permite a utilizao dos tipos estruturados vetor | | (array), registro (record), enumerao e ponteiro. | | | | - Admite constantes inteiras, reais, lgicas e literais. | | | | - Reconhece os seguintes operadores: | | | | - Aritmticos: +, - , *, /, DIV, MOD |

| | | - Lgicos: NOT, AND, OR, XOR | | | | - Condicionais: =, <>, >, >=, <, <= | | | | | | - Reconhece os seguintes comandos: | | | | - Comandos de atribuio | | | | - Estruturas de repetio: | | for .. to, for .. downto, repeat, while | | | | - Estruturas condicionais: | | case, if .. then, if .. then .. else | | | | - Comandos para manipulao de arquivos: | | append, close, open, reset, rewrite | | | | - Comandos para manipulao de ponteiros: | | dispose, new | | | | - Comandos para entrada e sada de dados: | | read, readln, write, writeln | | | | - Outros: | | | brea , clrscr, continue, dec, delay, delete, | exit, gotoxy, inc, insert, read ey, randomize, | | str, textcolor, textbac ground, val, with | | | | | | - Reconhece as funes abs, arctan, chr , concat, copy, | | cos, eof , eoln, exp , frac, int, eypressed, length, | | ln, odd, ord, pos, pred, random, read ey ,round, sin, | | sqr, sqrt, str, succ, trunc, upcase | | | | - Reconhece as seguintes constantes pr-definidas: | | maxint, pi | | | | - Permite a definio de funes e procedimentos, | | suportando : | | | | - Recursividade | | | | - Aninhamento | | | | - Passagem de parmetros por valor e referncia | | | #===============================================================# #===============================================================# | 5.Download | #===============================================================# | | | Os arquivos necessrios para a instalao do Pascalzim | | podem ser obtidos a partir do seguinte endereo: | | | | http://pascalzim.tripod.com/index.html | | |

#===============================================================# #===============================================================# | 6.Procedimento de instalao | #===============================================================# | | | Aps copiar o arquivo Pzim.zip para o seu disco local | | (download do arquivo) siga as seguintes instrues: | | | | - Utilize o Winzip (ou outro utilitrio capaz de | | descompactar arquivos zip) para descompactar o | | arquivo obtido. | | | | - Execute o programa clicando em Pzim.exe | | | #===============================================================# #===============================================================# | 7.Agradecimentos | #===============================================================# | | | O desenvolvimento do Pascalzim contou com a | | colaborao, ajuda e apoio de inmeras pessoas: | | | | - Minha ex-mulher, Valquria, que acompanhou grande parte | | do desenvolvimento deste trabalho, incentivando-me em | | cada pequena conquista e descoberta, tornando | | possvel a concluso de cada nova verso. | | | | - Professor Pedro Rezende, do Departamento de | | Cincias da Computao da Universidade de | | Braslia, que foi meu orientador na disciplina | | de Tradutores durante minha graduao, e com | | quem aprendi conceitos fundamentais para | | o desenvolvimento deste trabalho. | | | | - Professora Maria Emlia, do Departamento de | | Cincias da Computao da Universidade de | | Braslia, que foi minha orientadora no | | projeto final de graduao, e que acompanhou | | todo o processo de implementao e reviso terica | | necessria para o desenvolvimento da verso 2.0 do | | compilador. | | | | - Meus ex-alunos do curso de Introduo a Cincia | | da Computao (turma L) na Universidade de | | Braslia no primeiro semestre de 2000, que | | utilizaram o compilador nesse perodo e que | | contriburam de maneira significativa para | | deteco de erros e para o desenvolvimento do | | compilador. Obrigado, meus primeiros beta-testers! | | | | - Professor Homero Picollo, do Departamento de | | Cincias da Computao da Universidade de | | Braslia, que contribuiu de forma considervel | | para a descoberta de erros de implementao, | | sugerindo tambm inmeras sugestes. | | |

| - Todos os meus alunos do curso de Algoritmos e | | Programao Estruturada, no Instituto de Educao | | Superior de Braslia (IESB), e que utilizaram o | | compilador durante o curso. | | | | - Andrei Prygoun ov, autor da biblioteca de componentes | | R&A Library, que contribuiu para o aprimoramento | | significativo do editor na verso 4.0. | | | | - Aos desenvolvedores do projeto SynEdit, pela ajuda e | | prestatividade no esclarecimento de dvidas para a | | incorporao deste poderoso componente verso 4.05. | | | | - O amigo Alex Sandro Garzo, ex-aluno do curso | | de Cincia da Computao na Unisinos, que | | contribuiu com seu conhecimento e experincia | | no desenvolvimento de novos mdulos do Pascalzim | | na verso 4.05. O suporte a ponteiros s foi possvel | | porque pude contar com sua importante ajuda e | | dedicao. | | | | - A todos os beta-testers, pela importante ajuda | | na validao e teste das verses beta do compilador, | | encontrando inmeros bugs e contribuindo com preciosas | | sugestes. Em especial, fica aqui registrado meu | | agradecimento a Leonardo Pignataro e Rodrigo Gare | | Pissarro, pelas importantes contribuies. | | | | - A todos os alunos e professores da Universidade | | de Braslia, do IESB, e tambm a todas os professores, | | alunos e pessoas que utilizaram (e esto utilizando :) | | o compilador para fins educacionais e que, de | | alguma forma, contribuiram para o desenvolvimento | | desse trabalho. | | | | A todas essas pessoas gostaria de expressar aqui | | minha eterna gratido. Esse trabalho no seria | | possvel sem a significativa contribuio de | | cada um de vocs. | | | | Muito obrigado! | | | #===============================================================# #===============================================================# | 8.Comentrios, crticas e sugestes | #===============================================================# | | | Sua opinio importante! Dvidas, comentrios, | | sugestes e crticas so bem vindos! | | | | Encontrou um bug? Por favor, no deixe de avisar! | | | | Envie um email para: pascalzim@yahoo.com.br | | | #===============================================================#

Você também pode gostar