Você está na página 1de 36

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

|
|
|

|
|

|
|




|
|


|
|




|
|


|
|
|
|
verso 6.0.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
|
|
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 6.0.3 (19/02/2016) -------------------------------|
|---------------------------------------------------------------|
|
|
|
- Atendendo a inmeros pedidos, nessa verso o compilador |
|
oferece suporte biblioteca 'graph'. Todas funes da |
|
biblioteca foram implementadas, com exceo das
|

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

seguintes: InstallUserDriver, RegisterBGIdriver e


|
RegisterBGIfont . Ao todo, so 76 funes suportadas e |
documentadas no arquivo de ajuda. ;)
|
|
Agora pode-se informar o tamanho do incremento para os |
comandos 'inc' e 'dec'. Sugesto de Helto Borges de
|
Faria. Obrigado pela contribuio! ;)
|
|
Agora os comandos 'inc' e 'dec' podem ser utilizados
|
para o incremento/decremento de ponteiros. Sugesto
|
de Alexandre Moreira Versiani. Obrigado pela
|
contribuio! ;)
|
|
Implementado o comando 'halt'. Sugesto de Gustavo
|
Antoniassi. Obrigado pela contribuio! ;)
|
|
Agora o intervalo de um array pode ser declarado a
|
partir de um tipo enumerado ou um intervalo intervalo, |
como na declarao abaixo:
|
|
type
|
indice1 = (x, y, z) ;
|
indice2 = 5..7 ;
|
|
var vetor1 : array[indice1] of real ;
|
vetor2 : array[indice2] of real ;
|
|
Sugesto de Stanley Sales. Obrigado pela contribuio! |
|
Agora o compilador consegue tratar strings como no
|
seguinte exemplo:
|
|
writeln(#9#9#9'Calculo de Funcoes Aritmeticas');
|
|
Agora possvel mover as abas dos editores, a exemplo |
do que feito nos navegadores mais modernos. Sugesto |
de Helto Borges de Faria. Obrigado pela contribuio! ;)|
|
Agora possvel arrastar arquivos que tem a extenso |
.pas do Windows Explorer para o Pascalzim, para que
|
esses arquivos sejam abertos em um editor separado.
|
Sugesto de Helto Borges de Faria. Obrigado pela
|
contribuio! ;)
|
|
Agora o Pascalzim avisa quando um arquivo aberto no
|
editor foi modificado externamente por outro programa. |
Sugesto de Daniel Silva Ferreira Bruno. Obrigado pela |
contribuio! ;)
|
|
Agora os caracteres ASCII extendidos, lidos por meio de |
read ou readkey, so compatveis com a tabela ASCII.
|
|
A execuo passo a passo no estava abrindo os arquivos |
informados na pasta 'units' do compilador. Esse
|
problema foi reportado por Helto Borges de Faria.
|
Obrigado pela contribuio! ;)
|
|
Corrigidos erros no tipo procedural. Esses problemas
|
foram reportados por Alexandre Moreira Versiani.
|
Obrigado pela contribuio! ;)
|

