Você está na página 1de 28

#===============================================================#

|
|
|

|

|
|




|
|


|
|




|
|


|
|
|
|
verso 5.2.5 |
#===============================================================#
#
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
|
|
Niklaus 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.2.5 (17/03/2014) -------------------------------|
|---------------------------------------------------------------|
|
|

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

- Reescrita a maneira como feita a referncia memria


durante a execuo do programa. Agora esse processo
consome muito menos memria, pois o uso de memria foi
otimizado. ;)
-

|
|
|
|
|
Reescrita a maneira como feita a referncia memria |
com ponteiros durante a interpretao do programa. Isso |
foi necessrio porque algumas passagens por referncia |
com ponteiros no estavam funcionando de acordo.
|
|
Adicionado o suporte aos tipos inteiros byte, shortInt |
word e longInt. Sugesto do professor Rodrigo Crdula. |
Obrigado pela contribuio! ;)
|
|
Implementados os operadores para deslocamento de bits |
'shl' e 'shr'. Sugesto de Alexandre Versiani. Obrigado |
pela contribuio! ;)
|
|
O uso de ponteiros no lugar das variveis passadas como |
referncia nos comandos dec, inc, delete, insert, str e |
val no estavam funcionando corretamente. Problema
|
reportado por Alexandre Moreira Versiani. Obrigado pela |
contribuio! ;)
|
|
Quando no especificado o caminho do arquivo no comando |
assign, o compilador considerava como caminho a pasta |
do executavel do compilador. Agora considera a pasta do |
programa. Reportado por Darlan D. Moro. Obrigado pela |
contribuio! ;)
|
|
Corrigido um erro bastante especfico que acontecia
|
durante a leitura de strings de registros de arquivos |
binrios. Esse erro foi reportado por Daniel Dagostin |
Romanha. Obrigado pela contribuio! ;)
|
|
O compilador no estava reconhecendo (***) como um
|
comentrio vlido. Reportado por Raphael Augusto.
|
Obrigado pela contribuio! ;)
|
|
O compilador no estava reconhecendo a cadeia vazia na |
inicializao de variveis e constantes. Reportado por |
Helto Borges de Faria. Obrigado pela contribuio! ;) |
|
O compilador estava indevidamente escrevendo em arquivo |
a sequncia de caracteres 13 e 10, quando solicitada a |
escrita do segundo caracter. Esse comportamento padro|
nas rotinas printf e puts da linguagem C++, mas no
|
deveria ocorrer no Pascalzim. Reportado por Alexandre |
Versiani. Obrigado pela contribuio! ;)
|
|
Nessa verso funes e procedimentos sem parmetros
|
podem ser definidos com parnteses, como no seguinte
|
exemplo:
|
|
function retorna10() : integer;
|
|
Tambm, agora esses subprogramas podem ser chamados com |
parnteses, como no seguinte exemplo:
|
|
writeln(retorna10());
|

|
|
|
Sugerido por Cleverson L Beckedorff. Obrigado pela
|
|
contribuio! ;)
|
|
|
|
- Realizada algumas otimizaes no cdigo fonte do
|
|
interpretador de cdigo compilado.
|
|
|
|
- Corrigido uma srie de pequenos bugs. Esses erros
|
|
foram reportados por Raphael Augusto. Obrigado pela
|
|
contribuio! ;)
|
|
|
|---------------------------------------------------------------|
|------VERSO 5.2.4 (18/10/2013) -------------------------------|
|---------------------------------------------------------------|
|
|
|
- Atendendo a inmeros pedidos, nessa verso o compilador |
|
oferece suporte a units! Agora possvel no somente |
|
compilar unidades com o compilador, mas tambm fazer
|
|
uso dessas unidades por meio da clsula 'uses'. ;)
|
|
|
|
- Importante: O arquivo contendo as unidades usadas pelo |
|
programa Pascal devem estar na mesma pasta que o
|
|
programa.
|
|
|
|
- Para ilustrar o suporte a unidades, Guilherme Resende S|
|
enviou uma belssima implementao do jogo Uno, que foi |
|
adiconado aos programas de exemplo. Obrigado pela
|
|
contribuio! ;)
|
|
|
|
- Adicionado o recurso de "breakpoints" (pontos de parada)|
|
na execuo passo a passo. Um ponto de parada pode ser |
|
colocado clicando na rgua que exibe a linha do programa|
|
ou ainda pelo menu acessado com o boto esquerdo do
|
|
mouse. Agora possvel dizer ao compilador em que linha|
|
parar a execuo do programa. ;)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
const
|
a: real = 60 ;
|
b: array[1..3] of integer = ( 50, 60, 70 );
|
c: record x, y: integer; end = (x:10 ; y:20) ;
|
|
Sugerido por Darlan D. Moro. Obrigado pela
|
contribuio! ;)
|
|
- Implementado o suporte a variveis inicializadas, cuja |
definio segue a mesma ideia das constantes tipadas, |
como no seguinte exemplo:
|
|
var
|
d: real = 3.1418 ;
|
e: array[1..3, 1..2] of integer = ((1,2),(3,4),(5,6));|
|
- Implementado o suporte a constantes tipadas (variveis
que podem receber valores iniciais). A inicializao
vlida para tipos primitivos (integer, char, boolean,
real, string e enumeraes), para o tipo set, para o
tipo record, e tambm para arrays de uma ou mais
dimenses desses tipos, como no seguinte exemplo:

