# Glossary/es

Deutsch (de) English (en) español (es) français (fr) italiano (it) 中文（台灣）‎ (zh_TW)

# Glosario

##### Aviso

Esta página núnca estará completa. Animamos a seguir añadiendo cosas, cómo por ejemplo:

Contents

## A

Lenguaje de programación derivado de Pascal y Modula, El nombre se eligió en honor a lady Ada Augusta Byron (1815-1852) Condesa de Lovelace, hija del poeta Lord George Byron, a quien se considera la primera programadora de la Historia, por su colaboración y relación con Charles Babbage, creador de la máquina analítica, la cual jamás fue construida.
Ada es un lenguaje procedural de alto nivel, muy similar en estructura y sintaxis a Pascal pero con algunas extensiones. Durante los años 80 el Departamento de Defensa de los EE.UU. exigió que toda la programación desarrollada por sus contratistas fuese llevada a cabo con Ada, pero, por desgracia, faltaron compiladores y herramientas de desarrollo, y el lenguaje nunca alcanzó popularidad; en realidad muy pocas aplicaciones militares de los EE.UU. fueron escritas en Ada. Más sobre Ada

Un ensamblador convierte símbolos inteligibles por las personas, que representan instrucciones máquina, en el binario correspondiente que ejecuta el ordenador. Por ejemplo, un ensamblador traducirá
 LD a,b # copiar el valor contenido en la posición de memoria a, en la posición de memoria b

en un número binario como este 01110010 que la máquina puede ejecutar. Lenguaje ensamblador es el conjunto de instrucciones codificadas que el programador escribe y que el ensamblador traduce a código máquina.

### 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 MySQL 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 conversion of an API library to a different programming environment (eg from C to FreePascal) requires a really excellent set of descriptive documents.

## B

### BASIC

Beginner's All-purpose Symbolic Instruction Code, en castellano sería, "código de instrucciones simbólicas de propósito general para principiantes". Opinión sobre BASIC de Edsger Dijkstra .
BASIC ha decaído, en parte debido a sus defectos inherentes, en parte debido a la introducción de lenguajes como Pascal, C y JAVA, y en parte debido a la enorme mejora en la velocidad de computadoras y del funcionamiento de los compiladores, de modo que los programas compilados pueden ser escritos rápidamente, ejecutados y eliminados los errores. Ha habido algunas tentativas de mejorar sobre el BASIC tal como Microsoft' s Visual Basic (que tiene algunas estructuras y puede eludir el uso de números de línea, eliminando la proliferación de GOTOs) pero estas últimas variantes son casi irreconocibles como BASIC, y deben mucho a C y a varios lenguajes de scripting en línea de órdenes. De hecho algunos programas de Visual Basic se parecen mucho a FreePascal o Programas de Lazarus.

### Booleano

Tipo de datos lógico en Pascal y otros lenguajes que puede tomar dos posible valores: Verdadero (True) o Falso (False).
El nombre hace referencia a George Boole, creador del Álgebra de Boole.
Ver Expresiones booleanas para una descripción más completa.

### Error (Bug)

Un error en un programa, que puede causar un fallo irremediable en la máquina, un fallo en el programa o simplemente un mal rendimiento o unos resultados erróneos. Esta denominación procede de los días en que los ordenadores eran construidos con válvulas de vacío electrónicas, relés y otros elementos electromecánicos y dado su gran tamaño podían albergarse insectos (bugs) en el interior del aparato y estos causaban cortocircuitos entre terminales, provocando averías en el ordenador o un comportamiento errático del mismo.
La mayoría de los equipos de desarrollo de aplicaciones animan a los usuarios a comunicar los errores que detecten, para que sean corregidos en versiones posteriores, y disponen para ello de un mecanismo claro y definido por ejemplo, Lazarus BugTracker).

## C

### 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 and buffer overflows. By contrast, Pascal imposes a much more rigorous discipline on the programmer and encourages good programming habits and practices.

### C++

Un dialecto de C, que incluye extensiones y estructuras para programación orientada a objetos.

### C#

Un lenguaje creado por Microsoft para su plataforma .NET. Tiene una sintaxis basada en C++, e incluye aspectos de otros lenguajes de programación, sobre todo Object Pascal y Java.

### CCR

Code and Component Repository

The Lazarus Code & Component Repository on SourceForge is the host for the Lazarus Documentation files and some component libraries.

### Class