|
|
|
- Corrigido um erro na compilao de units, onde um
|
|
mtodo aparecia na interface mas no na implementao. |
|
Reportado por Gustavo Antoniassi. Obrigado pela
|
|
contribuio! ;)
|
|
|
|
- Corrigido um erro na leitura de reais. O compilador
|
|
estava lendo zero para valores invlidos. Reportado por |
|
Helto Borges de Faria. Obrigado pela contribuio! ;) |
|
|
|
- Corrigido um erro que ocorria quando havia um parmetro |
|
de mesmo nome de uma funo predefinida e uma chamada |
|
essa funo. Reportado por Daniel Silva Ferreira Bruno. |
|
Obrigado pela contribuio! ;)
|
|
|
|
- Corrigido um erro na marcao/remoo de breakpoints. |
|
Esse problema foi reportado por Alexandre Moreira
|
|
Versiani. Obrigado pela contribuio! ;)
|
|
|
|
- Corrigido um erro da verso anterior, que impedia a
|
|
gerao do arquivo executvel. Esse problema foi
|
|
reportado por Fbio Arago e Helto Borges de Faria,
|
|
entre outros. Obrigado pela contribuio! ;)
|
|
|
|
- Corrigido um erro na funcao 'odd', que estava
|
|
retornando um resultado incorreto para valores
|
|
negativos. Reportado por Eduardo Franzen. Obrigado pela |
|
contribuio! ;)
|
|
|
|
- Atualizado o exemplo 'InstalacaoEletrica.pas'. Agora
|
|
os componentes gui esto definidos em uma unit prpria, |
|
que pode ser reutilizada em outros programas. Esse
|
|
programa foi desenvolvido por Alexandre Moreira
|
|
Versiani. Obrigado pela contribuio! ;)
|
|
|
|
- Adicionada na pasta de exemplos o belssimo programa
|
|
RayCast. Esse exemplo um prottipo de labirinto 3D
|
|
que permite a navegao em primeira pessoa, bem ao
|
|
estilo Doom. O cdigo foi enviado por Stanley Sales.
|
|
Obrigado pela contribuio! ;)
|
|
|
|
- Adicionada na pasta de exemplos uma implementao do
|
|
jogo 'Campo Minado' usando a biblioteca graph. O cdigo |
|
foi enviado por Gustavo Antoniassi. Obrigado pela
|
|
contribuio! ;)
|
|
|
|
- Atualizada a unit 'Complexo' e includa a unit 'Math'. |
|
Cdigo escrito por Raphael Augusto. Obrigado pela
|
|
contribuio! ;)
|
|
|
|
- Adicionado ao compilador vrios exemplos da biblioteca |
|
graph. Esses programas foram escritos e cedidos por
|
|
diversas pessoas, e esto na pasta 'graph' dos
|
|
exemplos. ;)
|
|
|
|
- Corrigidos outros pequenos bugs.
|
|
|
|---------------------------------------------------------------|
|------VERSO 6.0.2 (08/05/2015) -------------------------------|
|---------------------------------------------------------------|

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

- Adicionado ao compilador o suporte ao tipo procedural.


Importante ressaltar que as funes e procedimentos
implementados pelo compilador no podem ser utilizados
com esse novo tipo. Sugesto de Helto Borges de Faria.
Obrigado pela contribuio! ;)
- A partir dessa verso o Pascalzim procura por unidades
tambm na pasta 'units' do compilador. Com essa
alterao, durante a compilao do programa, primeiro o
Pascalzim procura por uma unidade na mesma pasta do
programa. Se ela no foi encontrada ali, o compilador
procura na pasta 'units'. Sugesto de Raphael Augusto.
Obrigado pela contribuio! ;)
- Agora o Pascalzim mostra um painel contendo as funes
e procedimentos declarados no programa. Para navegar
at a declarao desse subprograma, basta clicar no
respectivo nome. ;)
- Agora possvel navegar diretamente para a declarao
de uma funo. Para isso, basta dar um clique no nome
da funo, usando o boto esquerdo do mouse, ao mesmo
tempo em que pressionada a tecla control. ;)
- Agora possvel mover um trecho de cdigo no editor.
Para isso, selecione as linhas de cdigo, depois
pressione para baixo/cima para mover as linhas para
baixo/cima. ;)
- Adicionado o boto de fechar na aba correspondente a
cada editor de cdigo.
- Adicionada a opo 'compilar' ao editor. Essa opo
acessada com o atalho ctrl+F9. A execuo passo a passo
agora iniciada com o atalho alt+F9.
- Implementadas as funes 'paramcount' e 'paramstr'.
Agora possvel informar dados para o seu programa via
linha de comando! Sugesto de Helto Borges de Faria.
Obrigado pela contribuio! ;)
- Adicionado ao compilador uma janela de dilogo para
informar os parmetros que sero informados na linha de
comando. Sugesto de Helto Borges de Faria. Obrigado
pela contribuio! ;)
- O comando 'str' agora suporta a converso de reais, e
tambm parmetros de formatao para a converso.
Sugesto de Helto Borges de Faria. Obrigado pela
contribuio! ;)
- Nessa verso o compilador verifica se as funes esto
retornando valores. Sugesto de Helto Borges de Faria.
Obrigado pela contribuio! ;)
- Nessa verso o boto 'close' da janela de console
aparece desabilitado, impedindo seu fechamento.
- Corrigido um erro envolvendo referncias circulares de

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

