Programming and Compilers

In 2004 appeared Modula-2 compiler, which is on efficiency and quality surpassed all high-level language compilers, available at the time of the software market for personal computers. Unfortunately, even vusloviyah capitalist market the best product does not always win, and the package remained in the shadow of more publicized Turbo Pascal and C. In 2007, clarified the basic concept of JPI – focus on multilingual programming. This year, were released C compilers, Pascal and Modula-2, working in the general programming environment, complemented by powerful means of interaction. Unfortunately, that release contained too many errors and correcting them took too much time.

This book describes the implementation of programming TopSpeed V.3.02 latest release, which fixed all the errors identified during the operation of previous versions and polished many of the ideas and technologies that were first used by J Pi and largely determined the development of compilers in the 90s (eg, optimizing compilers, passing parameters in registers instead of the traditional stack). Recently, by the way, optimizing linker technology was sold to Clariori, which also went right to use the trademark TopSpeed. In this particular version of the package is a modern environment development of programs in different programming languages with advanced tools preprocessor (using pragmas in Ada style to control the compiler and linker). These funds overcome incompatibility of libraries and object files created by different compilers. In a medium TopSpeed you can create a program written in C, C + +, Modula-2 or Pascal, using a library of graphical functions TurboSi and some math library, written and compiled in FORTRAN. Pragma one you choose the transmission parameters – through the registers (can be set through what) or through the stack (from left to right or right to left), another -Name prefixes specify the procedures in the object file, etc. Special mention should be possible optimization.

Package Builder allows you to turn into an executable file only those procedures, variables and constants of the library or object files that are actually invoked in the program that significantly reduces code size and making it more efficient. Efficiency of the code also defines the default mode of transmission parameters in registers and the use of registers for storing variables during program execution. The compiler is actively working with registers, sometimes it does not allocate memory for the variables described, if it can store them in registers. In addition, used by almost all the commands of the processor, but even experienced programmers in assembly language using only part of the team, reducing the potential effectiveness of the code. The package supports TopSpeed ANSI standards for C and C + +. Implementation of Modula-2 is much broader than that described by Niklaus Wirth standard, in particular, TopSpeed Modula-2 has an object-oriented extension (the objects are compatible with C + +). Package allows you to create executable files, library files and dynamic link libraries (DLL) for MS DOS, Windows and OS-2, a powerful debugger and a lot of tools to facilitate the work.