A special kind of Object in Object Oriented programming.

A Class is a pointer to an Object; its declaration looks very similar to an Object.

### Command Line Interpreter

CLI

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.

Un programa que traduce el código fuente comprensible para las personas, habitualmente escrito en un lenguaje de alto nivel como Object Pascal, C++, Algol, FORTRAN o Ada, en instrucciones específicas de la máquina que son las que se ejecutarán.
La compilación, por lo general, implica varias etapas: la de análisis de código fuente para comprobar errores de sintaxis, la traducción del código fuente a instrucciones de la máquina, y el enlace del código resultante con una serie de librerías con el fin de producir, para la aplicación, el código final ejecutable por la máquina.

### 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 FreePascal Component Library (FCL), Lazarus Component Library (LCL) or Run Time Library (RTL), so that they can be re-used in many programming applications.

### Cross Compilation

The 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 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 Macintosh computer using a totally different processor.

### CrossPlatform

Usually refers to a program that can be run on several different Operating Systems and Platforms such as Windows, Linux and OSX. 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 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.

## D

### DataBase

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, DB2. 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.

### Delphi

An excellent commercial Pascal-based RAD IDE for Windows made by Borland. FreePascal sets out to be broadly compatible with Delphi, so that applications written by Delphi developers can be readily ported to FreePascal/Lazarus, and the FreePascal compiler has a Delphi compatability mode (using the compiler directive {\$MODE Delphi} or the command-line option -Sd).

However, slavish adherance to Delphi constructs and standards is no longer felt to be a requirement, and FreePascal 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 FreePascal developers, quite independent of the Delphi code.

### Debugger

A 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.

The Gnu Debugger GDB is used in FreePascal/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 emulator.

At present the documentation on debugging for FreePascal/Lazarus is not very complete, and users are advised to read the documentation on the GDB site carefully.

### diff

A GNU program used to show the differences between two files, or even two directories.

Used by software developers to check the changes in coding before committing an edited source file to a repository such as 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.

## Editor

Text Editor - one of the essential tools of program development.

The 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.

All operating systems have available a numer 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.

Many 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 structore 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.

Both the FreePascal and Lazarus IDEs have integral text editors which are the ones recommended for developing programs using the FreePascal Compiler, but programs developed using any text editor can be passed to the compiler, provided they are syntactically and logically correct.

Each 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!!

## F

### FCL

FreePascal Component Library

The main collection of components used by FreePascal. See also RTL (Run Time Library) and LCL (Lazarus Component Library)

### FORTRAN

Procedural language for FORmula TRANslation.

Once 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.

FORTRAN 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.

It is still one of the best languages for doing really hard sums, but is much less popular than languages with a friendlier user interface.

### FreePascal