|
units. Reportado por Helto Borges de Faria. Obrigado
|
|
pela contribuio! ;)
|
|
|
|
- Foram reescritas as seguintes operaes com nmeros
|
|
reais: +, -, *, /, >, >=, <, <=, =, <>. Por causa da
|
|
perda de preciso dos tipos reais em C++, o resultado |
|
desses operadores no estava confivel. Esse problema |
|
foi reportado por Lucas Bortolatto e Bruno Nunes de S. |
|
Obrigado pela contribuio! ;)
|
|
|
|
- Corrigido um erro que travava o editor de cdigo.
|
|
Esse problema foi reportado por Jhonni da Silva, e
|
|
reproduzido por Alexandre Versiani. Obrigado pela
|
|
contribuio! ;)
|
|
|
|
- Corrigido um bug na leitura de strings com read/readln. |
|
Ao digitar um texto acima da capacidade da cadeia
|
|
ocorria um vazamento de memria, e o compilador tinha |
|
um comportamento inesperado. Agora, os caracteres
|
|
excedentes so ignorados. Reportado por Helto Borges de |
|
Faria. Obrigado pela contribuio! ;)
|
|
|
|
- Corrigido um erro na impresso do caractere tabulao. |
|
Esse problema foi reportado por Alexandre Versiani.
|
|
Obrigado pela contribuio! ;)
|
|
|
|
- Corrigido um erro no comando textbackground. Esse
|
|
problema foi reportado no blog por um usurio annimo, |
|
e reforado por Guilherme Resende S. Obrigado pela
|
|
contribuio! ;)
|
|
|
|
- Corrigido um erro no pareamento de parnteses do editor |
|
de cdigo. Antes, o compilador considerava parnteses |
|
dentro de cadeias e comentrios. Reportado por Helto
|
|
Borges de Faria.Obrigado pela contribuio! ;)
|
|
|
|
- Adicionada mais uma implementao do jogo Pong.
|
|
Esse cdigo foi cedido por Lyncon Gabriel Kusminski.
|
|
Obrigado pela contribuio! ;)
|
|
|
|
- Revisadas algumas funes da interface grfica.
|
|
|
|
- Efetuadas algumas otimizaes no editor de cdigo.
|
|
|
|---------------------------------------------------------------|
|------VERSO 6.0.0 (17/11/2014) -------------------------------|
|---------------------------------------------------------------|
|
|
|
- Nessa verso a interface grfica do compilador mudou! |
|
O menu e a barra de ferramentas da antiga verso foram |
|
trocados por um menu ao estilo do novo Office. ;)
|
|
|
|
- O editor do compilador foi atualizado para a verso
|
|
2.0.8 do SynEdit. Tambm, o compilador foi portado para |
|
a verso XE6 do C++ Builder. A vantagem da nova verso |
|
do SynEdit que, at ento, o Pascalzim estava usando |
|
uma verso que eu mesmo havia portado, do C++ Builder |
|
2006 para o C++ Builder 2009, porque o projeto havia
|
|
sido abandonado. Recentemente descobri que um grupo de |
|
desenvolvedores retomou o projeto, fazendo a migrao |

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

oficial. Assim, atualizei o Pascalzim com os novos


