This page will never be complete. I encourage you to continue adding things to it that:
- Relate to this site
- Relate to Freepascal
- Relate to Lazarus
===Assembler, Assembly Language=== An assembler converts human-readable symbols (that represent machine instructions) into the actual binary instructions that the computer executes. For example an assembler would translate
LD a,b # move the contents of location a into location b
into a binary sequence such as
01110010 which the machine can execute. Assembly language is the list of codified instructions which a programmer can write which the assembler translated into machine code. An assembler differs from a Compiler by being processor-specific (ie different assemblers for i386, MC68000, ARM processors etc) and by being much more low-level: it deals with very specific instructions to move data and perform detailed arithmetic. Many compilers (including FreePascal) allow the programmer to embed Assembler sections within the high-level source code; such sections are, of course, only useful using the processor for which they are intended, whereas a Compiler can write programs which will work on a variety of different processors.
===API=== Application Program Interface: a set of tools such as procedural/functional calls to allow programmers to use a software package. An example is the API for the MySQL database system; its authors have published a set of definitions for procedure/function calls, with detailed specifications for each of the parameters or arguments for each function. The original API was defined for C programming, but the FreePascal developers have written a set of corresponding procedure/function call definitions which allow FreePascal or Lazarus programmers to use the library of MySQL function calls.
A very important part of any API is its documentation, and any converaion of an API library to a different programming environment (eg from C to FreePascal) requires an equally excellent set of documentation.
Beginner's All-purpose Symbolic Instruction Code
An interpreted computer language once popular as a training tool, or as an experimental tool for programming. Being an interpreted language, it was easy to make changes in your program and see the effects. It was characterised by having a line number for each statement, and the sequence of execution was determined by the order of line numbers. Extra lines could be inserted by giving them intermediate line numbers. The language lacked a proper programming structure: execution could be transferred by using GOTO line number, and it was possible to develop very undisciplined habits by the uncontrolled use of GOTOs - in many ways BASIC was the exact antithesis of Pascal with its emphasis on structured programming.
BASIC has latterly fallen out of favour, partly because of its inherent defects, partly because of the introduction of languages like Pascal and C, and partly because of the huge improvement in speed of computers and performance of compilers so that proper compiled programs could rapidly be written, executed and debugged. There have been some attempts to improve upon BASIC such as Microsoft's Visual Basic (which has some rudimentary structures and doesn't use line numbers, so there is less emphasis on GOTOs) but these latter variants are almost unrecognisable as BASIC, and owe a lot to C and to several Command Line or scripting languages. In fact some Visual Basic programs look very like FreePascal or Lazarus programs.
An error in a program which might cause catastrophic machine failure, failure of the program or simply incorrect performance or output. Derived from the days when computers were constructed with thermionic vacuum tubes, when insects could cause short-circuits between terminals producing hardware failure or unpredictable performance. Most software development teams encourage potential users to report bugs (which are then corrected in subsequent versions) and have a clearly-defined bug-reporting mechanism (for example Lazarus BugTracker).
===C programming language=== A widely used computer programming language, particularly useful for system programming. Forms the basis for most of the Linux operating system, and as far as we can determine, for the Windows system. Its chief disadvantage is that it is insufficiently rigorous, and allows poor programming practices to creep in. It is also vulnerable to problems such as memory leaks. By contrast, Pascal imposes a much more rigorous discipline on the programmer and encourages good programming habits and practices.
A variant of C which includes Object-Oriented Programming constructs.
A still more 'advanced' version of C++, heavily supported by Microsoft. Of course, none of the C variants is nearly as good as Pascal! ===CCR=== Code and Component Repository
Command Line Interpreter
A program present in most computer operating systems which examines an input stream, either from the keyboard (Console Mode) or from a text file (Batch Mode), interpreting or parsing the text to find instructions causing execution of operating system commands or running prepared programs or other scripts of instructions.
===Compiler=== A program that translates Human-readable source code, usually written in a high-level language such as FreePascal, Delphi, C++, Algol, FORTRAN or ADA, into machine instructions for execution by a computer. Compilation usually involves several stages: Parsing the source code to check for syntax errors, translation of the source code to machine instructions, and linking the resultant code with libraries in order to produce the final machine-executable application. ===Component=== A small piece of code, typically consisting of a data definition or a small number of methods, which defines and describes a particular action or series of actions in a Pascal application. Components are typically grouped together functionally into libraries such as the FCL, LCL or RTL, so that they can be re-used in many programming applications
The act of compiling a program on one type of computer for eventual use on another computer with a defferent processoror a different operating system. For example Pascal programs can be cross-compiled on a PC running Linux and executed on a PC running Windows, or programs can be compiled on a PC to run on a PDA like the Sharp Zaurus. Another typical example is the Cross-compilation of the FreePascal Compiler or the Lazarus IDE on one platform such as Linux for use on another platform such as Windows or on the Mackintosh computer using a totally different processor.
===CrossPlatform=== Usually refers to a program that can be run on several different OSs and Platforms. Examples are the FreePascal compiler and Lazarus, the OpenOfficeOrg suite of office programs, the Mozilla family of web browsers and e-mail servers.
===CVS=== Concurrent Version System (see also SVN). A system for producing orderly development of a software suite despite its use by multiple authors. A repository is set up, from which intending developers can check-out documents or files, and to which they can return edited material. Usually the posting of new or updated material is under the control of one or more moderators or administrators, and strict version control is maintained.
A computer application designed for the structured storage of large amounts of data and for easy access to it. Many of the websites on the internet make extensive use of databases: for example, a vendor may keep his catalogue of items for sale on a database, and may also keep his customer transactions on another related database; a software development team (like the FreePascal team) might keep their library of programs and subprograms on a database; a medical research team might keep responses to their Case Report forms (CRFs) on a database.
Some typical examples are MySQL, PostgreSQL, Oracle, DBII. Many of these use a common standard Structured Query Language to place data in the database and retrieve it. FreePascal/Lazarus has links to several of these databases.
A database system typically consists of the actual Data files, a Server which reads and writes to the files, and a Client which interprets the users instructions.
===FreePascal=== An OpenSource CrossPlatform Pascal Compiler FreePascal Website which supports TurboPascal/BorlandPascal (TP/BP), Delphi/Kylix (Object Pascal) and Apple syntax, also it has some extra addons like C-style macros and operators/symbols, Operator Overloading, auto function overloading and other nice features; it best used with Lazarus.
===GDB=== GNU Debugger GDB homepage ===Gimp=== GNU Image Manipulation Program Homepage ===GNU=== From GNU's Website: GNU is a recursive acronym for “GNU's Not UNIX”; it is pronounced “guh-noo.” ===Gtk=== Gimp Tool Kit Home Page. GTK+ is a multi-platform toolkit for creating graphical user interfaces, and FreePascal and the Lazarus IDE make extensive use of GTK. It contains a set of Widgets or small graphical objects which can be incorporated into the forms or panels of applications.
===GUI=== Graphical User Interface
===IDE=== Integrated Development Environment
A software tool that examines an input stream of computer-language instructions (from the console or from a text-file) and converts them into machine-code instructions which are then immediately executed. This differs from a compiler (which converts a whole file into machine instructions and then stores the code for subsequent execution) in that instructions are interpreted line-by-line, and the conversion process has to happen every time the program is run.
The Command-Line interpreters in Linux, Windows, IBM systems and DEC PDP and VAX systems are good examples. Several popular programming languages are interpretive rather than compiled. The best examples are BASIC (in all its variants including Visual BASIC), PERL, Python and Java. Interpreted-language programs are generally several orders of magnitude slower than compiled-language programs because of the need to re-interpret the commands before execution every time, but they have the great advantage that changes are easily made, new code can be tested quickly, and often speed is not all that important compared with ease of development. Some languages (including various dialects of BASIC) offer the programmer an opportunity to try out a program first in interpreted mode, then when the program works correctly and no more changes are necessary, the whole program can be compiled to produce a much faster product.
Some variants of Pascal (including UCSD Pascal from the University of California at San Diego) offered a peculiar combination of compiled and interpreted operation: the textual Pascal source code was first converted into an intermediate P-code, which was then passed on to a P-code Interpreter which translated and executed it.
===LCL=== Lazarus Component Library
Usually refers to the Macintosh Operating System from Apple, it is famous for its high quality graphics and stability. The latest version MAC OS X is a combination of Commercial and OpenSource libraries and applications, OSX is currently capable of running X11. It is one of the most popular Operating Systems today and nowadays offers quality hardware even at a reasonable price. MAC can also refer to the MAC workstation which is the hardware needed to run the Operating System.
===OO=== Object Oriented Extension to a procedural language which enables the creation and manipulation of complicated Objects. While Standard Pascal maintains a Record structure, in which various different data types such as integers, reals, arrays and pointers can co-exist in a pre-defined way, an object-oriented language like FreePascal allows the structure also to contain Methods (procedures and functions) for the manipulation of the data elements within the structure.
The Operating System is a program called a Kernel which is usually started by the BIOS and it has various libraries which provide an interface with the computer hardware, the Kernel can also be considered an abstraction layer between the applications and the electronics part, the Operating Systems can be Console (Text Mode) or Graphical, most modern Operating Systems support threading and are multitasking allowing multiple programs to run at the same time.
===Pascal=== Pascal is a procedural programming language invented by Niklaus Wirth . There is an international standard definition of the language (ISO 7185, equivalent to ANSI/IEEE770X3.97), but apart from Gnu Pascal  and Prospero Pascal (available only for Windows systems), not many of the modern implementations conform exactly to the Standard. However, they are all syntactically essentially similar, and programs written for one variant are fairly interchangeable with others. FreePascal, Delphi and many other variants have OO extensions.
===PDA=== Personal Digital Assistant - a pocket-sized (or Palm-sized) device on which information such as address-books, calendars and other useful information can be stored. These devices (such as the Palm-Pilot and the Compaq Pocket-PC) are becoming increasing sophisticated, and the Sharp Zaurus which has a Linux operating system is a popular vehicle for experimenters and developers. There is a FreePascal cross-compiler available, which allows Pascal programs compiled on a PC to be run on the Zaurus.
===RAD=== Rapid Application Development - a software package for the fast and easy creation of Applications (Programs). Typically includes a text editor, a graphic interface, and easy links to various tools such as compilers, linkers and debuggers. Frequently offers an Integrated Development Environment (IDE).
===RTL=== Runtime Library The library of components in FreePascal which are used at run-time to translate instructions from programs according to the operating system and computer architecture of the current platform. See also FCL
===SQL=== Structured Query Language. An universal script language used in various types of DataBases with a defined syntax to be used for execution of queries.
===SVN=== Subversion - A Versioning document control system designed to improve upon and ultimately to replace CVS. This is the document management system currently used by both the FreePascal and the Lazarus projects.
A Pascal compiler produced by Borland which revolutionised Pascal development on PCs and microcomputers.
Previous Pascal compilers were huge and cumbersome, or slow, or expensive, or all three.
Borland's Turbopascal was very fast, very economic in resources, and very cheap.
Unfortunately it did not comply in all respects with the ISO standard, notably in its handling of the get() and put() functions with textfiles.
However it has been very popular, and with OO extensions it formed the basis of Delphi (which, though it has a stripped-down free no-cost version, is rather expensive if you want to do serious computing) and Kylix, the Linux version of Delphi.
It also forms the basis of FreePascal and Lazarus, but the main difference between Borland's compilers and FreePascal is that the source is not available for any of them, whereas all the sources for FreePascal are readily available. Borland compilers are commercial (even if offered at no-cost) but FreePascal and Lazarus are free (open-source).
One of the first Operating Systems. It was written in C and had threading and multi process capabilities; later Linus Torvalds and other programmers made an OpenSource clone of Unix called Linux which is one of the most popular Operating Systems today. Others folowed the example and other Operating Systems were born: FreeBSD, OpenBSD, NetBSD and many others; also Apple introduced OpenSource parts of various Unix clones and made MAC OS X which is famous for its graphical features and stability.
A Pascal source file is also called a unit and usually has .pas, .pp or .p extension.
The Pascal unit has an internal name which is usually the first line of the unit "unit MyUnit;", where MyUnit is the internal name.
The unit also has 2 main sections interface and implementation which are similar in C/C++ terminology to the header (.h, .hpp, .hh) file and the body file (.c, .cpp, .cc).
All the code in the interface section can be accessed by other units or program files that "use" this unit: this is done by the uses clause. The uses clause can appear either in the interface or implementation section: the code in the implementation section is "private" and can only be accessed by the same unit unless it is redefined in the interface section which is the case for "global" procedures and functions.
The Pascal unit can also contain 2 more sections, initialization and finalization: these are executed automatically when the main program starts and stops using this unit, as their names suggest.
Clause in an Object Pascal program: a line near the top of the file or Unit (in either the interface or the implementation) which defines which other files need to be accessed to find components used in the program.
===VCL=== Visual Componente Library - Base of Delphi Components Classes. ===V4L=== Video For Linux ===VFW=== Video For Windows
=== WiKi === A type of website that provides documentation for a software package or similar information, and that welcomes editorial activity, additions and comments from the community. Most WiKi sites require potential users to register, and then login in order to edit the site. Documentation can be developed very quickly and flexibly. === Windows === An Operating System from Microsoft, probably the most widely used Operating System today, famous for its user friendly interface but infamous for its vulnerability to malicious attackers. "Windows" also refers to rectangular areas on a computer screen which contain the textual and graphical material associated with a particular process or application. A window may form part of a program or system other than Microsoft's offering, for example there can be X-windows (see X11) or simple text-windows used by inherently text-based systems.
===X11=== Also called XFree, Xorg or simply X is a Unix graphical interface. The X11 concept is quite different from the Windows GDI mainly because XFree is a program, not just a set of libraries. Because X11 is more hardware oriented and doesn't have a full set of widgets yet, some programmers developed more advanced widgets like GTK and QT and various Window Managers and Desktop Environments like GNOME, KDE, XPde, XFCE, IceWM, WindowMaker and many others. For more information about X11 please visit the XFree website.
PDA made by Sharp which uses Linux as its operating system. Its processor is the ARM for which a port of the FreePascal compiler has been made, and it is possible to cross-compile applications in FreePascal which will run on the Zaurus