|
type
|
|
vetor = array[1..2] of record x, y: integer; end ; |
|
var
|
|
f: vetor = ((x:15 ; y:25),(x:35 ; y:45)) ;
|
|
|
|
- Implementados os procedimentos "clreol", "delline",
|
|
"highvideo", "insline", "lowvideo", "normvideo" e
|
|
"window", da biblioteca crt.
|
|
|
|
- Corrigido um bug na execuo da funo "int". Esse bug |
|
foi reportado por Cleverson Beckedorff. Obrigado pela |
|
contribuio! ;)
|
|
|
|
- Corrigido uma srie de bugs envolvendo a passagem de
|
|
parmetros com strings. Esses bugs foram reportados por |
|
Guilherme Resende S. Obrigado pela contribuio! ;)
|
|
|
|
- Corrigido um bug que ocorria quando quando uma funo |
|
era usada como resultado da expresso de fim de um for. |
|
Esses bug foi reportado por Guilherme Resende S.
|
|
Obrigado pela contribuio! ;)
|
|
|
|
- Revisada a implementao da funo readkey, fazendo uma |
|
comparao com o resultado produzido pelo Turbo Pascal. |
|
O compilador agora est de acordo com a tabela que
|
|
aparece na pgina 202 do livro 'Pascal Estruturado', 3 |
|
Edio, do Harry Farrer. Essa reviso foi necessria
|
|
porque alguns bugs bastante especficos foram reportados|
|
por Guilherme Resende S. Obrigado pela contribuio! ;)|
|
|
|
- Corrigido alguns bugs envolvendo as funes de executar |
|
um programa, procurar ou substituir texto em cdigos
|
|
muito grandes (mais de 2000 linhas). Esses bugs foram |
|
reportados por Darlan D. Moro. Obrigado pela
|
|
contribuio! ;)
|
|
|
|
- A opo "Ferramentas -> Pompt do MS-DOS" no estava
|
|
funcionando no Windows 7, agora est. Esse bug foi
|
|
reportado por Rafael Barreto. Obrigado pela
|
|
contribuio! ;)
|
|
|
|
- Atualizado o exemplo 'PaintZim', desenvolvido por
|
|
Guilherme Resende S:
|
|
|
|
~ Interface mais amigvel e intuitiva;
|
|
~ Suporte ao conceito de seleo;
|
|
~ Implementao dos comandos Copiar, Colar, Desfazer e |
|
Refazer;
|
|
~ Adio da opo de exportar o desenho para cdigo em |
|
pascal;
|
|
~ O HTML exportado exibe as cores reais do desenho;
|
|
~ Adio da funo de exportar arquivos de texto;
|
|
~ Melhoria da forma de escolher caracteres e cores.
|
|
|
|
Obrigado pela contribuio! ;)
|
|
|
|---------------------------------------------------------------|
|------VERSO 5.2.3 (27/08/2013) -------------------------------|
|---------------------------------------------------------------|
|
|