|
fontes. Graas a isso, alguns bugs do editor
|
desapareceram. Lembram-se do tab que no funcionava? ;) |
|
A janela de console agora est sendo gerenciada pela
|
aplicao. Isso foi necessrio, aps a incluso do novo |
menu. Alm disso, foi necessrio escrever do zero a
|
escrita em console, e tambm o tratamento para as
|
seguintes funes: gotoxy, wherex, wherey, clrscr,
|
clreol, textbackground, textcolor, delline, insline,
|
highvideo, lowvideo, normvideo, window
|
|
Na janela de variveis agora possvel ver o contedo |
de qualquer tipo de varivel, incluindo matrizes e
|
variveis do tipo 'record'. ;)
|
|
Nessa verso possvel entrar nas unidades durante a |
execuo passo a passo. O compilador tambm exibe os
|
valores das variveis das unidades. ;)
|
|
Atendendo a diversos pedidos, nessa verso foram
|
implementados os comandos 'label' e 'goto'. ;)
|
|
Implementados os procedimentos 'erase' e 'rename' para |
tratamento de arquivos. Sugerido por Helto Borges de
|
Faria. Obrigado pela contribuio! ;)
|
|
Implementados os comandos 'mkdir', 'rmdir', 'chdir' e |
'getdir' para tratamento de diretrios. Sugerido por um |
usurio no blog do compilador. Obrigado pela
|
contribuio! ;)
|
|
Implementados os procedimentos 'getdate' e 'gettime'
|
para recuperar a data e hora corrente.
|
|
Nessa verso o compilador aceita nmeros dos sistemas |
binrio(%), octal(&) e hexadecimal ($). Exemplo de
|
constantes:
|
|
%101 (constante binria com o valor 5)
|
&144 (constante octal com o valor 100)
|
$64 (constante hexadecimal com o valor 100)
|
|
Nessa verso uma funo pode ser chamada no lugar de um |
procedure. O compilador, nesse caso, ignora o retorno |
da funo. Sugesto de Leandro Fernandes Vieira.
|
Obrigado pela contribuio! ;)
|
|
Nessa verso o retorno de uma funo pode ser usada no |
lugar de uma expresso, como em lastElement(l1)^.data. |
Sugesto de Leandro Fernandes Vieira. Obrigado pela
|
contribuio! ;)
|
|
O compilador estava gerando executveis para unidades. |
Problema reportado por Raphael Augusto. Obrigado pela |
contribuio! ;)
|
|
Corrigido um erro envolvendo ponteiros e a declarao |
de tipos definidos pelo usurio. Reportado por Leandro |
Fernandes Vieira. Obrigado pela contribuio! ;)
|

|
|
|
- Corrigido um erro envolvendo arrays e a declarao de |
|
tipos definidos pelo usurio. Reportado por Raphael
|
|
Augusto. Obrigado pela contribuio! ;)
|
|
|
|
- Agora a posio 0 de uma string pode ser acessada.
|
|
Essa posio guarda a quantidade de caracteres que a
|
|
string contm.
|
|
|
|
- O texto e a formatao do arquivo de ajuda foram
|
|
revisados por Felipe Lus Ewald. Obrigado pelo seu
|
|
esforo, empenho e dedicao! ;)
|
|
|
|
- O arquivo de ajuda no estava abrindo o tpico correto |
|
quando a tecla F1 era pressionada. Reportado por
|
|
Lucas Cndido. Obrigado pela contribuio! ;)
|
|
|
|
- Adicionado aos programas de exemplo um belssimo jogo: |
|
Operao Taiga. O jogo foi desenvolvido por Guilherme |
|
Resende S. Obrigado pela contribuio! ;)
|
|
|
|
- Adicionado aos programas de exemplo uma implementao |
|
do game Snake. O jogo foi desenvolvido por Guilherme
|
|
Resende S. Obrigado pela contribuio! ;)
|
|
|
|
- Adicionado aos programas de exemplo uma implementao |
|
de quebra cabea. O jogo foi desenvolvido Raphael
|
|
Augusto. Obrigado pela contribuio! ;)
|
|
|
|
- Adicionado aos programas de exemplo uma implementao |
|
do jogo da vida. O jogo foi desenvolvido Joo Lucas de |
|
Oliveira Torres. Obrigado pela contribuio! ;)
|
|
|
|
- Adicionado aos programas de exemplo um novo editor de |
|
desenhos. Esse programa foi desenvolvido por Hugo Deir.|
|
Obrigado pela contribuio! ;)
|
|
|
|
- Corrigido uma srie de pequenos bugs. Esses erros
|
|
foram reportados por Helto Borges de Faria e Alexandre |
|
Versiani. Obrigado pela contribuio! ;)
|
|
|
|---------------------------------------------------------------|
|------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 executvel 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 caractere. 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.
|
|
Adicionado aos programas de exemplo um belssimo jogo: |
Operao Taiga. O jogo foi desenvolvido por Guilherme |
Resende S. Obrigado pela contribuio! ;)
|
|
Adicionado aos programas de exemplo um jogo de quebra |
cabea. O jogo foi desenvolvido Raphael Augusto.
|
Obrigado pela contribuio! ;)
|
|