An OpenSource CrossPlatform Pascal Compiler which supports TurboPascal/BorlandPascal (TP/BP), Delphi/Kylix (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.

FreePascal 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. FreePascal developers write code entirely independently from the Delphi sources.

FreePascal consists of the compiler itself, a number of libraries including the Run-time library RTL, the FreePascal Component Library FCL and a number of optional packages that can be installed by the user. There is also an Integrated Development Environment (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 (GUI) can use one of a number of products, Lazarus being the best-known IDE which has been contributed to by over 120 programmers of whom some are closely involved with the FreePascal project.

## G

### GDB

GNU Debugger used for debugging programs developed with the FreePascal compiler, as well as programs in C, C++, FORTRAN and other languages.

### GIMP

GNU Image Manipulation Program

One 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 Widgets (small graphic objects) used in the Gimp ToolKit (GTK) libraries that form one of the major sets of tools in Lazarus.

### GNU

GNU is a wrapper around the 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 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.

From GNU's Website: GNU is a recursive acronym for “GNU's Not UNIX”; it is pronounced “guh-noo.” GNU is like UNIX, but is not the same!

### GTK

Gimp Tool Kit.

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

Interfaz Gráfica de Usuario
Un entorno de trabajo en el que el usuario se enfrenta con una pantalla sobre la que hay imágenes o iconos que representan los programas, acciones o archivos, y, o bien utiliza un ratón (o un dispositivo apuntador similar) para seleccionar el icono apropiado o utiliza el teclado con botones o teclas de dirección para desplazarse por la pantalla y seleccionar el icono correspondiente. A menudo hay menús desplegables disponibles cuando el ratón se coloca sobre ciertas partes de la pantalla.
Una IGU normalmente hace uso de Orientación a Objetos o programación dirigida por eventos (sucesos), en vez de seguir una secuencia predeterminada de acciones. La aplicación espera a que suceda algo (evento) como un clic del ratón sobre un icono, para determinar la acción que se requiere y ejecutar la pieza adecuada de código, después la aplicación retorna al estado de 'Espera', hasta que otro evento ocurre, como el clic del ratón sobre un icono diferente.

## I

### IDE

Integrated Development Environment

It typically consists of a text editor for developing the program source, a Compiler, perhaps an Assembler and a Linker to make construction and subsequent execution of the program quick and easy. It may also have access to a Debugger to help detect and correct logical or operational errors in the code.

### Interpreter

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.

## J

### Java

Computer language developed by Sun Microsystems for writing Web-based applications. It is an intepreted 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 Object-Oriented Programming.

Read more: Pascal for Java users

## K

### Kylix

Delphi-like Rad Tool for Linux made by Borland. It is based on Delphi, and uses the QT / CLX widget set. It attempts to port Delphi's IDE to Linux by using WINE, 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 FreePascal/Lazarus as the only viable alternative for Pascal development in Linux.

## L

### Lazarus

A CrossPlatform RAD IDE made with FreePascal and designed to use FreePascal as its programming language and compilation tool. It has many of the features of the IDE found in Borland's Delphi and 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.

Its main user interface includes a Source Code 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.

Developers 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 FreePascal compiler and linker to produce executable code. During execution of the code, the debugger is used to trap errors and find logical problems in the program.

The IDE can even be used to rebuild Lazarus itself, when corrections or updates are received, for example, from the SVN repositories.

### LCL

Lazarus Component Library, contains a large number of units defining classes, components and methods for creating applications using FreePascal. The LCL consists mainly of visual components and objects, often called 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 FreePascal Component Library and Run Time Library. Many of the components defined in the LCL and other libraries are used to build the Lazarus IDE.

See Lazarus Components for a list of components available, and their equivalent in TurboPascal and Delphi.

A computer program that takes the output from a Compiler and finds any pre-compiled library routines that are needed, and joins them all together to produce and executable program.

### Linux

An Open Source Operating System derived originally from 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 FreePascal and Lazarus are built, and one of the platforms extensively used for their development.

## M

### MAC

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 looks very like Unix or Linux, and 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 at a reasonable price.

MAC can also refer to the MAC workstation which is the hardware needed to run the Operating System.

In regards to a network MAC means Media Access Control or Medium Access Control

## O

### Objeto

Un tipo especial de #Registro utilizado en FreePascal y otros lenguajes de alto nivel Orientados a Objetos. Además de contener un grupo de campos de datos (a semejanza de los registros convencionales), un Objeto contiene punteros a Métodos (procedimientos y funciones) para procesar los datos de los campos. Por ejemplo, un objeto puede tener una matriz de números reales, junto con los Métodos para calcular la media de los mismos.
 Type
Media = Object
UnValor: Integer;
Valores: Array [1..200] of Real;
Function DameLaMedia  : Real; { calcula la media de los valores de la matriz }
End;
O un Botón en un Formulario en un entorno gráfico podría tener la siguiente estructura (muy simplificada):
 Type
Boton = Object
Arriba, Izquierda: Integer; { coordenadas de pantalla para definir la posición del botón }
Alto, Ancho: Integer;
Color: TColor;
Rotulo : String;
Procedure OnClick; { método ejecutado cuándo el ratón es pulsado sobre la imagen del botón}
End;
El procedimiento o función de la definición precedente debe ser declarado en alguna parte del programa, habitualmente en la sección de Implementation.
Ver también Clases

### OO

Orientación a Objetos
Extensión del lenguaje procedimental que permite la creación y manipulación de Objetos complejos.
Mientras el Pascal estándar dispone de estructuras cómo Registros en la que diferentes tipos de datos enteros, reales, matrices, cadenas de caracteres y punteros pueden coexistir de forma predeterminada, un lenguaje orientado a objetos cómo FreePascal permite que esa estructura pueda también contener Métodos (procedimientos y funciones) para manipular los datos contenidos en la misma.

### Open Source

A 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.

From the outset, FreePascal and 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.

### OS

The 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.

An operating system usually has a part called the Kernel (ie 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.

There 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.

An 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.

## P

### Pascal

Pascal is a procedural programming language invented by Niklaus Wirth (see Object Pascal History, Why_use_Pascal).

There is an international standard definition of the language (ISO 7185, equivalent to ANSI/IEEE770X3.97), but apart from Gnu Pascal (Open Source) and Prospero Pascal (a commercial product available only for 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.

FreePascal, Delphi and other variants of Pascal have Object Oriented 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, and there is also a WinCE cross-compiler branch of FPC that allows applications to be developed in Windows for operation on the Pocket-PC.

## Q

### Qt interface

Qt is one of the major 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.

## R

Rapid Application Development (Examples: Delphi, Lazarus, Visual Basic)

A software package for the fast and easy creation of Applications (Programs). Typically includes a text editor, a graphic user interface, and easy links to various tools such as compilers, linkers and debuggers. Frequently offers an Integrated Development Environment (IDE).

### Registro

Un tipo estructurado de datos en #Pascal y otros lenguajes de alto nivel.
Mientras una estructura simple tal que una matiz o un conjunto consiste en una agrupación de elementos del mismo tipo, un registro consiste en un agregado de elementos de tipos diversos, y puede tener en una gran complejidad.
Los registros son muy utilizados en Pascal, para agrupar elementos de datos lógicamente unidos. Constituyen la base para tipos de estructuras más complicadas cómo los Objetos y las #Clases, utilizados en la programación Orientada a Objetos. Más información en: Registro.

### 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 FreePascal Component Library FCL

## S

### 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

A document version control system designed to improve upon and ultimately to replace CVS.

SVN is the document management system currently used by both the FreePascal and the Lazarus projects.

## T

### Turbo Pascal

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 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.

It also forms the foundation for FreePascal and Lazarus, but the main difference between Borland's compilers and FreePascal is that the source is not available for Borland, 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).

## U

### Unix

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 Open Source system resembling Unix called 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.

### Unit

Un archivo con código fuente Pascal es denominado una unidad y usualmente tienen las extensiones .pas, .pp o .p.
Unit es un identificador reservado de Pascal que habitualmente es la primera palabra de la primera línea de código del archivo "unit MiUnidad;", donde MiUnidad es el nombre de la unidad, que se corresponde con el nombre del archivo.
Una unidad tiene además dos secciones principales interface e implementation que equivaldría en la terminología de C/C++ al archivo de cabeceras (.h, .hpp, .hh) y al erchivo del cuerpo (.c, .cpp, .cc).
Todo el código en la sección de interface puede ser utilizado por otras unidades o archivos del programa que utilicen la unidad: esto se hace a través de la cláusula uses. La cláusula uses puede aparecer tanto en la sección de interfaz cómo en la de implementation; el código dentro de la sección implementation es "privado" y únicamente es accesible desde dentro de la propia unidad, a no ser que sea redefinida en la sección de interface, cómo es el caso de los procedimientos y funciones "globales"
Una unidad Pascal también puede contener otras secciones, initialization y finalization, que serán ejecutadas automáticamente cuando el programa principal se inicia y ternima la utilización de la unidad, tal como indican sus nombres.

### Uses

Cláusula en un programa Object Pascal. Una línea cerca del principio del archivo o Unidad (o siguiendo a interface en la sección de interfaz o a implementation en la implementación) que enumera otras unidades que necesitan estar disponibles para hallar componentes utilizados en el programa.
Por ejemplo
 uses
Classes,
SysUtils,
MySpecialUnit;
Ver Uses.

## V

### VCL

Librería de Componentes Visuales es la base de las clases de Componentes de Delphi.

### V4L

Vídeo para Linux

### VFW

Vídeo para Windows

## W

### Widget

A small (or even large!) graphical object or image, often part of a larger image, form, screen or picture. 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.

Lazarus has separate widget sets for each Window Manager system, such as Microsoft Windows (widget sets Win32/64, or WinCE for hand-held devices), Linux (widget sets GTK1 or GTK2 for Gnome-based sysems, QT for KDE systems), Apple (widget set Carbon) as well as some non-specific sets such as FpGUI.

Lazarus 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 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.

### 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.

The Lazarus and FreePascal Wiki site that you are currently browsing contains extensive documentation about the FreePascal and Lazarus projects. Users and developers are actively encouraged to register and submit their contributions.

### 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.

## X

### X11

Also called XFree, Xorg or simply X is a graphical interface originally designed for Unix and also widely used in Linux.

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.