Clever Geek Handbook
πŸ“œ ⬆️ ⬇️

GNU Pascal

GNU Pascal is a free Pascal compiler for 32/64-bit platforms, part of the GNU family of compilers. Implemented as a frontend to GCC (Gnu Compiler Collection), but is not part of it.

GNU Pascal
Type ofcompiler
DeveloperGNU Project
operating systemcross-platform
Hardware platformcross-platform
LicenseGPL
Sitegnu-pascal.de

Benefits:

  • Combining Pascal Cleanliness with Real-Time Programming Techniques
  • Support for the standard and extended Pascal suite in accordance with ISO, ANSI and IEEE (ISO 7185: 1990, ISO / IEC 10206: 1991, ANSI / IEEE 770X3.160-1989).
  • Support for other Pascal standards (UCSD Pascal, Borland Pascal, parts of Borland Delphi, Mac Pascal and Pascal-SC) taking into account the principle of reasonableness and elegance.
  • May be licensed under GNU .
  • Generates code and works on any computer that has GNU C. (And this is almost any 32-bit or more bit platform for almost any OS: from DOS to HURD ).

Content

Supported Platforms

  • ix86-gnu (GNU Hurd)
  • ix86-linux (Linux 2.x, ELF)
  • i486-linuxaout
  • i486-linuxoldld
  • i386-freebsd1.2.0
  • AIX 4.2.1
  • AIX 4.3
  • DJGPP V2 (Dos)
  • EMX 0.9B (OS / 2, Dos)
  • Cygwin32 beta20 and higher (MS-Windows95 / 98, MS-Windows NT)
  • mingw32 (MS-Windows95 / 98, MS-Windows NT)
  • MSYS (MS-Windows)
  • mips-sgi-irix5.3
  • mips-sgi-irix6.5
  • sun-sparc-sunos4.1.4
  • sparc-sun-solaris2.x
  • sun-sparc-solaris 2.5.1
  • sun-sparc-solaris 2.6
  • sun-sparc-solaris 7
  • sun-sparc-solaris 8
  • alpha-unknown-linux
  • alpha-dec-osf4.0b
  • s390-ibm-linux-gnu

Operating System Support

  • GNU Hurd,
  • Linux on Intel, Alpha, S390, and all other supported hardware types,
  • BSD Family: FreeBSD, NetBSD, OpenBSD,
  • DOS in 32 bit mode using DJGPP or EMX ,
  • MS-Windows 9x / NT using Cygwin or MinGW or MSYS ,
  • OS / 2 using EMX ,
  • Mac OS X
  • MIPS-SGI-IRIX,
  • Alpha-DEC-OSF,
  • Sparc - Sun - Solaris ,
  • HP / UX

It can serve as a cross-compiler , transferring code between these systems. Generates very high quality code for all of these systems. It is free software in accordance with GNU . Compatible with other debugging and development tools such as GNU C, gdb , etc.

Language Construct Support

  • From standard Pascal: Many compilers extend the syntax of standard Pascal, realizing, however, the source is not completely, missing very important points:
    • Support for arrays as parameters of a procedure / function in the form
      Arr: array [a..b] of Integer;
      where a and b indicate the beginning and end of the Arr array.
    • The ability to pass local procedures as parameters with full access to all variables of the parent procedure.
    • Automatic file extending the capabilities of Put and Get procedures.
    • Eight boolean elements packed in an array or structure occupy exactly 1 byte.
    • Support for temporary files: you do not need to think about the file name and delete it later.
    • Global goto: You can go anytime, anywhere, not limited to the current procedure.
    • Automatically configure options and record options in New.
    • Set without size restrictions.
  • From Extended Pascal:
    • Lines of unlimited length.
    • ReadStr, WriteStr - writing and reading to a string, like WriteLn, ReadLn.
    • System independent time / date routines.
    • Iterations over the set:
      for Ch in ['A' .. 'Z', 'a' .. 'z'] do ...
    • Extended set support.
    • Creation of Succ and Pred-functions: Foo: = Succ (Bar, 5);
    • Complex numbers
    • Power operators with complex numbers support
    • Initialization of Variables
    • Functions can return arrays and structures
    • Module support
    • Non-decimal style support: base # number
    • MinReal, MaxReal, EpsReal, MaxChar - constants
    • Support for dynamic arrays without dirty tricks
    • Local parameters can be set only at the entrance to the procedure size (dynamic size)
    • Access only to the part of the array on the left side of the assignment
      Arr1(3..5) := Arr(4..6);
  • From Borland Pascal:
    • Support for units, objects , etc. Even absolute style tricks are made portable.
    • Support for a full set of standard units
    • Support for network CRT: the program can run on one computer, and the result of its work can be seen on another, there is also support for overlapping windows
    • The Random procedure even produces the same sequence of random numbers as BP Random ()
    • BP style procedural variables support
    • Support for arrays and procedures that allow access to I / O ports of the processor
    • Distributed with binobj program running like BP
  • From Delphi
    • Abstract types and methods
    • Comments in the style of //
    • Empty parameter list: ()
    • Assertions Support
    • Initialize and Finalize to manage low level variables
    • Initialize and Finalize sections for modules
  • From Pascal-SC
    • User Defined Operators For example, adding vectors with the simple + operator.
  • GNU extensions:
    • 64-bit signed and unsigned integer types
    • Code execution support for other programming languages
    • Pascal code insertion into other programming languages
    • Support for BitSizeOf (), ConvertFromBigEndian () , etc. procedures to increase portability of programs to other platforms
    • Support for DirSeparator, PathSeparator, GetTempDirectory will make the program more portable
    • PExecute - portable program launch for multi-tasking systems
    • Functions FSplit, FSearch, FExpand - know about the features of the OS
    • FormatTime - gives out time according to certain rules

See also

  • Free pascal
  • Gcc

Links

  • GNU Pascal Website
  • Standard Pascal - Related materials and history of the original, standard Pascal language
  • Pascal User's Group Newsletters - A resource on the early history of the language, containing many letters from Wirth and other developers regarding the Pascal language
  • Pascal and its Successors - Nicklaus Wirth's article on developing the Pascal, Modula-2, and Oberon languages
Source - https://ru.wikipedia.org/w/index.php?title=GNU_Pascal&oldid=88169460


More articles:

  • Eritovka (Millerovsky District)
  • Kluchkovka
  • Trumps (Rostov region)
  • Macaroni (film)
  • Johvi (parish)
  • Dzhambul Regional Committee of the Communist Party of Kazakhstan
  • Khalilov, Farhad Kurban oglu
  • Kasyanovka (Millerovsky District)
  • Memetika
  • Loureiro, Luis

All articles

Clever Geek | 2019