|
- Adicionado o suporte definio posterior de funes e |
|
procedimento por meio da palavra reservada forward.
|
|
|
|
- Implementados os operadores 'and', 'or', 'xor' e 'not' |
|
para expresses do tipo 'integer', permitindo assim a |
|
manipulao de bits. Sugesto de Geziel Fieldkircher. |
|
Obrigado pela contribuio! ;)
|
|
|
|
- Nessa verso as sees para declarao de constantes, |
|
tipos, variveis e funes no seguem uma ordem fixa, e |
|
podem aparecer diversas vezes na seo de declarao de |
|
dados do programa/funo.
|
|
|
|
- As variveis 'array' dos tipos integer, real, boolean, |
|
char e string agora podem ser visualizadas durante a
|
|
execuo passo a passo.
|
|
|
|
- Implementados os comandos'cursoron' e 'cursoroff', que |
|
possibilitam exibir/ocultar o cursor do teclado.
|
|
Sugesto de Raphael Augusto, obrigado pela contribuio!|
|
;)
|
|
|
|
- Adicionada a verificao de variveis declaradas com um |
|
tipo que no foi definido no programa, como no seguinte |
|
exemplo:
|
|
|
|
var variavel : naoExisteEsseTipo;
|
|
|
|
Esse problema foi reportado por Raphael Augusto.
|
|
Obrigado pela contribuio! ;)
|
|
|
|
- Adicionado o suporte a expresses na declarao de
|
|
constantes, como no seguinte exemplo:
|
|
|
|
const AREA = 5 * 2;
|
|
|
|
Esse problema foi reportado por Guilherme Resende S. |
|
Obrigado pela contribuio! ;)
|
|
|
|
- Corrigido uma srie de pequenos bugs, que foram
|
|
reportados por Raphael Augusto. Obrigado pela
|
|
contribuio! ;)
|
|
|
|
- Corrigido um pequeno bug na escrita de cadeias em
|
|
arquivos binrios. Esse problema foi reportado por
|
|
Victor G. Netto, obrigado pela contribuio! ;)
|
|
|
|
- Corrigido um bug na implementao da funo filesize. |
|
Ao chamar a funo, o programa movia o cursor de
|
|
leitura para o final do arquivo, perdendo a posio de |
|
leitura corrente.Esse problema foi reportado por
|
|
Victor G. Netto, obrigado pela contribuio! ;)
|
|
|
|---------------------------------------------------------------|
|------VERSO 5.2.2 (26/04/2013) -------------------------------|
|---------------------------------------------------------------|
|
|
|
- Atendendo a inmeros pedidos, nessa verso o compilador |
|
oferece suporte a arquivos binrios usando a declarao |
|
'file of'. ;)
|

|
|
|
- Implementadas as funes seek, filesize e filepos para |
|
manipulao de arquivos binrios.
|
|
|
|
- Implementado o suporte ao tipo 'set', juntamente com as |
|
operaes de unio(+), interseccao(*), diferena(-),
|
|
igualdade(=), desigualdade(<>), contm (>=) e est
|
|
contido (<=). ;)
|
|
|
|
- As variveis do tipo 'set' podem ser impressas com o
|
|
comando 'writeln', e tambm podem ser visualizadas
|
|
durante a execuo passo a passo.
|
|
|
|
- As variveis exibidas durante a execuo passo a passo |
|
agora aparecem ordenadas por escopo e nome.
|
|
|
|
- Adicionado na interface um boto que permite fazer a
|
|
identao do cdigo fonte (atalho com ctrl+i).
|
|
|
|
- Adicionado na interface um comando que permite comentar |
|
ou descomentar as linhas selecionadas no editor
|
|
(atalho com ctrl+/).
|
|
|
|
- Diversos atalhos para as opes do menu foram
|
|
modificados, de maneira a seguir o padro de editores |
|
conhecidos.
|
|
|
|---------------------------------------------------------------|
|------VERSO 5.2.1 (14/11/2012) -------------------------------|
|---------------------------------------------------------------|
|
|
|
- Essa basicamente uma verso de correo de erros, que |
|
oferece solues para uma srie de problemas no editor, |
|
em funes que recebem strings, e tambm nos comandos |
|
eof e eoln. Sua finalizao s foi possvel porque pude |
|
contar com a ajuda do colega Guilherme Resende S na
|
|
identificao de erros, envio de sugestes, realizao |
|
de testes e avaliao da verso aqui disponibilizada. |
|
Obrigado por toda sua ajuda nessa tarefa, Guilherme! ;) |
|
|
|
- Corrigido um erro no pareamento de parnteses do editor.|
|
Esse problema foi reportado por Luan Kevin Ferreira.
|
|
Obrigado pela contribuio! ;)
|
|
|
|
- Corrigido um erro na construo das linhas pontilhadas |
|
que ligam os bloco de incio/fim no editor. Esse
|
|
problema foi reportado pelo professor Victor Nunes, e |
|
tambm por Guilherme Resende S. Obrigado pela
|
|
contribuio! ;)
|
|
|
|
- Corrigido um erro que acontecia quando uma cadeia era |
|
passada para uma funo como resultado do uso de uma
|
|
funo predefinida, como no seguinte exemplo:
|
|
|
|
minhaFuncao(upcase(texto))
|
|
|
|
Nesse caso, a cadeia chegava invertida em "minhaFuncao"!|
|
Esse problema foi reportado tanto por Isaque Damio
|
|
Siqueira Costa quanto por Guilherme Resende S.
|
|
Obrigado pela contribuio! ;)
|

