Sign in Join
Wiki copytemporary

Glossary: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11This page will never be complete. You are encouraged to continue adding things to it that —
22
33- Relate to this site
44- Relate to Free Pascal
55- Relate to Lazarus
66
77Note that the [[buildfaq]] also has a FPC/Lazarus glossary
88
99| |
1010|:--:|
11-| <span style="font-size:16pt">#   A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z</span> |
11+| #   A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z |
1212| |
1313
1414## \#
1515
1616## A
1717
1818### Ada
1919
2020Computer language derived from Pascal and Modula, and named after Charles Babbage's lady friend. Babbage (1791–1871), an Englishman, was one of the earliest exponents of computer design and published a design for a "difference engine" (which he never actually built). Ada King, Countess of Lovelace and daughter of the poet Lord Byron, was a student/colleague of Babbage and wrote a program to drive the difference engine; she can be regarded as the first computer programmer. (There was no romantic involvement with Babbage.)
2121
2222Ada is a high-level procedural language, with very similar structure and syntax to Pascal, but with several extensions. At one time in the 1980s, the U.S. Department of Defense decreed that all programming by its contractors must be done using Ada, but unfortunately there was a dearth of suitable compilers and software development tools, and the language never achieved popularity. Very few applications for the U.S. military were actually written in Ada.
2323
2424### Assembler, Assembly Language
2525
2626An assembler converts human-readable symbols (that represent machine instructions) into the actual binary instructions that the computer executes. For example an assembler would translate
2727
2828`LD a,b # move the contents of location a into location b`
2929
3030into a binary sequence such as `01110010` which the machine can execute. Assembly language is the list of codified instructions that a programmer writes, which the assembler translates into machine code.
3131
3232An assembler differs from a [[Glossary|Compiler]] by being processor-specific (*i.e.*, 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 [[Glossary|Free Pascal]]) 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 [[Glossary|Compiler]] can write programs which will work on a variety of different processors.
3333
3434### API
3535
3636Application Program Interface: a set of tools such as procedural/functional calls to allow programmers to use a software package.
3737
3838An example is the API for the [MySQL](http://www.mysql.com) 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 MySQL API was defined for [[Glossary|C]] programming, but the Free Pascal developers have written a set of corresponding procedure/function call definitions which allow [[Glossary|Free Pascal]] or [[Glossary|Lazarus]] programmers to use the library of MySQL function calls.
3939
4040A very important part of any API is its documentation, and any conversion of an API library to a different programming environment (*e.g.*, from C to Free Pascal) requires a really excellent set of descriptive documents.
4141
4242## B
4343
4444### BASIC
4545
4646BASIC is an acronym that stands for **B**eginner's **A**ll-purpose **S**ymbolic **I**nstruction **C**ode.
4747
4848A computer language once popular as a training tool, or as an experimental tool for programming, it was developed in 1963–1964 at Dartmouth College in Hanover, New Hampshire, U.S.A. by professors John G. Kemeny and Thomas E. Kurtz. The original version of BASIC was a compiled language and quite efficient on the slow computers of the early 1960s; however, a majority of people were first introduced to pared-down [[Glossary|interpreted]] versions, particularly those that ran on early microcomputers, and they did not support many of the language features of Dartmouth BASIC. Whether the version in use was compiled or interpreted, it was easy and quick to make changes in one's program and see the effects. The programmer gave 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, *e.g.*, line 15 could be inserted between lines 10 and 20. The original language required the use of line numbers for every line of code. Execution could be transferred by using `GOTO <line number>`, and it was possible to develop very undisciplined habits by the uncontrolled use of GOTOs; the result was sometimes called "spaghetti code". In many ways early BASIC was the exact antithesis of [[Glossary|Pascal]] with its strong emphasis on structured programming. However, even as inferior BASIC interpreters proliferated on personal computers, BASIC kept evolving at Dartmouth College and elsewhere, and eventually the need for line numbers and GOTO statements was dropped, allowing it to be used for structured programming. One modern commercial variant, for example, is True BASIC, which conforms to ANSI Standard BASIC. It allows programs to be compiled and bound to a runtime module so that they can be run independently of the development environment and compiler.
4949
5050BASIC has latterly fallen out of favour, partly because of the introduction of languages like [[Glossary|Pascal]] and [[Glossary|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 supports 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 much to C and to several [[Glossary|Command Line]] or scripting languages. In fact, some Visual Basic programs may look very similar to [[Glossary|Free Pascal]] or [[Glossary|Lazarus]] programs.
5151
5252For more information on the origins and evolution of BASIC, see *Back to BASIC*, by John G. Kemeny and Thomas E. Kurtz (Addison-Wesley Publishing Co., 1985 ISBN 0-201-13433-0).
5353
5454### BOM
5555
5656The byte order mark (BOM) is a particular usage of the special Unicode character, U+FEFF, whose appearance as a magic number at the start of a text stream can signal several things to a program reading the text:
5757
5858- The byte order, or endianness, of the text stream in the cases of 16-bit and 32-bit encodings;
5959- The fact that the text stream's encoding is Unicode, to a high level of confidence;
6060- Which Unicode character encoding is used.
6161
6262BOM use is optional. Its presence interferes with the use of UTF-8 by software that does not expect non-ASCII bytes at the start of a file but that could otherwise handle the text stream.
6363
6464### [[Boolean]]
6565
6666Logical data type in [[Glossary|Pascal]] and other languages that can take one of two values, [[True]] or [[False]].
6767
6868Named after George Boole, a pioneer of logical (Boolean) Algebra.
6969
7070See [[Boolean Expressions]] for a full description.
7171
7272### Bug
7373
7474An 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: insects (bugs) crawling around the interior of the apparatus could cause short-circuits between terminals producing hardware failure or unpredictable performance.
7575
7676Most 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](http://bugs.freepascal.org/main_page.php)).
7777
7878## C
7979
8080### C programming language
8181
8282A widely used computer programming language, particularly useful for system programming. Forms the basis for most of the [[Glossary|Linux]] operating system, and as far as we can determine, for the [[Glossary|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 and buffer overflows. By contrast, [[Glossary|Pascal]] imposes a much more rigorous discipline on the programmer and encourages good programming habits and practices.
8383
8484See also [[Pascal for C users]]
8585
8686### C++
8787
8888A variant of [[Glossary|C]] which includes Object-Oriented Programming constructs.
8989
9090### C#
9191
9292Pronounced "C-sharp", a language heavily supported by Microsoft and designed for their .NET platform. It has a syntax based on [[Glossary|C++]] that includes aspects of other programming languages, most notably Object [[Glossary|Pascal]] and [[Glossary|Java]].
9393
9494### CCR
9595
9696Code and Component Repository
9797
9898The [Lazarus Code & Component Repository](http://lazarus-ccr.sourceforge.net/) on SourceForge is the host for the Lazarus Documentation files and some component libraries.
9999
100100### Class
101101
102102A special kind of [[Glossary|Object]] in [[Glossary|Object Oriented]] programming.
103103
104104A Class is a pointer to an Object; its declaration looks very similar to an Object.
105105
106106### COBOL
107107
108108**CO**mmercial and **B**usiness **O**riented **L**anguage
109109
110110A language widely used in business in the 1960s and later. Despite its deficiencies, and the introduction of newer languages, it is still in widespread use, mainly as a legacy system. The most notable recent \[<http://www.theregister.co.uk/2008/08/14/cobol_california/%5Dexample> is in the State of California, where the government payroll system still uses COBOL, and the governor's recent edict that state employees' salaries should be cut has run into difficulties, because there aren't enough COBOL programmers around!
111111
112112### Command Line Interpreter
113113
114114**CLI**
115115
116116A 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), [[Glossary|interpreting]] or parsing the text to find instructions causing execution of operating system commands or running prepared programs or other scripts of instructions.
117117
118118The CLI environment, where the operator types commands on a keyboard at a console, exists in contrast to the [[Glossary|Graphical User Interface]] (GUI), where the operator makes more use of a mouse, and pictures rather than text convey information to the operator.
119119
120120### Compiler
121121
122122A program that translates Human-readable source code, usually written in a high-level language such as Object [[Glossary|Pascal]], [[Glossary|C++]], Algol, [[Glossary|FORTRAN]] or [[Glossary|Ada]], into machine instructions for execution by a computer.
123123
124124Compilation usually involves several stages: Parsing the source code to check for syntax errors, translation of the source code to machine instructions, and [[Glossary|linking]] the resultant code with libraries in order to produce the final machine-executable application.
125125
126126See also [[Compiler]] and [[Compilers]] entries in main Wiki.
127127
128128### Component
129129
130130A 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 [[Glossary|Free Pascal Component Library (FCL)]], [[Glossary|Lazarus Component Library (LCL)]] or [[Glossary|Run Time Library (RTL)]], so that they can be re-used in many programming applications.
131131
132132### Cross Compilation
133133
134134The act of compiling a program on one type of computer for eventual use on another computer with a different processor a different operating system. For example [[Glossary|Pascal]] programs can be cross-compiled on a PC running Linux and executed on a PC running [[Glossary|Windows]], or programs can be compiled on a PC to run on a [[Glossary|PDA]] like the Sharp [[Glossary|Zaurus]] or devices using [[Glossary|WinCE]].
135135
136136Another typical example is the Cross-compilation of the [[Glossary|Free Pascal]] Compiler or the [[Glossary|Lazarus]] IDE on one platform such as [[Glossary|Linux]] for use on another platform such as [[Glossary|Windows]] or on the [[Glossary|Macintosh]] computer using a totally different processor.
137137
138138### Cross-platform
139139
140140Usually refers to a program that can be run on several different [[Glossary|Operating Systems]] and Platforms such as [[Glossary|Windows]], [[Glossary|Linux]] and [[Glossary|OSX]]. Examples are the [[Glossary|Free Pascal]] compiler and [[Glossary|Lazarus]], the [OpenOfficeOrg](http://www.openoffice.org) suite of office programs, the [Mozilla](http://www.mozilla.org) family of Web browsers and e-mail servers.
141141
142142### CVS
143143
144144[Concurrent Version System](http://www.cvshome.org/) (see also [[Glossary|Subversion 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.
145145
146146## D
147147
148148### DataBase
149149
150150A computer application designed for the structured storage of large amounts of data and for easy access to it. Many of the Web sites 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 Free Pascal 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.
151151
152152Some typical examples are [MySQL](http://www.mysql.com), [PostgreSQL](http://www.postgresql.org/), [Oracle](http://www.oracle.com/index.html), [DB2](http://www-306.ibm.com/software/data/db2/). Many of these use a common standard [[Glossary|Structured Query Language]] to place data in the database and retrieve it. Free Pascal/Lazarus has links to several of these databases.
153153
154154A 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.
155155
156156See also [[Databases]] entry in main Wiki
157157
158158### [[Delphi]]
159159
160160An excellent commercial [[Glossary|Pascal-based]] [[Glossary|RAD]] [[Glossary|IDE]] for Windows made by [Borland](http://www.borland.com/).
161161
162162[[Glossary|Free Pascal]] sets out to be broadly compatible with Delphi, so that applications written by Delphi developers can be readily ported to Free Pascal/Lazarus, and the Free Pascal compiler has a Delphi compatability mode (using the compiler directive {\$MODE Delphi} or the command-line option -Sd).
163163
164164However, slavish adherence to Delphi constructs and standards is no longer felt to be a requirement, and Free Pascal developers have improved on many of the Delphi constructs, in many cases producing a more flexible and more useful programming environment. All the procedures, functions, classes and other programming elements have been written from scratch by Free Pascal developers, quite independent of the Delphi code.
165165
166166### Debugger
167167
168168A computer program which can be used by developers to control the execution of a program in development, and show where a program is failing. Debuggers typically keep track of the location in the program (for example the line number in the source code), the contents of the variables in the program, and often produce a back-trace showing the instructions that were being executed immediately before the failure occurred in the program.
169169
170170The Gnu Debugger [GDB](http://sourceware.org/gdb/) is used in Free Pascal/Lazarus systems; GDB must be present in the system. In Linux and other Unix-like systems the native Gnu/Linux version can easily be installed; in Windows systems a special Windows version of GDB has been included in the Lazarus release packages; alternatively GDB can be compiled from source for Windows and used in conjunction with the [CygWin](http://cygwin.com/) emulator.
171171
172172At present the documentation on debugging for Free Pascal/Lazarus is not very complete, and users are advised to read the documentation on the GDB site carefully.
173173
174174### [diff](http://www.gnu.org/software/diffutils/diffutils.html)
175175
176176A GNU program used to show the differences between two files, or even two directories.
177177
178178Used by software developers to check the changes in coding before committing an edited source file to a repository such as [[Glossary|SVN]]. The output from diff can also be used to generate a Patch which can be applied to a source code file without having to re-write or re-import the whole file.
179179
180180## E
181181
182182## [[Editor]]
183183
184184Text Editor — one of the essential tools of program development.
185185
186186The source code of most computer programs consists of lines of text with the program instructions arranged in a logical sequence. Some form of text editor is necessary for inputting the source code and editing or correcting it.
187187
188188All operating systems have available a number of text editors, some very primitive (such as ED or EDLIN in DOS/Windows or ED, vi in Unix/Linux) and some quite sophisticated (such as NotePad and WordPad in Windows, GEdit, KATE, KWrite and EMACS in Unix/Linux). It is even possible (though not recommended) to use Word Processor software for editing computer program source code.
189189
190190Many text editors offer Syntax Highlighting (using different colours to show keywords, types of data or levels of nesting in statements) or have automatic indentation to make the structure of a program more apparent. Most have Search and/or Replace facilities, and can often recognise the beginning of Subprograms (Procedures and Functions) or open "include" files when required.
191191
192192Both the [[Glossary|Free Pascal]] and [[Glossary|Lazarus]] [[Glossary|IDEs]] have integral text editors which are the ones recommended for developing programs using the Free Pascal Compiler, but programs developed using any text editor can be passed to the compiler, provided they are syntactically and logically correct.
193193
194194Each user will find his or her own favourite editor and come to recognise its advantages and limitations. And arguments between proponents of one or other editor are sometimes only slightly less heated than arguments about preferred Operating System!!
195195
196196## F
197197
198198### [[FCL]]
199199
200200[[FCL|Free Component Library]]
201201
202202The main collection of components used by [[Glossary|Free Pascal]]. See also [[Glossary|RTL (Run Time Library)]] and [[Glossary|LCL (Lazarus Component Library)]]
203203
204204### Firebird
205205
206206Free relational database system supported by FPC/Lazarus; see [[Firebird]]
207207
208208### FORTRAN
209209
210-Procedural language for <u>FOR</u>mula <u>TRAN</u>slation.
210+Procedural language for FORmula TRANslation.
211211
212212Once very popular for academic, scientific and engineering programs, its emphasis was on getting things done efficiently — very good for calculation-intense applications, but it made few concessions to ease of user interface.
213213
214214FORTRAN suffered from a rather rigid syntactic and formatting structure, though later versions have developed softer edges and make a few concessions to a windowed user environment with interactive input-output.
215215
216216It is still one of the best languages for doing really hard sums, but is much less popular than languages with a friendlier user interface.
217217
218218### FreeBSD
219219
220220[[Portal:FreeBSD|FreeBSD]] is an [[Glossary|Operating System]] for a variety of platforms which focuses on features, speed, and stability. It is derived from BSD, the version of UNIX® developed at the University of California, Berkeley. It is developed and maintained by a large community.
221221
222222### [Free Pascal](http://www.freepascal.org)
223223
224224An [[Glossary|OpenSource]] [[Glossary|CrossPlatform]] [[Glossary|Pascal]] [[Glossary|Compiler]] which supports [[Glossary|TurboPascal]]/BorlandPascal (TP/BP), [[Glossary|Delphi]]/[[Glossary|Kylix]] ([[Glossary|OO]] or 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.
225225
226226Free Pascal initially set out to reproduce the features of Delphi in an open-source environment, and offered the advantage of working on a number of operating system platforms, but it has acquired a character and ethos of its own, and slavish adherance to Delphi compatibility is no longer the fundamental driver. Free Pascal developers write code entirely independently from the Delphi sources.
227227
228228Free Pascal consists of the [[Glossary|compiler]] itself, a number of libraries including the Run-time library [[Glossary|RTL]], the Free Pascal Component Library [[Glossary|FCL]] and a number of optional packages that can be installed by the user. There is also an Integrated Development Environment ([[Glossary|IDE]]) intended for use in a non-graphic text mode, and very similar to the TurboPascal IDE. Users who prefer to use a Graphical User Interface ([[Glossary|GUI]]) can use one of a number of products, [[Glossary|Lazarus]] being the best-known IDE which has been contributed to by over 120 programmers of whom some are closely involved with the Free Pascal project.
229229
230230## G
231231
232232### [GDB](http://www.gnu.org/software/gdb/gdb.html)
233233
234234[[Glossary|GNU]] [[Glossary|Debugger]] used for debugging programs developed with the [[Glossary|Free Pascal]] compiler, as well as programs in [[Glossary|C]], [[Glossary|C++]], [[Glossary|FORTRAN]] and other languages.
235235
236236### [GIMP](http://www.gimp.org/)
237237
238238[[Glossary|GNU]] Image Manipulation Program
239239
240240One of the largest influences on Linux Graphics — it is a tool that some find hard to use at first, but it so infinitely configurable and intensively useful that most are eventually won over. The GIMP provides most of the [[Glossary|Widgets]] (small graphic objects) used in the Gimp ToolKit (GTK) libraries that form one of the major sets of tools in Lazarus.
241241
242242### [GNU](http://www.gnu.org/)
243243
244244GNU is a wrapper around the [[Glossary|Linux]] Kernel and Shell, providing a large number of user programs, user environments (both graphical and text-based), applications and development systems. It also contains a large number of libraries for use by various packages and systems. Its developers suggest that the [[Glossary|Linux]] operating system should actually be described as the GNU/Linux OS, as the Linux kernel requires the functionality provided by GNU in order to work for the end-user.
245245
246246From GNU's Website: GNU is a recursive acronym for “GNU's Not UNIX”; it is pronounced “guh-noo.” GNU is like [[Glossary|UNIX]], but is not the same!
247247
248248### [GTK](http://www.gtk.org/)
249249
250250[[Glossary|Gimp]] Tool Kit.
251251
252252GTK+ is a multi-platform toolkit for creating graphical user interfaces, and [[Glossary|Free Pascal]] and the [[Glossary|Lazarus]] [[Glossary|IDE]] make extensive use of GTK. It contains a set of [[Glossary|Widgets]] or small graphical objects which can be incorporated into the forms or panels of applications.
253253
254254### GUI
255255
256256Graphical User Interface
257257
258258A working environment in which a computer user is presented with a screen on which there are pictures or Icons representing programs, actions or files, and either uses a mouse cursor (or similar pointing device) to select the appropriate icon or uses a keyboard with directional buttons or keys to move around the screen and select the appropriate icon. There are often drop-down menus available when the mouse is placed over certain parts of the screen.
259259
260260A GUI typically makes use of [[Glossary|Object-Oriented]] or event-driven programming; instead of following a pre-determined sequence of actions, the application waits for an event such as a mouse-click over a particular icon, to determine what action is required and execute the appropriate piece of code; the application then goes back into the "wait" state until another event occurs, such as a mouse click over a different icon.
261261
262262## H
263263
264264## I
265265
266266### IDE
267267
268268Integrated Development Environment
269269
270270It typically consists of a [[Glossary|text editor]] for developing the program source, a [[Glossary|Compiler]], perhaps an [[Glossary|Assembler]] and a [[Glossary|Linker]] to make construction and subsequent execution of the program quick and easy. It may also have access to a [[Glossary|Debugger]] to help detect and correct logical or operational errors in the code.
271271
272272### Interpreter
273273
274274A 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 [[Glossary|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.
275275
276276The [[Glossary|Command-Line interpreters]] in [[Glossary|Linux]], [[Glossary|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 [[Glossary|BASIC]] (in all its variants including Visual BASIC), PERL, Python and [[Glossary|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.
277277
278278Some variants of Pascal, including [[UCSD Pascal]] from the University of California at San Diego (UCSD), 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 that translated and executed it.
279279
280280## J
281281
282282### Java
283283
284284Computer language developed by Sun Microsystems for writing Web-based applications. It is an [[Glossary|interpreted language]] (which tends to produce rather slowly-running programs), but applications can be written rapidly and ported to a large number of different processors and machines. It has facilities for [[Glossary|Object-Oriented Programming]].
285285
286286See also: [[Pascal for Java users]]
287287
288288## K
289289
290290### Kylix
291291
292292Delphi-like Rad Tool for Linux made by Borland. It is based on Delphi, and uses the [[Glossary|QT]] / CLX [[Glossary|widget]] set. It attempts to port Delphi's IDE to Linux by using [WINE](http://www.winehq.org/), a Windows Emulator program, rather than translating the code for the IDE into proper Linux-specific code, and hence operates rather slowly and patchily. Borland seem to have lost interest in developing or supporting Kylix further, and many former users of Kylix have migrated to Free Pascal/Lazarus as the only viable alternative for Pascal development in Linux.
293293
294294## L
295295
296296### [Lazarus](http://lazarus.freepascal.org)
297297
298298A [[Glossary|CrossPlatform]] [[Glossary|RAD]] [[Glossary|IDE]] made with [[Glossary|Free Pascal]] and designed to use Free Pascal as its programming language and compilation tool. It has many of the features of the IDE found in Borland's [[Glossary|Delphi]] and [[Glossary|Kylix]] (although all the code has been written independently), and has some features which are missing from Delphi/Kylix, while lacking a few of the features found in the Borland products.
299299
300300Its main user interface includes a Source Code [[Glossary|Editor]], a Main Menu bar containing the Component Palette, a Form Design Window and an Object Inspector. Other features include a Documentation editor, considerable Code Help, and access to extensive libraries of components and packages.
301301
302302Developers typically use the IDE's Form Designer to sketch out the physical structure of their applications, use the Source Code Editor to add programming instructions to respond to events occurring during program execution, and then use the built-in Free Pascal compiler and linker to produce executable code. During execution of the code, the [[Glossary|debugger]] is used to trap errors and find logical problems in the program.
303303
304304The IDE can even be used to rebuild Lazarus itself, when corrections or updates are received, for example, from the [[Glossary|SVN]] repositories.
305305
306306### LCL
307307
308308[[LCL|Lazarus Component Library]], contains a large number of units defining classes, components and methods for creating applications using [[Glossary|Free Pascal]]. The LCL consists mainly of visual components and objects, often called [[Glossary|Widgets]]: some examples are Buttons, Labels, Edit Boxes, Drop-down Lists, Popup Menus, Images and Grids. The non-visual elements such as file handling and database management are found in the [[Glossary|Free Pascal Component Library]] and [[Glossary|Run Time Library]]. Many of the components defined in the LCL and other libraries are used to build the Lazarus [[Glossary|IDE]].
309309
310310See [[Lazarus Components]] for a list of components available, and their equivalent in TurboPascal and Delphi.
311311
312312### Linker
313313
314314A computer program that takes the output from a [[Glossary|Compiler]] and finds any pre-compiled library routines that are needed, and joins them all together to produce an executable program.
315315
316316### [Linux](http://www.linux.org/)
317317
318318[[Linux]] is an [[Glossary|Open Source]] [[Glossary|Operating System]] derived originally from [[Glossary|Unix]], but totally re-built using Open Source code, and receiving contributions from literally thousands of developers. Today it is one of the most popular Operating Systems. It is one of the platforms for which [[Glossary|Free Pascal]] and [[Glossary|Lazarus]] are built, and one of the platforms extensively used for their development.
319319
320320## M
321321
322322### MAC
323323
324324- In computer hardware, Mac refers to Apple Macintosh computers.
325325
326326- In networking, MAC means Media Access Control or Medium Access Control, a low level unique identifier for a network interface card (NIC) which it is possible to easily change via software.
327327
328328### macOS
329329
330330- Refers to the Macintosh computer [[Glossary|Operating System]] from Apple, it is famous for its high quality graphics and stability. Since 2001 macOS has been based on [[Glossary|UNIX®]] and shares many commonalities with [[Glossary|FreeBSD]] and some commonalities with [[Glossary|Linux]]. It is capable of running the [[Glossary|X Window System (X11)]] windowing system for bitmap displays, common on Unix-like operating systems. macOS was previously marketed as [[Glossary|Mac OS X]] until 2012 and [[Glossary|OS X]] until 2016. After Windows, it is the most popular desktop Operating System.
331331
332332### Mac OS
333333
334334In 1984, Apple debuted the [[Glossary|Operating System]] that is now known as the "Classic" Mac OS with its release of the original Macintosh System Software. The system, rebranded "Mac OS" in 1996, was preinstalled on every Apple Macintosh computer until 2002 and offered on Macintosh clones for a short time in the 1990s. Noted for its ease of use, it was also criticized for its lack of modern technologies compared to its competitors.
335335
336336### Mac OS X
337337
338338The first desktop version (version 10.0) of the Apple Macintosh [[Glossary|Operating System]] known as Mac OS X was released in March 2001. With the release of Mountain Lion (version 10.8) in 2012 Apple shortened the name to [[Glossary|OS X]] and then changed it to [[Glossary|macOS]] in 2016.
339339
340340### MariaDB
341341
342342Fork of MySQL; aims to be compatible but more generously licensed for commercial use.
343343
344344### Mormot
345345
346346mORMot : Synopse [[mORMot]] is an Open Source Client-Server ORM SOA MVC framework for FPC, targeting Win/Linux for the server, and any platform for clients (including mobile or AJAX). In other words, nobody knows what it is supposed to be but a heap of gibberish.
347347
348348### MySQL
349349
350350Relational database system; see [[MySQL]].
351351
352352## N
353353
354354## O
355355
356356### Object
357357
358358A special type of [[Glossary|Record]] used in [[Glossary|Free Pascal]] and other high-level [[Glossary|Object Oriented]] languages. As well as containing a group of data Fields (as in a conventional Record), an Object can define Methods (Procedures and Functions, either static, virtual or non-virtual) for processing the data in the fields. For example, an object could contain an array of real values, together with a Method for calculating the average.
359359
360360``` pascal
361361 Type
362362 Average = Object
363363 NumVal: Integer;
364364 Values: Array [1..200] of Real;
365365 Function Mean : Real; { calculates the average value of the array }
366366 End;
367367```
368368
369369Or a Button placed on a Form in a graphical environment might have the following structure (highly simplified):
370370
371371``` pascal
372372 Type
373373 Button = Object
374374 Top, Left: Integer; { screen coordinates to define button's position }
375375 Height, width: Integer;
376376 Color: TColor;
377377 Caption : String;
378378 Procedure OnClick; { method invoked when the mouse is clicked on the Button's image}
379379 End;
380380```
381381
382382The Procedure or Function in the above definition must, of course, be declared elsewhere in the program, typically in an **Implementation** section.
383383
384384See also [[Glossary|Classes]]
385385
386386### OO
387387
388388**Object Oriented**
389389
390390Extension to a procedural language which enables the creation and manipulation of complicated [[Glossary|Objects]].
391391
392392While Standard [[Glossary|Pascal]] maintains a [[Glossary|Record]] structure, in which various different data types such as [[Integer|integers]], reals, arrays, [[String|strings]] and [[Pointer|pointers]] can co-exist in a predefined way, an object-oriented language like [[Glossary|Free Pascal]] allows the structure also to contain **Methods** (procedures and functions) for the manipulation of the data elements within the structure.
393393
394394See also [[Object Oriented Programming with Free Pascal and Lazarus]]
395395
396396### Open Source
397397
398398A system of software development based on publishing all your source code where it is freely available for others to view, copy, compile and use, and also to correct, modify and improve. Users, developers or modifiers are simply required or expected to acknowledge where the source came from, how they have changed it, and make the source available to anyone to whom they give or sell their program. It exists in contrast to the usual commercial model of software development, where programs are shrouded in secrecy and patent/copyright legality, only a few members of the team have access to the code, and the end user has no idea of how the program works or how to fix it if it breaks.
399399
400400From the outset, [[Glossary|Free Pascal]] and [[Glossary|Lazarus]] have been developed as open source programs, with all the source code freely available to anybody who wants to use it, and with encouragement to all to try it out, suggest bug-fixes, attempt to improve it or complete the parts that have not been implemented, and generally contribute to its development. This approach has led to an excellent cooperative effort, rapid development of the system and a development environment that is completely transparent for all its users.
401401
402402### OS
403403
404404The **Operating System** is a program that controls the basic performance of a computer. It deals with the input-output functions of the various parts (such as keyboard, mouse, video display, disk storage, memory and peripherals such as serial, parallel and USB interfaces); it controls scheduling of tasks and allocation of processing time between processes and users; it traps system errors and performs a host of other functions. Most of these activities proceed without the user being aware of them.
405405
406406An operating system usually has a part called the **kernel** (*i.e.*, the most deeply embedded part of the program) which is started by the **BIOS** (Basic Input-Output System of the computer) 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.
407407
408408There is often another "layer", called the **shell**, which represents an interface between the Kernel and the user who types commands on a keyboard or moves a mouse around the table to select commands displayed on the screen.
409409
410410An Operating Systems can operate in Console (Text) or Graphical Mode. Most modern Operating Systems support threading and are multitasking, allowing multiple programs to run at the same time.
411411
412412### OS X
413413
414414The first desktop version (version 10.0) of the Apple Macintosh [[Glossary|Operating System]] known as [[Glossary|Mac OS X]] was released in March 2001. With the release of Mountain Lion (version 10.8) in 2012 Apple shortened the name to **OS X** and then changed it to [[Glossary|macOS]] in 2016.
415415
416416## P
417417
418418### [Pascal](http://en.wikipedia.org/wiki/Pascal_programming_language)
419419
420420Pascal is a procedural programming language, designed in 1968–1969 and published in 1970 by Niklaus Wirth (see [[Basic Pascal Tutorial/History|Pascal History]], [[Why use Pascal]]).
421421
422422There is an international standard definition of the language (ISO 7185, equivalent to ANSI/IEEE770X3.97), but apart from [Gnu Pascal](http://www.gnu-pascal.de/gpc/h-index.html) ([[Glossary|Open Source]]) and Prospero Pascal (a commercial product available only for [[Glossary|Windows]] systems), not many of the modern implementations conform exactly to the Standard. However, they are all essentially similar in syntax and structure, and programs written for one variant are fairly interchangeable with others.
423423
424424[[Glossary|Free Pascal]], [[Glossary|Delphi]] and other variants of Pascal have Object Oriented extensions.
425425
426426### PDA
427427
428428Personal 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 [[Glossary|Zaurus]] which has a [[Glossary|Linux]] operating system is a popular vehicle for experimenters and developers.
429429
430430There is a [[Glossary|Free Pascal]] [[Glossary|cross-compiler]] available, which allows Pascal programs compiled on a PC to be run on the Zaurus, and there is also a WinCE [[Glossary|cross-compiler]] branch of FPC that allows applications to be developed in Windows for operation on the Pocket-PC.
431431
432432The PDA functions are now largely incorporated into SmartPhones and portable Tablet computers, most of which run the Android operating system, a Pascal-derived OS developed by Google. Some Lazarus developers are producing applications for the Android platform.
433433
434434### PostgreSQL
435435
436436Free relational database system supported by FPC/Lazarus; see [[postgresql|PostgreSQL]]
437437
438438## Q
439439
440440### [Qt interface](http://wiki.lazarus.freepascal.org/index.php/Qt_Interface)
441441
442442Qt is one of the major [[Glossary|widget]] sets used in Linux, and forms the basis for the KDE (K-desktop environment). It is one of the libraries of widgets actively supported by Lazarus-FPC, though it is not as well-established as the GTK libraries.
443443
444444## R
445445
446446### RAD
447447
448448Rapid Application Development (Examples: [[Glossary|Delphi]], [[Glossary|Lazarus]], Visual Basic)
449449
450450A software package for the fast and easy creation of Applications (Programs). Typically includes a [[Glossary|text editor]], a [[Glossary|graphic user interface]], and easy links to various tools such as [[Glossary|compilers]], [[Glossary|linkers]] and [[Glossary|debuggers]]. Frequently offers an Integrated Development Environment ([[Glossary|IDE]]).
451451
452452### [[Record]]
453453
454454A highly structured data type in [[Glossary|Pascal]] and other high-level languages.
455455
456456While simple data structures such as arrays or sets consist of elements all of the same type, a record can consist of a number of elements of different types, and can take on a huge complexity.
457457
458458Records are widely used in Pascal, to group data items together logically. They also form the basis for even more complicated structured types such as [[Glossary|Objects]] and [[Glossary|Classes]], used in [[Glossary|Object Oriented]] programming. See also: [[Record]]
459459
460460### [[RTL]]
461461
462462[[RTL|Runtime Library]]
463463
464464The library of components in [[Glossary|Free Pascal]] 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 [[Glossary|Free Pascal Component Library FCL]]
465465
466466### [[RTTI]]
467467
468468Runtime Type Information
469469
470470Keeping the data-types of objects available at runtime. Can be useful for streaming and typecasting objects.
471471
472472## S
473473
474474### Startup
475475
476476[[Startup]]
477477
478478### SQL
479479
480480Structured Query Language.
481481
482482An universal script language used in various types of [[Glossary|DataBases]] with a defined syntax to be used for execution of queries.
483483
484484### SVN
485485
486486[Subversion](http://subversion.tigris.org/)
487487
488488A document version control system designed to improve upon and ultimately to replace [[Glossary|CVS]].
489489
490490SVN is the document management system currently used by both the [[Glossary|Free Pascal]] and the [[Glossary|Lazarus]] projects.
491491
492492## T
493493
494494### [[Turbo Pascal]]
495495
496496A Pascal compiler produced by Borland which revolutionised Pascal development on PCs and microcomputers.
497497
498498Previous Pascal compilers were huge and cumbersome, or slow, or expensive, or all three.
499499
500500Borland's TurboPascal was very fast, very economic in resources, and very cheap.
501501
502502Unfortunately it did not comply in all respects with the ISO standard, notably in its handling of the get() and put() functions with text files.
503503
504504However it has been very popular, and with object oriented 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.
505505
506506It also forms the foundation for Free Pascal and Lazarus, but the main difference between Borland's compilers and Free Pascal is that the source is not available for Borland, whereas all the sources for Free Pascal are readily available. Borland compilers are commercial (even if offered at no-cost) but Free Pascal and Lazarus are free ([[Glossary|open-source]]).
507507
508508## U
509509
510510### Unix
511511
512512One of the first [[Glossary|Operating Systems]]. It was written in [[Glossary|C]] and had threading and multi-process capabilities; later Linus Torvalds and other programmers made an Open Source system resembling Unix called [[Glossary|Linux]] which is one of the most popular Operating Systems today. Others followed the example and other Operating Systems were born: FreeBSD, OpenBSD, NetBSD and many others; also Apple introduced Open Source parts of various Unix clones and made MAC OS X which is famous for its graphical features and stability.
513513
514514### [[Unit]]
515515
516516A Pascal source file is also called a unit and usually has .pas, .pp or .p extension.
517517
518518The Pascal unit has an internal name which is usually the first line of the unit "**unit** MyUnit;", where MyUnit is the internal name.
519519
520520The unit also has two 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).
521521
522522All 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 [[Glossary|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.\
523523The Pascal unit can also contain two more sections, **initialization** and **finalization**: these are executed automatically when the main program starts and stops using this unit, as their names suggest.
524524
525525### [[Uses]]
526526
527527Clause in an Object Pascal program: a line near the top of the file or [[Glossary|Unit]] (in either the interface or the implementation) which lists other units that need to be accessed to find [[Glossary|components]] used in the program.
528528
529529For Example:
530530
531531``` pascal
532532uses
533533 Classes, SysUtils, MySpecialUnit;
534534```
535535
536536## V
537537
538538### VCL
539539
540540Visual Component Library — Base of Delphi Components Classes.
541541
542542### V4L
543543
544544Video For Linux
545545
546546### VFW
547547
548548Video For Windows
549549
550550## W
551551
552552### Widget
553553
554554A small (or even large!) graphical object or image, often part of a larger image, form, screen or picture. [[Glossary|Object Oriented]] programs often depend heavily on the use of Forms, which comprise a large number of widgets such as buttons, captions, edit boxes, scroll bars, titles, menu bars, panels, grids and pictorial images like photos or drawings.
555555
556556[[Glossary|Lazarus]] has separate [[Widgetset|widget sets]] for each Window Manager system, such as Microsoft Windows (widget sets [[Win32/64 Interface|Win32/64]], or [[Windows CE Interface|WinCE]] for hand-held devices), Linux ([GTK widgetsets](/wiki-category/GTK%20Widgetsets) for Gnome-based systems, [[Qt Interface|Qt]] for KDE systems), Apple (widget sets [[Carbon Interface|Carbon]] and [[Cocoa Interface|Cocoa]]) as well as some non-specific sets such as [[Custom Drawn Interface|CustomDrawn]], [[fpGUI]] or [[nvidia-widgets|nvidia widgets]].
557557
558558Lazarus developers have had to design custom-built interfaces to each widget set: the aim is to provide an interface of which the user is unaware; he or she simply writes the code or designs the form, and the widgets of the relevant set for his operating system fit into place and work seamlessly.
559559
560560### Wiki
561561
562562A type of Web site 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.
563563
564564The [[Main Page|Lazarus and Free Pascal Wiki]] site that you are currently browsing contains extensive documentation about the [[Glossary|Free Pascal]] and [[Glossary|Lazarus]] projects. Users and developers are actively encouraged to [register](http://wiki.lazarus.freepascal.org/index.php?title=Special:Userlogin&returnto=Special:Userlogout) and submit their contributions.
565565
566566### WinCE
567567
568568A Windows-like environment for portable hand-held devices, mobile phones, PDAs, etc. Produced by Microsoft, it has many features that resemble [[Glossary|Windows]] for desktops, but represents a "cut-down" version.
569569
570570Most hand-helds use the ARM processor, and a [[WinCE port]] of [[Glossary|Free Pascal]] and [[Glossary|Lazarus]] has been constructed to allow applications for the ARM and WinCE to be [[Glossary|cross-compiled]] and loaded for running on the hand-held device.
571571
572572For more details see [[Windows CE Development Notes]] and [[Windows CE Interface]]
573573
574574### Windows
575575
576576An [[Glossary|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.
577577
578578"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 [[Glossary|X11]]) or simple text-windows used by inherently text-based systems.
579579
580580## X
581581
582582### [X11](http://www.x.org/wiki/)
583583
584584Also called XFree, Xorg or simply X is a graphical interface originally designed for [[Glossary Unix|Unix]] and also widely used in [[Glossary|Linux]].
585585
586586The 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 [[Glossary|widgets]] yet, some programmers developed more advanced widgets like [[Glossary|GTK]] and [[Glossary|QT]] and various Window Managers and Desktop Environments like GNOME, KDE, XPde, XFCE, IceWM, WindowMaker and many others.
587587
588588For more information about X11 please visit the [XFree Web site](http://www.x.org).
589589
590590## Y
591591
592592## Z
593593
594594### Zaurus
595595
596596[[Glossary|PDA]] made by Sharp that uses Linux as its operating system. Its processor is the ARM for which a port of the Free Pascal compiler has been made, and it is possible to cross-compile applications in Free Pascal that will run on the Zaurus
597597
598598---
599599*From the Free Pascal wiki, page "Glossary", as it stood on 2022-09-05 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
600600Category: Glossary
601601Category: Main

Back to history