Daniar Hussain

Maciej Nicewicz

29 November 1998

 

Final Thoughts on

VTL PCAL (Parser/Compiler/Assembler/Linker)

 

            This project was an immense undertaking, and what first seemed insurmountable now seems trivial.  Writing the VTL compiler was probably the largest and most complicated computing project either of us had done.  In order to complete this project, we had to refresh our knowledge of the Intel 8086 assembler, and to come to full understanding of the IBM-PC architecture.

            As work on the compiler progressed, many unforeseen issues arose, while things that at first seemed difficult to accomplished ended up very easy.  But we thinks this unpredictability is at the heart of every creative process, computer science not exempted.  We feel it is this unpredictability that makes computing so exciting.  (You won’t believe how excited we were when we got it to do ‘2 plus 2’!)  Through the creation process, numerous bugs and logical misconceptions during previous steps were spotted and corrected.  Bugs continuously slowed us down, sometimes even sending us a couple of steps backwards.  However, as the end of the project neared, we found ourselves experienced enough to foresee mistakes before they were committed.  We leave this project more experienced and with a deeper appreciation of the complexity of writing real software.

As closing statements, we would like to reference all of those resources that were essential to our success.  The debug program that comes with every DOS machine was an indispensable tool that was used (and cursed) throughout this project.  Instrumental to our understanding of this powerful tool was a wonderful Assembler Tutorial written by Hugo Perez, and published on the WWW.  Several other print sources were vital to our understanding.  Among them include PC Programmers Bible by Peter Norton and Assembly Language Step-by-Step by Jeff Duntemann.

            In addition, despite our bitter feelings towards Microsoft in general, we found the Microsoft Visual C++ compiler version 1.0 a convenient tool for compilation of 16-bit assembly code.  (All later versions compile in 32-bits only.)  The Microsoft Binary Editor was another useful tool that eased our creation process.

            The syntax for VTL conforms to the standards discussed in class and presented on the assignment sheet.  The real data-type (and sqrt) was the only command that was not completely implemented.  Intel processors beginning with the 80386 have built-in math coprocessors that support real instruction sets.  We did not feel that this shortcomings was significant since implementing reals exactly parallels the code for integers.