|
|
|
- Corrigido um erro que acontecia quando vrias cadeias |
|
eram concatenadas usando o comando concat, e depois
|
|
enviadas para uma funo, como no seguinte exemplo:
|
|
|
|
minhaFuncao(concat('pascal','zim'))
|
|
|
|
Nesse caso, as cadeias chegavam concatenadas ao
|
|
contrrio em "minhaFuncao"! Esse problema foi reportado |
|
por Guilherme Resende S. ;)
|
|
|
|
- Corrigidos erros nas funes eof, eoln e na leitura de |
|
caracteres em arquivos. Na padro Pascal, o correto |
|
encontrar dois caracteres no final da linha, #13 e #10. |
|
O compilador, no entanto, retornava ao usurio somente |
|
o caractere #10. Mais um problema reportado por
|
|
Guilherme Resende S. ;)
|
|
|
|
- A funo upcase agora aceita caracteres acentuados e
|
|
cedilha. Sugesto de Isaque Damio Siqueira Costa.
|
|
Obrigado pela contribuio! ;)
|
|
|
|
- Adicionado aos programas de exemplo uma interessante
|
|
implementao do nosso conhecido jogo de Damas. Esse
|
|
programa foi desenvolvido por Guilherme Resende S, que |
|
tambm autor do PaintZim. ;)
|
|
|
|---------------------------------------------------------------|
|------VERSO 5.2.0 (17/07/2012) -------------------------------|
|---------------------------------------------------------------|
|
|
|
- Essa uma verso histrica! Agora o compilador tem uma |
|
janela de debug que permite visualizar o conteudo das |
|
variveis globais e locais durante a execuo passo a |
|
passo! O recurso de debug, no entanto, funciona somente |
|
para variveis do tipo integer, char, boolean, real,
|
|
string, text, enumerao, intervalo e ponteiro.
|
|
|
|
- O compilador utilizava uma verso antiga do componente |
|
SynEdit. Nessa verso o compilador foi atualizado para |
|
usar uma verso mais recente, a verso 2.0.3. ;)
|
|
|
|
- Implementadas as funes wherex, wherey e adicionada a |
|
varivel ioresult.
|
|
|
|
- Nessa verso o comando write funciona para ponteiros. |
|
Com isso, possvel imprimir na tela o endereo
|
|
armazenado em um ponteiro.
|
|
|
|
- Desabilitado o boto passo a passo e o item de menu
|
|
refazer, no momento em que nenhum editor estiver aberto.|
|
Tambm foi consertado um problema na escolha do estilo |
|
do editor nessa mesma situao. Esses problemas foram |
|
reportados por um usurio annimo. Obrigado pela
|
|
contribuio! ;)
|
|
|
|
- Adicionada uma verificao para valores menores que
|
|
zero na chamada funo sqrt. Esse problema foi
|
|
reportado por Raphael Augusto. Obrigado pela
|
|
contribuio! ;)
|