|
- 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 clusula 'uses'. ;)
|
|
|
|
- Importante: O arquivo contendo as unidades usadas pelo |
|
programa Pascal deve 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 |
|
adicionado 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. ;)
|
|
|
|
- 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:
|
|
|
|
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));|
|
|
|
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 uma funo era
|
|
usada como resultado da expresso de fim de um for.
|
|
Esse 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(+), interseco(*), 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
|
|
indentao 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 blocos 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. No 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 contedo 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-definidas 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 verso 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 implementao 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 opo |
|
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. ;)
|
|
|
|
- Adicionados 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 comentrios
|
|
=> Amenizado SRIO problema de lentido do editor
|
|
para programas muito extensos.
|
|
|
|
- Corrigido um SRIO problema com o comando 'val',
|
|
quando chamado com variveis 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 parmetros de tipo
|
|
definido para funes. 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
|
|
parnteses (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 utilitrio 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 avaliao 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 sobrescrever 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 seguintes tipos predefinidos:
|
|
- integer
|
|
- char
|
|
- boolean
|
|
- real
|
|
- string
|
|
|
|
- Admite os seguintes tipos inteiros:
|
|
- byte
|
|
- shortInt
|
|
- word
|
|
- longInt
|
|
|
|
- Permite a utilizao dos seguinte tipos estruturados: |
|
- vetor (array)
|
|
- registro (record)
|
|
- enumerao
|
|
- conjunto (set)
|
|
- ponteiro (^)
|
|
- procedurais (function e procedure)
|
|
|
|
- Permite o uso de arquivos nos seguintes formatos:
|
|
- texto (text)
|
|
- binrio (file of)
|
|
|
|
- Admite as seguintes constantes:
|
|
- inteiras
|
|
- reais
|

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

- lgicas (true, false)


- 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:
- Atribuio
- Estruturas de repetio:
- for .. to
- for .. downto
- repeat
- while
- Estruturas condicionais:
- if .. then
- if .. then .. else
- case
- Comandos para manipulao de arquivos:
- append
- assign
- close
- erase
- filepos
- filesize
- ioresult
- rename
- reset
- rewrite
- seek
- Comandos para manipulao de ponteiros:
- dispose
- new
- Comandos para entrada e sada de dados:
- read
- readln
- write
- writeln
- Comandos de desvio:
- break
- continue
- exit
- goto
- Outros comandos, nativamente implementados:
- chdir
- clreol
- clrscr
- cursoroff
- cursoron
- dec
- delay
- delete
- delline
- erase
- getdir
- gotoxy
- highvideo

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

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

inc
insert
insline
lowvideo
mkdir
normvideo
randomize
rename
rmdir
str
textbackground
textcolor
val
window
with

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Reconhece seguintes funes, nativamente implementadas: |
- abs
|
- arctan
|
- chr
|
- concat
|
- copy
|
- cos
|
- eof
|
- eoln
|
- exp
|
- frac
|
- filesize
|
- filepos
|
- freemem
|
- getmem
|
- int
|
- keypressed
|
- length
|
- ln
|
- odd
|
- ord
|
- paramcount
|
- paramstr
|
- pos
|
- pred
|
- random
|
- readkey
|
- round
|
- seek
|
- sin
|
- sizeof
|
- sqr
|
- sqrt
|
- str
|
- succ
|
- trunc
|
- upcase
|
- wherex
|
- wherey
|
|
- Reconhece as seguintes funes da biblioteca graph:
|
- Arc
|
- Bar
|
- Bar3D
|

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

Circle
ClearDevice
ClearViewPort
CloseGraph
DetectGraph
DrawPoly
Ellipse
FillEllipse
FillPoly
FloodFill
GetArcCoords
GetAspectRatio
GetBkColor
GetColor
GetDefaultPalette
GetDriverName
GetFillPattern
GetFillSettings
GetGraphMode
GetImage
GetLineSettings
GetMaxColor
GetMaxMode
GetMaxX
GetMaxY
GetModeName
GetModeRange
GetPalette
GetPaletteSize
GetPixel
GetTextSettings
GetViewSettings
GetX
GetY
GraphDefaults
GraphErrorMsg
GraphResult
ImageSize
InitGraph
Line
LineRel
LineTo
MoveRel
MoveTo
OutText
OutTextXY
PieSlice
PutImage
PutPixel
Rectangle
RestoreCrtMode
Sector
SetActivePage
SetAllPalette
SetAspectRatio
SetBkColor
SetColor
SetFillPattern
SetFillStyle
SetGraphBufSize

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

|
- SetGraphMode
|
|
- SetLineStyle
|
|
- SetPalette
|
|
- SetRGBPalette
|
|
- SetTextJustify
|
|
- SetTextStyle
|
|
- SetUserCharSize
|
|
- SetViewPort
|
|
- SetVisualPage
|
|
- SetWriteMode
|
|
- TextHeight
|
|
- TextWidth
|
|
|
|
- Reconhece os seguintes tipos da biblioteca graph:
|
|
- ArcCoordsType
|
|
- FillPatternType
|
|
- FillSettingsType
|
|
- LineSettingsType
|
|
- PaletteType
|
|
- PointType
|
|
- TextSettingsType
|
|
- ViewPortType
|
|
|
|
- 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
|
|
|
|
- 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.
|
|
|
|
- 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.
|
|
|
|
- Edward Lucio Vieira Borba, tambm formado em Cincia da |
|
Computao pela Universidade de Braslia, e criador da |
|
ferramenta Facc, que foi utilizada para gerar o
|
|
Analisador Sinttico e o esqueleto do Analisador
|
|
Semntico do compilador. Foi essa ferramenta que
|
|
permitiu a criao e a evoluo do Pascalzim.
|
|
|
|
- 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!
|
|
|
|
- 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.
|
|
|
|
- Ao colega Ao colega Helto Borges de Faria, pela
|
|
importante ajuda com sugestes e realizao de testes |
|
visando identificar problemas que exigiam um grau de
|
|
anlise muito especfico e peculiar. Sua contribuio |
|
foi essencial no somente para o lanamento da verso |
|
6.0.0 do compilador, mas tambm de diversas verses que |
|
a sucederam.
|
|
|
|
- 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 todos os professores, |
|
alunos e pessoas que utilizaram (e esto utilizando :) |
|
o compilador para fins educacionais e que, de
|
|
alguma forma, contriburam 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-vindas!
|
|
|
|
Encontrou um bug? Por favor, no deixe de avisar!
|
|
|
|
Envie um email para: pascalzim@yahoo.com.br
|
|
|
#===============================================================#

Você também pode gostar