Cours using GNU Modula-2 pdf, tutoriel & guide de travaux pratiques en pdf.
Using GNU Modula-2
This document contains the user and design issues relevant to the Modula-2 front end to gcc. Throughout this document the GNU Modula-2 front end is often referred to as ‘gm2-1.0’ or ‘gm2’ for short. This corresponds to GCC version 4.1.2 and GNU Modula-2 version 1.0.
1.1 What is GNU Modula-2 GNU Modula-2 is a front end http://gcc.gnu.org/frontends.html for GCC. GCC is a retargetable C compiler which has been ported to a large number of architectures and operating systems. GNU Modula-2 utilizes the back end of GCC and replaces the C language front end with a Modula-2 front end. Consequently GNU Modula-2 has been built on i86 GNU/Linux, i86 BSD, Opteron LP64 GNU/Linux and sparc GNU/Linux systems. It has also been built as a cross compiler for MinGW, StrongARM GNU/Linux and ATMega8 microprocessor. The GNU Modula-2 compiler is compliant with four dialects of Modula-2. The language as deﬁned in ’Programming in Modula-2’ 2nd Edition, Springer Verlag, 1982, 1983 by Niklaus Wirth (PIM2), ’Programming in Modula-2’, 3rd Corrected Edition, Springer Verlag, 1985 (PIM3) and ’Programming in Modula-2’, 4th Edition, Springer Verlag, 1988 (PIM4) http://freepages.modula2.org/report4/modula-2.html and the ISO Modula2 language as deﬁned in ISO/IEC Information technology – programming languages – part 1: Modula-2 Language, ISO/IEC 10514-1 (1996) (ISO). There are currently three sets of libraries. The ’Programming in Modula-2’ libraries, the ’University of ULM libraries’ and the ISO libraries. The ISO libraries are still being written, however all deﬁnition modules for the three library sets are contained within this document.
Why use GNU Modula-2
This section is not designed to generate a language war, but rather map out some of the advantages of using GNU Modula-2 rather than translate Modula-2 sources into another language. It is expected that the primary purpose of GNU Modula-2 will be to compile legacy code. Currently there are only a few commercial Modula-2 compilers being actively maintained. Code which was written ten or ﬁfteen years ago may still be compiled by older commercial (possibly unmaintained) compilers. While the 32 bit x86 remains these compilers presumably can be run in compatibility mode (some compilers only produced 16 bit code). Time is running out as the computing industry is switching to 64 microprocessors. While x86 emulation or 16 bit backwards compatibility is always possible it has some serious drawbacks. In order for the older source to run natively the source code will either have to be translated into another high level language or alternatively a Modula-2 compiler which can target these new generation of microprocessors will have to be acquired. GNU Modula-2 builds and passes all its regression tests on Debian Pure 64 (LP64 architecture), 64 bit Solaris, 32 bit x86 GNU/Linux (Suse, Debian, stable and unstable) and 32 bit x86 FreeBSD. GNU Modula-2 has also been conﬁgured as a cross compiler for embedded microprocessors such as the ATMega8 and StrongArm.