|
|
|
- Corrigido um erro envolvendo a leitura de dados em
|
|
ponteiros. Esse problema foi reportado pelo professor |
|
Victor Nunes, diretamente de Portugal! Obrigado pela
|
|
contribuio! ;)
|
|
|
|
- Nessa verso o sistema de help (usando F1) funciona nas |
|
novas verses do Windows, como Vista e Windows 7. Esse |
|
problema foi reportado pelo professor Victor Nunes,
|
|
diretamente de Portugal! Obrigado pela contribuio! ;) |
|
|
|
- Adicionado aos programas de exemplo o PaintZim, um
|
|
belssimo editor de figuras ASCII. Esse programa foi
|
|
desenvolvido por Guilherme Resende S. Obrigado pela
|
|
contribuio! ;)
|
|
|
|---------------------------------------------------------------|
|------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) -------------------------------|
|---------------------------------------------------------------|
|
|
|
- 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 Wordkill,
|
que simula um jogo de espaonave. Esse programa foi
|
desenvolvido por Marco Andr Dinis e Jos Luis Teixeira.|
Obrigado pela contribuio! ;)
|
|

|---------------------------------------------------------------|
|------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. |
|
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 feedback! ;)
|
|
|
|---------------------------------------------------------------|
|------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 feedback! ;)
|
|
|
|
- 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 Dark 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 break 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 readkey )
|
|
|
|
- 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 Prygounkov, autor da
|
|
biblioteca de componentes R&A Library.
|
|
Thanks a lot, Andrei!
|
|
|
|
Alm disso, nessa nova verso, foram adicionados:
|
|
|
|
- O comando randomize.
|
|
|
|
- As funes upcase, random e readkey (antes
|
|
s existia o comando readkey).
|
|
|
|---------------------------------------------------------------|
|------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, conjunto (set) |
|
e ponteiro.
|
|
|
|
- Permite o uso de arquivos no formato texto (text) e
|
|
binrio (file of)
|
|
|
|
- Admite constantes inteiras, reais, lgicas e literais. |
|
|
|
- Reconhece os seguintes operadores:
|
|
|
|
- Aritmticos: +, - , *, /, DIV, MOD
|

|
|
|
- Lgicos: NOT, AND, OR, XOR
|
|
|
|
- Condicionais: =, <>, >, >=, <, <=
|
|
|
|
- Conjuntos: =, <>, +, -, *, <=, >=
|
|
|
|
- Binrios: NOT, AND, OR, XOR, SHL, SHR
|
|
|
|
- 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, seek,
|
|
filesize e filepos
|
|
|
|
- Comandos para manipulao de ponteiros:
|
|
dispose, new
|
|
|
|
- Comandos para entrada e sada de dados:
|
|
read, readln, write, writeln
|
|
|
|
- Outros:
|
|
break, clrscr, continue, cursoron, cursoroff, |
|
dec, delay, delete, exit, gotoxy, inc, insert, |
|
readkey, randomize, str, textcolor,
|
|
textbackground, val, with
|
|
|
|
|
|
- Reconhece as funes abs, arctan, chr , concat, copy, |
|
cos, eof , eoln, exp , frac, filesize, filepos, int,
|
|
ioresult, keypressed, length, ln, odd, ord, pos, pred, |
|
random, readkey, round, seek, sin, sqr, sqrt, str, succ,|
|
trunc, upcase, wherex, wherey
|
|
|
|
- Reconhece as constantes pr-definidas maxint e pi
|
|
|
|
- Permite a definio de funes e procedimentos,
|
|
suportando :
|
|
|
|
- Recursividade
|
|
- Aninhamento
|
|
- Passagem de parmetros por valor e referncia
|
|
|
|
- Permite o uso de unidades definidas pelo usurio (uses) |
|
|
#===============================================================#
#===============================================================#
| 5.Download
|
#===============================================================#
|
|

|
Os arquivos necessrios para a instalao do Pascalzim
|
|
podem ser obtidos a partir do seguinte endereo:
|
|
|
|
http://pascalzimbr.blogspot.com.br
|
|
|
#===============================================================#
#===============================================================#
| 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:
|
|
|
|
- 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 Prygounkov, 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. |
|
|
|
- Ao colega 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.
|
|
|
|
- Ao colega Guillherme Resende S, pela importante ajuda |
|
com sugestes, testes e envio de belssimos exemplos de |
|
jogos. Sua contribuio foi essencial para que o suporte|
|
unidades fosse implementado na verso 5.2.4 do
|
|
compilador.
|
|
|
|
- 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