FACTOID # 112: Don't start a company in Australia. More than 20% of the tax collected in Australia is corporate income tax.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Free Pascal
Free Pascal Compiler

Free Pascal being operated via the command line on cygwin
Developer: Volunteers
Latest release: 2.0.4 / August 2006
OS: Cross-platform
Use: Compiler
License: GPL
Website: www.freepascal.org
The FreePascal IDE for Linux. The computer was being prepared to be used in 2002 National Olympiad in Informatics, China
Enlarge
The FreePascal IDE for Linux. The computer was being prepared to be used in 2002 National Olympiad in Informatics, China

Free Pascal (or FPK Pascal or even FPC Pascal) is a portable, open source Pascal compiler. Image File history File links FPC_Command_Line. ... It has been suggested that this article or section be merged with Command prompt. ... Cygwin is a collection of free software tools originally developed by Cygnus Solutions to allow various versions of Microsoft Windows to act somewhat like a Unix system. ... Software development is the translation of a user need or marketing goal into a software product. ... One Brick volunteers help at a soup kitchen. ... A software release refers to the creation and availability of a new version of a computer software product. ... To meet Wikipedias quality standards, this article or section may require cleanup. ... A cross-platform (or platform independent) programming language, software application or hardware device works on more than one system platform (e. ... A diagram of the operation of a typical multi-language, multi-target compiler. ... A software license is a legal agreement which may take the form of a proprietary or gratuitous license as well as a memorandum of contract between a producer and a user of computer software. ... The GNU logo The GNU General Public License (GNU GPL or simply GPL) is a widely used free software license, originally written by Richard Stallman for the GNU project. ... This page as shown in the AOL 9. ... Image File history File linksMetadata Download high resolution version (1360x1020, 710 KB) Summary FreePascal IDE The computer is being prepared to be used in 2002 National Olympiad in Informatics. ... Image File history File linksMetadata Download high resolution version (1360x1020, 710 KB) Summary FreePascal IDE The computer is being prepared to be used in 2002 National Olympiad in Informatics. ... The National Olympiad in Informations (NOI) is an annual informatics competition for secondary school students. ... Open source refers to projects that are open to the public and which draw on other projects that are freely available to the general public. ... Pascal is an imperative computer programming language, developed in 1970 by Niklaus Wirth as a language particularly suitable for structured programming. ... A diagram of the operation of a typical multi-language, multi-target compiler. ...

Contents

Introduction

Free Pascal is a 32/64-bits multi-CPU architecture and multi-Operating System compiler. The compiler implements the Borland Pascal dialects (Turbo Pascal and Delphi) as well as some MacPascal constructs and is available for most common operating systems. To a large extent, the design of a CPU, or central processing unit, is the design of its control unit. ... To meet Wikipedias quality standards, this article or section may require cleanup. ... A diagram of the operation of a typical multi-language, multi-target compiler. ... Pascal is an imperative computer programming language, developed in 1970 by Niklaus Wirth as a language particularly suitable for structured programming. ... Turbo Pascal 3. ... Delphi is the primary programming language of Borland Delphi. ... In computing, an operating system (OS) is the system software responsible for the direct control and management of hardware and basic system operations. ...


Free Pascal used to be known as FPK Pascal, since FPK are the initials of the author, Florian Paul Klämpfl. FPK Pascal never meant "Free Pascal Kompiler" though a lot of people thought so. Writing "Compiler" with K is uncommon in German anyway. At the end of 1997, the name of the project was changed into Free Pascal Compiler (FPC) to avoid this confusion and because more and more people did contribute.


FPC is a reasonably well documented project, with manuals having 1800 pages in total.


The visual parts of the Delphi libraries (the VCL) and the creation of a visual IDE and RAD are part of a separate project, Lazarus. In computing, VCL (Visual Component Library) is a visual component-based framework for developing Microsoft Windows applications, developed by Borland for use in its Delphi and C++Builder software development environment. ... An integrated development environment (IDE), also known as integrated design environment and integrated debugging environment, is a type of computer software that assists computer programmers in developing software. ... // [edit] History Application Development refers to the developing of programming applications and differs from programming itself in that it has a higher level of responsibility, including for requirement capturing and testing. ... This article concerns the software IDE named Lazarus. ...


Free Pascal comes with a text mode IDE resembling Turbo Pascal's IDE. This IDE deteriorated for some time because of a missing maintainer, but in a common effort in the second half of 2005 and the first months of 2006, most major bugs were fixed and the IDE became release-worthy again.


Like Turbo Pascal and Delphi, Free Pascal has excellent support for integration of assembly language in the Pascal code. FPC even supports multiple architectures and notations in the internal assembler. Turbo Pascal 3. ... Delphi is the primary programming language of Borland Delphi. ... To meet Wikipedias quality standards, this article or section may require cleanup. ...


Language dialect

FPC adopted the de facto standard dialects of Pascal programmers: the Borland dialects. (Specifically: Borland Pascal 7 and Delphi 2 for version 1.0.x, and for version 2.0.x the target versions for the Delphi compatibility changed to 6/7).


However the project has a compilation mode concept, and the team made clear that it would incorporate working patches for the ANSI/ISO standardised dialects to create a standards compliant mode.


Also, a small effort has been made to support some of the Apple Pascal syntax, to ease interfacing to Mac OS (X).


Missing Delphi functionality

  • Delegation using the "implements" keyword
  • Automatic COM IDispatch dual interfaces (dispinterfaces)
  • dispid in normal interfaces
  • packages: compiler supported import/export of classes from/to shared libraries (useful for e.g. Lazarus, which implements packages of components)
  • set types can have different size.

Component Object Model (COM) is a Microsoft platform for software componentry introduced by Microsoft in 1993. ... This article concerns the software IDE named Lazarus. ...

History

The early years

Free Pascal emerged when Borland made clear there would be no Borland Pascal 8, and the next version would be a Windows-only product (which turned out to become Delphi later on), and a student (Florian Paul Klämpfl) started working on his own compiler. The compiler was written in the (Borland) Turbo Pascal dialect from the start and produced 32-Bit code for the go32v1 DOS extender used and developed by the DJGPP project at this time. Originally the compiler itself was a 16-bit Dos executable compiled by Turbo Pascal. After two years, the compiler was able to compile itself so it became 32-bit too. Borland Software Corporation is a software company headquartered in California. ... Turbo Pascal, also known as Borland Pascal, is a cheap and powerful IDE for the DOS environment. ... Borland Software Corporation is a software company headquartered in California. ... Turbo Pascal 3. ... DOS extender is the name invented in the 1980s for a technology to allow programs started from MS-DOS, which ran in Real mode, to actually run in protected mode. ... DJGPP is a 32-bit C/C++ development system for 386 and above PCs that runs under DOS (it will also work in a DOS window from within an operating system that supports DOS windows, such as Windows). ... In computer science, 16-bit is an adjective used to describe integers that are at most two bytes wide, or to describe CPU architectures based on registers, address buses, or data buses of that size. ... Turbo Pascal 3. ... Bootstrapping is a term used in computer science to describe the techniques involved in writing a compiler (or assembler) in the target programming language which it is intended to compile. ... 32-bit is a term applied to processors, and computer architectures which manipulate the address and data in 32-bit chunks. ...


Expansion

The initial 32-bit compiler was published on the net, and the first contributors joined the project. In the years after publishing on the Internet, a Linux port was made by Michael van Canneyt (a full 5 years before Kylix), the DOS port was adapted for use in OS/2 through the EMX extender. The DOS version also improved gradually, and migrated to the go32v2 extender. This culminated in the 0.99.5 release that was much more widely used than the versions before, and the last release aiming only for Turbo Pascal compliance: later releases would add a Delphi compatibility mode. 0.99.5 was also ported to systems using a 680x0 CPU. Kylix is a Linux version of the Borland Corporations Delphi and C++ Builder development environments for Microsoft Windows. ... The Motorola 680x0/0x0/m68k/68k/68K family of CISC microprocessor CPU chips were 32-bit from the start, and were the primary competition for the Intel x86 family of chips. ...


With 0.99.8, the Win32 target was added, and a start was made with incorporating some Delphi features. Stabilising for a 1.0 release started, and this milestone was reached in July 2000. The 1.0.x series (and the bug-fix/stabilisation releases that followed, last, 1.0.10 in July 2003) was widely used, both as an enterprise and educational tool. For the 1.0.x releases, the port to 680x0 CPUs was redone, and the compiler produces stable code for a number of 68k Unixes and AmigaOS. Unix or UNIX is a computer operating system originally developed in the 1960s and 1970s by a group of AT&T employees at Bell Labs including Ken Thompson, Dennis Ritchie, and Douglas McIlroy. ... AmigaOS is the default native operating system of the Amiga personal computer. ...


The Next Generation

During the stabilisation of what would become 1.0.x, and specially when porting to the m68k systems, it was clear the design of the code generator was far too limited in many ways. The two most principal problems were that adding processors basically meant rewriting the code generator, and that the register allocation was based on a principle (always keep 3 free registers between building blocks) that was hard to maintain and inflexible.


For these reasons, FPC 1.1.x branched from the 1.0.x main branch in December 1999. At first, changes were mostly cleanups and rewrite/design to all parts of the compiler, and then the code generator and register allocator were rewritten. As a bonus, remaining missing Delphi compatibility was added.


The work on 1.1.x continued slowly but steadily, and in late 2003 the PowerPC port started working, followed by ARM and Sparc ports in summer/fall 2004. The AMD64 port followed in early 2004. The AMD64 port effectively made the compiler 32/64-bit.


In November 2003, a first beta release of the 1.1.x branch was packaged, and for the occasion, the version number was upped to 1.9.0. These were followed quickly by 1.9.2 and 1.9.4. 1.9.4 was special because it was the first version with Mac OS X support.


The work continued with 1.9.6 (Jan. 2005), 1.9.8 (late Feb. 2005), 2.0.0 (May 2005), 2.0.2 (Dec. 2005)., and 2.0.4 (Aug. 2006).


The future

Currently, the following features are missed most dearly. The features with (*) are currently actively being worked on in the 2.1.x branch.

  • Create/improve the COM/OLE support. This has multiple facets:
    • COM compatible interfaces/vmt
    • (OLE)Variants (needed for OLE)
    • implements style delegation (*)
  • Linking/debug/file formats related:
    • Improve smart linking (get rid of .a files, less memory use) (*) - wince/32/64 only.
    • Improved "packages" and dynamic libraries (PIC!) support in general.
    • Improve cross linking. (*)
    • stabs->dwarf crossover. (*) - 64-bit platforms first.
    • Some form of Kylix compatible resources. (Still under discussion)
  • Apple Pascal related
    • Being able to pass a subprocedure to a different procedure as a procvar.

Some of these target functionality (specially in the linking section) might require restructures related to:

  • Introduction of an internal linker for some core platforms. (Removing the external linker, LD) (*) - wince/32/64 only.
  • Rewrite of module (unit) handling, postponed to post 2.2

Targets

The FPC compiler's availability depends on the major version.


Version 2.1.x (development version)

Microsoft Windows is a range of commercial operating environments for personal computers. ... Mac OS X (official IPA pronunciation: ) is a line of proprietary, graphical operating systems developed, marketed, and sold by Apple Computer, the latest of which is pre-loaded on all currently shipping Macintosh computers. ... IBM PowerPC 601 Microprocessor PowerPC is a RISC microprocessor architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM. Originally intended for personal computers, PowerPC CPUs have since become popular embedded and high-performance processors as well. ... Windows CE (sometimes abbreviated WinCE) is a variation of Microsofts Windows operating system for minimalistic computers and embedded systems. ... This article or section does not cite its references or sources. ...

Version 2.0.x

The current stable version 2.0.4 supports the following


Processors: CPU redirects here. ...

Operating systems: It has been suggested that this article or section be merged with X86 assembly language. ... Intel 80386 DX, 33MHz, foreground The Intel 80386 is a microprocessor which was used as the central processing unit (CPU) of many personal computers from 1986 until 1994 and later. ... AMD64 Logo AMD64 (also x86-64 or x64) is a 64-bit microprocessor architecture and corresponding instruction set designed by Advanced Micro Devices. ... IBM PowerPC 601 Microprocessor PowerPC is a RISC microprocessor architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM. Originally intended for personal computers, PowerPC CPUs have since become popular embedded and high-performance processors as well. ... The ARM architecture (previously, the Advanced RISC Machine, and prior to that Acorn RISC Machine) is a 32-bit RISC processor architecture that is widely used in a number of embedded designs. ... Sun UltraSPARC II Microprocessor Sun UltraSPARC T1 (Niagara 8 Core) SPARC (Scalable Processor ARChitecture) is a pure big-endian RISC microprocessor instruction set architecture originally designed in 1985 by Sun Microsystems. ...

Linux (also known as GNU/Linux) is a Unix-like computer operating system. ... FreeBSD is a Unix-like free operating system descended from AT&T UNIX via the Berkeley Software Distribution (BSD) branch through the 386BSD and 4. ... Mac OS X (official IPA pronunciation: ) is a line of proprietary, graphical operating systems developed, marketed, and sold by Apple Computer, the latest of which is pre-loaded on all currently shipping Macintosh computers. ... Hexley, the mascot of Darwin Darwin is a free, open source, Unix-like operating system first released by Apple Computer in 2000. ... Mac OS, which stands for Macintosh Operating System, is a series of graphical user interface-based operating systems developed by Apple Computer for their Macintosh line of computer systems. ... ‹ The template below has been proposed for deletion. ... Windows API is a set of APIs, (application programming interfaces) available in the Microsoft Windows operating systems. ... To meet Wikipedias quality standards, this article or section may require cleanup. ... NetWare is a network operating system developed by Novell, Inc. ...

Version 1.0.x

The previous stable release 1.0.x was available for processors CPU redirects here. ...

and supported the following operating systems Intel 80386 DX, 33MHz, foreground The Intel 80386 is a microprocessor which was used as the central processing unit (CPU) of many personal computers from 1986 until 1994 and later. ... The Motorola 680x0, 0x0, m68k, or 68k family of CISC microprocessor CPU chips were 32-bit from the start, and were the primary competition for the Intel x86 family of chips. ... To meet Wikipedias quality standards, this article or section may require cleanup. ...

and the beta platforms: Linux (also known as GNU/Linux) is a Unix-like computer operating system. ... FreeBSD is a Unix-like free operating system descended from AT&T UNIX via the Berkeley Software Distribution (BSD) branch through the 386BSD and 4. ... NetBSD is a freely redistributable, open source version of the Unix-like BSD computer operating system. ... ‹ The template below has been proposed for deletion. ... Windows API is a set of APIs, (application programming interfaces) available in the Microsoft Windows operating systems. ... To meet Wikipedias quality standards, this article or section may require cleanup. ... The original Amiga 1000 (1985) with Commodore 1080 monitor The Amiga is a family of home/personal computers originally developed by Amiga Corporation as an advanced home entertainment and productivity machine. ...

BeOS is an operating system for personal computers which began development by Be Incorporated in 1991. ... OpenBSD is a freely available Unix-like computer operating system descended from Berkeley Software Distribution (BSD), a Unix derivative developed at the University of California, Berkeley. ... SunOS was the version of the UNIX operating system developed by Sun Microsystems for their workstations and server systems until the early 1990s. ... QNX (pronounced either Q-N-X or Q-nix) is a commercial POSIX-compliant Unix-like real-time operating system, aimed primarily at the embedded systems market. ...

See also

Free software Portal
  • Lazarus, a RAD (Rapid Application Development) IDE (Integrated Development Environment)

Image File history File links Portal. ... This article concerns the software IDE named Lazarus. ...

External links

Wikibooks
Wikibooks has more about this subject:
Programming:Pascal
  • Free Pascal
  • Lazarus, a RAD for FPC
  • FPC on Mac -- Status page for FPC to Classic Mac OS ports. (Mac OS X port is done by the FPC Unix crew)
  • Introduction to Free Pascal 2.0, by Daniël Mantione, with in-depth introduction to the new version and a bit of its development history.
  • CrossFPC - a free toolkit to integrate the Free Pascal compiler, targeting various OS and hardware platforms, into the Borland Delphi IDE. See more about it from this mailing list discussion.
  • FPS complete Win32 based IDE for FPC, including debugger (trace, breakpoint and watch windows)
  • DevPascal Win32 based IDE for FPC.
  • FPCShell another Win32 FPC IDE.
  • Pixel image editor - Photoshop like image editor made with FPC
  • FPC 4 GBA Initiative Free Pascal support project for the GameBoy Advance platform

  Results from FactBites:
 
Free Pascal compilers and Pascal Programming - Freebyte's Guide to (887 words)
Lazarus is a group of class libraries for Free Pascal that emulate Delphi.
Free Pascal is a GPL'ed compiler that runs on Linux, Win32, OS/2, 68K and more.
Free Pascal is designed to be able to understand and compile Delphi syntax, which is of course OOP.
Free Pascal - News (2586 words)
The Pixel image editor is one of the projects which show the power of FPC: Pavel Kanzelsberger made an image editing program using FPC which works on 8 platforms and which beat even programs like GIMP, PaintShop Pro and PhotoImpact according to a recent test of a Czech Computer magazin.
ARM port of Free Pascal can now be used to develop games for the Gameboy Advance.
Free Pascal can be installed on Fedora from the Fedora Extras.
  More results at FactBites »


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.