Difference between revisions of "Glossary/de"

From Lazarus wiki
Jump to navigationJump to search
m (→‎LCL: typo)
m (→‎Linker: translated)
Line 248: Line 248:
  
 
=== Linker ===
 
=== Linker ===
A computer program that takes the output from a [[Glossary#Compiler|Compiler]] and finds any pre-compiled library routines that are needed, and joins them all together to produce an executable program.
+
Ein Computerprogramm das die Ausgaben von einem [[Glossary/de#Compiler|Compiler]] nimmt, die von diesen benötigte, vorkompilierte Bibliotheksroutinen findet, und sie alle miteinander zu einem ausführbaren Programm verbindet.
  
 
=== [http://www.linux.org/ Linux] ===
 
=== [http://www.linux.org/ Linux] ===

Revision as of 11:00, 7 August 2011

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

Diese Seite wird niemals komplett sein. Ich ermutige Sie, hier Stichworte anzufügen, die:

  • sich auf dieses Wiki beziehen
  • sich auf Freepascal beziehen
  • sich auf Lazarus beziehen

Beachten Sie, dass das buildfaq ebenfalls ein Glossar zu FPC/Lazarus enthält.


Contents

# 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

#

A

Ada

Eine Computersprache, die von Pascal und Modula abstammt, und benannt ist nach der Freundin von Charles Babbage. Babbage (1791-1871), ein Engländer, war einer der ersten Vordenker in der Entwicklung von Computern und veröffentlichte den Entwurf einer 'difference engine', einer mechanischen Rechenmaschine (die aber nie wirklich gebaut wurde). Ada King, Countess of Lovelace war eine Studentin/Kollegin von Babbage und schrieb ein Programm zum Betrieb der 'difference engine'; sie kann als die erste Programmiererin eines Computers angesehen werden. (Es wurde ihr eine romantische Beziehung zu Babbage nachgesagt; Ada war auch die Tochter des Dichters Byron).

Ada ist eine prozedurale Computer-Hochsprache, mit sehr ähnlicher Struktur und Syntax zu Pascal, aber mit einigen Erweiterungen. In den 1980ern beschloss das US-Verteidigungsministerium, dass alle von ihm in Auftrag gegebenen Programmierungen in Ada durchzuführen seien, aber unglücklicherweise mangelte es an geeigneten Compilern und Entwicklungswerkzeugen, und die Sprache erlangte nie große Popularität. Sehr wenige Anwendungen für das US-Militär wurden tatsächlich in Ada geschrieben.

Assembler, Assembler-Sprache

Ein Assembler wandelt von Menschen lesbare Symbole (die Maschinenanweisungen darstellen) in die binären Anweisungen um, die von einem Computer ausgeführt werden. Beispielsweise würde ein Assembler den Befehl

LD a,b # lade den Inhalt der Speicherstelle a in die Speicherstelle b

übersetzen in eine Binärsequenz wie 01110010, die von der Maschine ausgeführt werden kann. Die Assemblersprache ist die Liste von festgelegten Anweisungen, die von einem Programmierer in einem Programm geschrieben werden können, welches der Assembler in Maschinencode übersetzt.

Ein Assembler unterscheidet sich von einem Compiler dadurch, dass er prozessor-spezifisch ist (d.h. verschiedene Assembler für i386, MC68000, ARM Prozessoren etc.) und dadurch, auf einer niedereren Ebene zu sein: er verarbeitet sehr spezifische Anweisungen zum Bewegen von Daten und zu detaillierten arithmetischen Operationen. Viele Compiler (inklusive FreePascal) erlauben dem Programmierer, in den hochsprachlichen Quellcode auch Bereiche mit Assembler einzufügen; solche Bereiche sind natürlich nur sinnvoll für den Prozessor für den sie beabsichtigt sind. Im Gegensatz dazu können Compiler Programme übersetzen, die auf einer Vielzahl unterschiedlicher Prozessoren funktionieren.

API

Application Program Interface (= dt. Schnittstelle zur Anwendungsprogrammierung, kurz: Programmierschnittstelle ): ein Satz von Werkzeugen wie z.B. Prozedur-/Funktionsaufrufe, die es Programmierern erlauben, ein bestimmtes Softwarepacket zu benutzen.

Ein Beispiel ist die API für das MySQL - Datenbanksystem; seine Autoren haben einen Satz von Definitionen für Prozedur-/Funktionsaufrufe veröffentlicht, mit detaillierten Spezifikationen aller Parameter oder Argumente für jede einzelne Funktion. Die ursprüngliche MySQL API war festgelegt für die Programmierung in C, aber die Entwickler von FreePascal haben einen Satz von entsprechenden Prozedur-/ Funktionsaufrufsdefinitionen in Pascal geschrieben, die es FreePascal oder Lazarus- Programmierern gestatten, auch die Bibliothe der MySQL - Funktionsaufrufe zu verwenden.

Ein sehr wichtiger Teil einer jeden API ist seine Dokumentation und jede Konvertierung einer API - Bibliothek für eine andere Programmierumgebung (z.B. von C zu FreePascal) erfordert eine Menge wirklich exzellenter Dokumentationen / Beschreibungen.

B

BASIC

Beginner's All-purpose Symbolic Instruction Code

(=dt.: „symbolische Allzweck-Programmiersprache für Anfänger“) Eine Computersprache, die einst als Übungswerkzeug populär war oder auch als Experimentierwerkzeug für die Programmierung. Als eine interpretierte Sprache war es einfach und schnell, damit an seinen Programmen Änderungen vorzunehmen und die Auswirkungen zu sehen. Der Programmierer gab jeder Anweisung eine Zeilennummer (üblicherweise in 10er Schritten) und die Ausführung der Anweisungen entsprach der Reihenfolge der Zeilennummern. Zusätzliche Zeilen wurden mit dazwischenliegenden Zeilennummern eingefügt (z.B zwischen Zeile 10 und Zeile 20 wird Zeile 15 eingeschoben). Der Sprache fehlte eine klare Programmstruktur: die Ausführung konnte mit GOTO - Anweisungen umgeleitet werden. Dies begünstigte die Entwicklung eines recht undisziplinierten Programmierstils durch unkontrollierten Einsatz von GOTOs - in mancher Hinsicht war BASIC die exakte Antithese zu Pascal mit seiner strengen Betonung einer strukturierten Programmierung.

BASIC hat jüngst etwas an Gunst verloren, teils wegen der ihm anhaftenden Defizite, teils wegen der Einführung von Sprachen wie Pascal und C und teils wegen riesiger Fortschritte in der Geschwindigkeit der Computer und der Leistung von Compilern, sodass kompilierte Programme rasch geschrieben, ausgeführt und debugged werden konnten. Es gab einige Versuche BASIC zu verbessern: Microsofts Visual Basic hat einige rudimentäre Strukturen und verwendet keine Zeilennummern mehr (und braucht deshalb auch weniger GOTOs). Aber diese jüngeren Varianten haben fast nichts mehr mit dem Ur-BASIC gemein und verdanken viel davon C und einigen Kommandozeilen- oder Skript-Sprachen. Tatsächlich sehen einige Visual Basic Programme recht ähnlich zu FreePascal- oder Lazarus- Programmen aus.

Boolean

Ein logischer Datentyp in Pascal und anderen Programmiersprachen, der nur eine von zwei Werten annehmen kann, nämlich Wahr (True) oder Falsch (False).

Benannt nach George Boole, einem Pionier der logischen (Boole'schen) Algebra.

Siehe Boolean_Expressions für eine vollständige Beschreibung.

Bug

Ein Fehler in einem Programm, der ein katastophales Versagen einer Maschine bewirken könnte, ein Versagen des Programmes oder auch einfach eine fasche Ausführung oder Programmausgabe. Dieser Ausdruck stammt aus der Zeit als Computer noch aus Vakuumröhren aufgebaut waren: Käfer (Wanzen), die im Innernen des Apparates herumkrochen, konnten Kurzschlüße verursachen, die zu Hardwarefehlern oder unvorhersehbaren Ergebnissen führten.

Die meisten Entwicklungsteams von Software begrüßen die Rückmeldung von Fehlern durch die Benutzer der Software. Dadurch können Fehler in nachfolgenden Versionen beseitigt werden. Deshalb haben Software-Projekte einen klar definierten Fehlerberichtsmechanismus (zum Beispiel Lazarus BugTracker).

C

C (Programmiersprache)

Eine weitverbreitete Computer-Programmiersprache, besonders hilfreich in der Systemprogrammierung. Sie bildet die Basis für den größten Teil des Linux-Betriebssystems und - soweit wir feststellen können - auch für das Windows-System. Ihr größter Nachteil ist die unzureichende Strenge, die es erlaubt, dass sich schlechte Programmiergewohnheiten einschleichen. Sie ist auch sehr anfällig für Probleme wie Speicherlecks und Pufferüberläufe. Im Gegensatz dazu legt Pascal dem Programmierer viel strengere Disziplin auf und fördert die Entwicklung guter Programmiergewohnheiten und -praktiken.

Siehe auch Pascal for C users

C++

Eine Variante von C, die auch Konstrukte der objektorientierten Programmierung enthält.

C#

Eine Sprache, die recht stark von Microsoft unterstützt wird und für ihre .NET -Plattform entwickelt wurde. Sie hat eine Syntax basierend auf C++, die auch Aspekte aus anderen Programmiersprachen beinhaltet, besonders von Object Pascal und Java.

CCR

Code and Component Repository (= dt.: Code- und Komponenten-Lager)

Das Lazarus Code & Component Repository auf SourceForge ist der Speicherort für die Dokumentationsdateien von Lazarus und für einige Komponentenbibliotheken.

Class (Klasse)

Eine besondere Art von Objekten in der Objektorientierten Programmierung.

Eine Klasse ist ein Zeiger auf ein Objekt; ihre Deklaration ähnelt der eines Objekts.

COBOL

COmmercial and Business Oriented Language (= dt.: Kaufmännische und Geschäftsorientierte Sprache)

Eine Sprache, die in der Geschäftswelt in den 1960ern und später weit verbreitet war. Trotz ihrer Defizite und der Einführung neuerer Sprachen, ist sie noch immer an vielen Orten im Einsatz, wenn auch nur als Überbleibsel in einigen Spezialbereichen. Das wohl aktuellste Beispiel dafür ist der Staat Kalifornien ([1]), wo das staatliche Lohnzahlungssystem noch immer COBOL verwendet. Der Erlass des Gouverneurs zu Gehaltskürzungen der Staatsangestellten bereitete dort größere Probleme, weil es nicht mehr genug COBOL-Programmierer gibt!

Command Line Interpreter (Befehlszeilen-Interpreter)

CLI

Ein Programm das auf den meisten Computer-Betriebssystemen vorhanden ist. Es untersucht einen Daten-Eingabe-Strom, entweder von der Tastatur (Konsolenmodus) oder von einer Textdatei (Batch- bzw. Stapelmodus), und interpretiert oder analysiert den Text, um darin Anweisungen zu finden, die die Ausführung von Befehlen des Betriebssystems, den Start von Programmen oder von Anweisungsskripts bewirken.

Die CLI-Umgebung, wo der Benutzer die Befehle an einer Konsole eingibt, steht im Gegensatz zum Graphical User Interface (GUI), wo der Benutzer mehr die Maus verwendet und eher Bilder als Text dem Benutzer die Informationen vermitteln.

Compiler

Ein Programm, das von Menschen lesbaren Quellcode - üblicherweise in einer höheren Programmiersprache wie Object Pascal, C++, Algol, FORTRAN oder Ada - übersetzt in Maschinencode zur Ausführung durch einen Computer.

Eine Kompilierung umfasst normalerweise mehrere Schritte: Analyse des Quelltextes zum Aufspüren von Syntaxfehlern, Übersetzung des Quellcodes in Maschinenanweisungen, und Einbinden (= engl. linking) des resultiernden Codes mit Bibliotheken, um daraus zuletzt eine von Maschinen ausführbare Anwendung zu erzeugen.

Siehe auch die Einträge Compiler und Compilers im Lazarus-Wiki.

Component

Eine Komponente ist ein kleines Stück Code, das typischerweise besteht aus einer Datendefinition und einigen Methoden. Diese definieren und beschreiben eine Aktion oder eine Folge von Aktionen in einer Pascalanwendung. Komponenten werden meist entsprechend ihrer Funktionen gruppiert in Bibliotheken wie der FreePascal Component Library (FCL), Lazarus Component Library (LCL) oder Run Time Library (RTL), sodass sie in vielen Anwendungen wieder verwendet werden können.

Cross Compilation

ist das Kompilieren eines Programms auf einem Computertyp für die tatsächliche Verwendung auf einem anderen Computer mit einem anderen Prozessor oder einem anderen Betriebssystem. Beispielsweise können Pascal-Programme mit einem Cross-Compiler auf einem PC unter Linux kompiliert und auf einem PC unter Windows ausgeführt werden, oder Programme werden auf einem PC kompiliert und laufen auf einem PDA wie dem Sharp Zaurus oder Geräten, die WinCE verwenden.

Ein weiteres typisches Beispiel ist die Cross-Kompilierung des FreePascal-Compilers oder der Lazarus-IDE auf einer Plattform wie Linux zur Verwendung auf einer anderen Plattform wie Windows oder auf dem Macintosh-Computer, der einen vollkommen anderen Prozessor benutzt.

CrossPlatform

Dieser Begriff beschreibt üblicherweise Programme, die unter mehreren unterschiedlichen Betriebssystemen und Plattformen wie Windows, Linux und OSX ausgeführt werden können. Beispiele sind der FreePascal-Compiler und Lazarus, die OpenOfficeOrg-Suite von Büroprogrammen, die Mozilla-Familie von Webbrowsern und e-Mail-Server.

CVS

Concurrent Version System (siehe auch Subversion SVN). Ein System zur Abwicklung einer geordneten Entwicklung einer Softwaresuite trotz des Zugriffs mehrerer Autoren. Ein Repositorium wird eingerichtet, von dem sich die Entwickler Dokumente oder Dateien abholen können, und zu dem sie das bearbeitete Material zurücksenden können. Üblicherweise steht das Zusenden von neuem oder bearbeiteten Material unter der Kontrolle eines (oder mehrerer) Moderators oder Administrators. Dadurch wird eine strenge Versionskontrolle sichergestellt.

D

DataBase, Datenbank

Eine Computeranwendung zur strukturierten Speicherung einer großen Menge von Daten und zum einfachen Zugriff auf diese. Viele Webseiten im Internet machen einen intensiven Gebrauch von Datenbanken: zum Beispiel hält ein Händler seinen Warenkatalog in einer Datenbank und seine Geschäftstransaktionen in einer zweiten, verknüpften Datenbank; ein Software-Entwicklungsteam (wie das FreePascal-Team) könnte seine Programme und Unterprogramme in einer Datenbank verwalten; ein medizinisches Forschungsteam könnte seine Fallstudien (Case Report forms, CRFs) in einer Datenbank speichern.

Einige typische Beispiele sind MySQL, PostgreSQL, Oracle, DB2. Viele von diesen benutzen als gemeinsamen Standard die [Glossary#SQL|Structured Query Language]], um Daten in die Datenbank zu stellen oder aus ihr abzufragen. FreePascal/Lazarus hat Verknüpfungen zu einigen dieser Datenbanksystemen.

Ein Datenbanksystem besteht typischerweise aus den eigentlichen Datendateien, einem Server der diese Dateien liest oder schreibt, und einem Klienten, der die Anweisungen des Benutzers interpretiert.

Siehe auch den Eintrag Datenbanken im Haupt-Wiki

Delphi

Eine exzellente, kommerzielle, auf Pascal basierende RAD Entwickungsumgebung (IDE) für Windows; ursprünglich entwickelt von der Firma Borland, später Inprise, heute Embarcadero.

FreePascal ist in weiten Teilen mit Delphi kompatibel, sodass für Delphi geschriebene Anwendungen recht einfach auf FreePascal/Lazarus übertragen werden können. Der FreePascal-Compiler hat einen Delphi-Kompatibilitätsmodus (mittels der Compiler-Direktive {$MODE Delphi} oder der Befehlszeilenoption -Sd).

Heute scheint ein sklavisches Festhalten an den Konstrukten und Standards von Delphi nicht mehr unbedingt erforderlich. Die Entwickler von FreePascal haben viele der Delphi-Konstrukte verbessert, und produzieren in vielen Fällen eine flexiblere und besser einsetzbare Programmierumgebung. Sämtliche Prozeduren, Funktionen, Klassen und andere Programmierelemente sind von den FreePascal-Entwicklern von Grund auf neu geschrieben worden, gänzlich unabhängig vom Delphi-Code.

Debugger

Ein Computerprogramm, das von Entwicklern dazu verwendet wird, bei der Entwicklung eines neuen Programms die Ausführung zu kontrollieren und anzuzeigen, wo ein Programm Fehler enthält. Ein Debugger zeichnet den aktuellen Punkt der Programmausführung auf (z.B. die Zeilennummer im Quelltext), den Inhalt der Variablen des Programms, und liefert oft auch eine Fehlerverfolgung (back-trace), die im Falle eines Fehlers anzeigt, welche Anweisungen dem Fehler unmittelbar vorangegangen sind.

Der Gnu Debugger GDB wird in FreePascal/Lazarus-Systemen verwendet; deshalb muss GDB auf diesen Systemen installiert sein. Unter Linux und anderen Unix-ähnlichen Systemen kann die originale Gnu/Linux-Version leicht installiert werden; unter Windows ist eine spezielle Windows-Version des GDB in den offiziellen Lazarus-Paketen enthalten; alternativ dazu kann GDB für Windows aus den Quelltexten kompiliert und in Verbindung mit dem CygWin-Emulator ausgeführt werden.

Derzeit ist die Dokumentation über das Debuggen unter FreePascal/Lazarus recht unvollständig. Es wird den Benutzern daher geraten, auf die Dokumentation der GDB-Webseite zurückzugreifen.

diff

Ein GNU- Programm zum Anzeigen der Unterschiede zwischen zwei Dateien oder auch zwei Verzeichnissen.

Es wird von Software-Entwicklern verwendet, um Änderungen im Code zu überprüfen, bevor eine bearbeitete Quelltextdatei an ein Repositorium wie SVN übertragen wird. Die Ausgabe von diff kann auch benutzt werden, um einen Patch zu erzeugen. So ein Patch wird auf eine Quellcodedatei angewendet. Dadurch werden nur die notwendigen Korrekturen vorgenommen und man erspart sich die Übertragung der gesamten Datei.

E

Editor

Texteditor - eines der wichtigsten Werkzeuge zur Programmentwicklung.

Der Quellcode der meisten Computerprogramme besteht aus Textzeilen mit den Programmanweisungen in einer logischen Abfolge. Ein Texteditor ist zur Eingabe des Quellcodes und zu seiner Bearbeitung oder Korrektur notwendig.

Alle Betriebssysteme enthalten einen oder mehrere Texteditoren, einige sehr primitiv (so wie ED oder EDLIN unter DOS/Windows oder ED, vi unter Unix/Linux) und einige recht hochentwickelt (so wie NotePad und WordPad unter Windows, GEdit, KATE, KWrite und EMACS unter Unix/Linux). Es ist sogar möglich (aber keinesfalls empfohlen) ein Textverarbeitungsprogramm zur Bearbeitung des Quelltextes zu nehmen.

Viele Texteditoren bieten Syntax-Hervorhebung (d.h. Schlüsselwörter, Datentypen oder die Ebenen in verschachtelten Anweisungen werden mittels unterschiedlicher Farben dargestellt). Eine automatische Einrückung macht Programmstrukturen leichter erkennbar. Viele Editoren haben Möglichkeiten zur Suche und zum Ersetzen, manche erkennen den Anfang von Unterprogrammen (Prozeduren und Funktionen) oder öffnen Include-Dateien falls erforderlich.

Sowohl die FreePascal- als auch die Lazarus - IDE haben einen integrierten Texteditor. Beide sind die empfohlenen Editoren zur Programmentwicklung mit dem FreePascal-Compiler. Es können aber auch Programme, die mit anderen Editoren entwickelt wurden, an den Compiler übergeben werden, vorausgesetzt, sie sind syntaktisch und logisch korrekt.

Jeder Benutzer wird seinen Lieblingseditor finden und dessen Vorzüge und Einschränkungen kennen. Trotzdem sind Streitereien zwischen den Anhängern dieses oder jenes Editors manchmal fast ebenso hitzig wie Streitereien über das bevorzugte Betriebssystem!!

F

FCL

FreePascal Component Library (= dt.: FreePascal-Komponenten-Bibliothek)

Die wichtigste Sammlung von Komponenten, die von FreePascal benutzt wird. Siehe auch: RTL (Run Time Library) und LCL (Lazarus Component Library)

FORTRAN

Prozedurale Sprache für FORmula TRANslation (=dt.: Formelübersetzung).

Einst sehr beliebt für akademische, wissenschaftliche and technische Programme, ihr Schwerpunkt lag darin, Aufgaben effizient zu erledigen - sehr gut für rechenintensive Anwendungen, aber wenige Zugeständnisse an ein einfaches Benutzerinterface.

FORTRAN litt an seiner eher starren syntaktischen und formelhaften Struktur, obwohl spätere Versionen weniger Kanten hatten und auch eine fensterorientierte Benutzerumgebung mit interaktiver Eingabe/Ausgabe.

Sie ist dennoch eine der besten Sprachen für wirklich anspruchsvolle Berechnungen, aber auch weniger populär als Sprachen mit einer freundlicheren Benutzerschnittstelle.

FreePascal

Ein OpenSource CrossPlatform Pascal Compiler, der TurboPascal/BorlandPascal (TP/BP), Delphi/Kylix (OO oder Object Pascal) und Apple-Syntax unterstützt. Er hat auch einige zusätzliche Erweiterungen wie C-artige Makros und Operatoren/Symbole, Überladen von Operatoren, automatisches Überladen von Funktionen und andere nette Merkmale.

FreePascal versuchte ursprünglich, die besonderen Merkmale von Delphi in einer Open-Source-Umgebung zu reproduzieren. Es bietet den Vorzug, unter einer Vielzahl von Betriebssystemen zu funktionieren. Aber es hat inzwischen einen eigenen Charakter bzw. eigenes Ethos angenommen und sklavisches Festhalten an Kompatibilität zu Delphi ist nun kein vorrangiges Bestreben mehr. Die Entwickler von FreePascal schreiben Code gänzlich unabhängig von den Delphi Quelltexten.

FreePascal besteht aus dem Compiler selbst, einer Anzahl von Bibliotheken inklusive der Laufzeitbibliothek RTL, der FreePascal Komponenten-Bibliothek FCL und einer Vielzahl von optionalen Packages, die durch den Benutzer installiert werden können. Es gibt auch eine integrierte Entwicklungsumgebung (IDE) für den Textmodus - sehr ähnlich zur TurboPascal IDE. Benutzer, die eine grafische Benutzeroberfläche (GUI) vorziehen, können aus mehreren Produkten auswählen. Lazarus ist darunter die bekannteste IDE, zu der über 120 Programmierer beigetragen haben. Einige dieser Entwickler arbeiten eng mit dem FreePascal-Projekt zusammen.

G

GDB

Der GNU Debugger wird zur Fehlersuche in Programmen eingesetzt, die mit dem FreePascal - Compiler entwickelt werden, genau so wie auch für Programme in C, C++, FORTRAN und anderen Sprachen.

GIMP

GNU Image Manipulation Program (=dt.: GNU Bildbearbeitungsprogramm)

Einer der größten Einflüsse auf die Linux Graphik - es ist ein Werkzeug, das manche anfänglich schwer zu benutzen finden, aber es ist so weitgehend konfigurierbar und umfassend nützlich, sodass die meisten davon überzeugt werden. Das GIMP liefert mit seinen Gimp-ToolKit-Bibliotheken (GTK) auch die meisten Widgets (=kleine grafische Objekte). Diese Bibliotheken bilden auch eines der wichtigsten Werkzeugsets in Lazarus.

GNU

GNU ist ein Bindeglied zwischen dem Linux - Kern (Kernel) und der Befehlszeile (Shell). Es liefert eine große Anzahl von Programmen, Benutzeroberflächen (sowohl grafischen als auch text-basierten), Anwendungen und Entwicklungssystemen. Es enthält auch eine Vielzahl von Bibliotheken zur Benutzung durch verschiedene Packages und Systeme. Seine Entwickler empfehlen, dass das Betriebssystem Linux tatsächlich als GNU/Linux bezeichnet wird, weil der Linux-Kern auf die Funktionalität GNU angewiesen ist, um für den Endbenutzer zu arbeiten.

Aus GNU's Webseite: GNU ist eine rekursive Abkürzung für “GNU's Not UNIX”, also: “GNU ist Nicht UNIX.” GNU ist wie UNIX, aber es ist nicht dasselbe!

GTK

Gimp Tool Kit.

GTK+ ist ein multi-plattform Werkzeugsatz zum Erzeugen von grafischen Benutzeroberflächen. FreePascal und die Lazarus-IDE machen umfassenden Gebrauch vom GTK. Es enthält einen Satz von Widgets oder kleinen grafischen Objekten, die in die Formulare oder Panels von Anwendungen aufgenommen werden können.

GUI

Graphical User Interface (= dt.: grafische Benutzeroberfläche, -schnittstelle)

Eine Arbeitsumgebung, die dem Computerbenutzer einen Bildschirm präsentiert, auf dem Bilder oder Symbole Programme, Aktionen oder Dateien darstellen. Zum Auswählen des passenden Symbols wird entweder ein Mauszeiger (oder ein ähnliches Zeigegerät) benutzt oder eine Tastatur mit Richtungstasten (Pfeiltasten). Oft sind herabklappbare Menüs verfügbar, wenn die Maus über bestimmten Stellen des Bildschirms platziert wird.

Eine GUI geht typischerweise einher mit einer objektorientierten oder ereignisgesteuerten Programmierung. Anstatt einer vorgegebenen Abfolge von Aktionen zu folgen, wartet die Anwendung auf Ereignisse wie einen Mausklick auf ein bestimmtes Symbol, um festzustellen, welche Aktion ausgeführt werden soll. Danach kehrt die Anwendung wieder zurück in den "Wartezustand" bis ein weiteres Ereignis ausgelöst wird, wie z.B. ein Mausklick auf ein anderes Symbol.

H

I

IDE

Integrated Development Environment (= dt.: integrierte Entwicklungsumgebung)

Sie besteht im Normalfall aus einem Texteditor für das Entwickeln des Quelltextes eines Programms, einem Compiler, vielleicht auch einem Assembler und einem Linker, um die Konstruktion und nachfolgende Ausführung des Programmes zu ermöglichen. Sie kann auch einen Debugger enthalten, der hilft, logische und funktionale Fehler im Code zu entdecken und zu korrigieren.

Interpreter

Ein Interpreter ist ein Software-Werkzeug, das einen Eingabe-Datenstrom (von der Eingabezeile oder aus einer Textdatei) untersucht, der Anweisungen in einer Programmiersprache enthält. Er konvertiert diese in Maschinencode-Anweisungen, die dann sofort ausgeführt werden. Dies unterscheidet ihn von einem Compiler (welcher eine ganze Datei in Maschinenanweisungen konvertiert und dann den Code für die nachfolgende Ausführung abspeichert) insofern, dass er Instruktionen zeilenweise interpretiert und dass der Konvertierungsprozess bei jeder Programmausführung wieder erfolgen muss.

Die Befehlszeilen-Interpreter unter Linux, Windows, IBM Systemen und DEC PDP und VAX Systemen sind gute Beispiele. Einige der populärsten Programiersprachen sind interpretierend, nicht kompilierend. Die besten Beipiele sind BASIC (in all seinen Varianten, inklusive Visual BASIC), PERL, Python und Java. Programme in einer interpretierenden Sprache sind im Allgemeinen um einige Größenordnungen langsamer als Programme in einer kompilierenden Sprache. Dieser Nachteil beruht auf der vor jeder Programmausführung nötigen Interpretation der Befehle. Der große Vorteil ist, dass Änderungen einfach vorgenommen werden können, neuer Code kann schnell getestet werden, und oft ist die Geschwindigkeit nicht so bedeutend verglichen mit der Einfachheit der Entwicklung. Einige Sprachen (inklusive einiger BASIC-Dialekte) bieten dem Programmierer die Möglichkeit, ein Programm zuerst im interpretierenden Modus auszuprobieren. Wenn dann das Programm korrekt arbeitet und keine weiteren Änderungen nötig sind, kann das ganze Programm kompiliert werden und so entsteht dann ein viel schnelleres Produkt.

Einige Varianten von Pascal (inklusive UCSD Pascal von der Universität von California in San Diego) bieten eine besondere Kombination von kompilierter und interpretierter Operation: der Pascal-Quelltext wird zuerst in einen vorläufigen P-Code konvertiert, der dann an einen P-Code-Interpreter zur Übersetzung und Ausführung übergeben wird.

J

Java

Eine Computersprache, entwickelt von Sun Microsystems, zum Schreiben webbasierter Anwendungen. Sie ist eine interpretierte Sprache (die dazu tendiert, ziemlich langsam ablaufende Programme zu produzieren), aber Anwendungen können rasch geschrieben und auf eine Vielzahl von unterschiedlichen Prozessoren und Maschinen portiert werden. Sie hat Möglichkeiten zur objekt-orientierten Programmierung.

Siehe auch: Pascal for Java users

K

Kylix

Ein zu Delphi ähnliches RAD-Werkzeug für Linux von der Firma Borland. Es basiert auf Delphi, und benutzt das QT / CLX Widgetset. Es versucht, Delphi's IDE nach Linux zu portieren mittels WINE (einem Windows-Emulator-Programm), anstatt den Code für die IDE in sauberen Linux-spezifischen Code zu übersetzen. Dadurch arbeitet es eher langsam und fehleranfällig. Borland scheint das Interesse an der Weiterentwicklung und an der Unterstützung von Kylix verloren zu haben, und viele frühere Benutzer von Kylix haben zu FreePascal/Lazarus als einzige echte Möglichkeit zur Pascalprogrammierung unter Linux gewechselt.

L

Lazarus

Eine CrossPlatform RAD IDE mit FreePascal gemacht und entworfen, um FreePascal als ihre Programmiersprache und Kompilierungstool zu verwenden. Sie hat viele der Merkmale der IDE von Borlands Delphi und Kylix (obwohl der gesamte Code unabhängig geschrieben wurde), und hat einige Merkmale, die Delphi/Kylix fehlen. Dafür fehlen ihr aber auch einige Features der Borland-Produkte.

Ihre Benutzeroberfläche enthält einen Quelltext-Editor, eine Hauptmenüleiste mit der Komponentenpalette, ein Formular-Designer-Fenster und einen Objektinspektor. Andere Merkmale sind ein Dokumentationseditor, eine umfangreiche Hilfe zum Code, und Zugriff auf eine Vielzahl von Komponentenbibliotheken und Packages.

Entwickler benutzen üblicherweise den Formular-Designer der IDE, um die physische Struktur ihrer Anwendungen zu skizzieren, fügen mit dem Quelltexteditor Programmanweisungen hinzu, die auf Ereignisse während der Programmausführung reagieren, und erstellen dann mit dem eingebauten FreePascal-Compiler und Linker den ausführbaren Code. Während der Ausführung des Codes spürt der Debugger Fehler auf und findet logische Probleme im Programm.

Die IDE kann sogar dazu benutzt werden, Lazarus selbst neu zu kompilieren, wenn Sie Korrekturen oder Aktualisierungen erhalten, beispielsweise aus den SVN - Repositorien.

LCL

Die Lazarus Component Library (= dt.: Lazarus-Komponentenbibliothek), enthält eine große Zahl von Units. Diese definieren Klassen, Komponenten und Methoden zum Erzeugen von Anwendungen mittels FreePascal. Die LCL besteht hauptsächlich aus visuellen Komponenten und Objekten, die oft als Widgets bezeichnet werden: einige Beispiele sind Schaltflächen, Labels, Editierfelder, Drop-down-Listen, Popup-Menüs, Bilder und Gitter. Die nicht-visuellen Elemente (wie Dateibehandlung und Datenbank-Verwaltung) finden Sie in der FreePascal Component Library und der Run Time Library. Viele der Komponenten, die in der LCL und anderen Bibliotheken definiert sind, werden benutzt, um die Lazarus IDE zu bauen.

Siehe auch Lazarus Components für eine Liste der verfügbaren Komponenten (und ihr Äquivalent in TurboPascal und Delphi).

Linker

Ein Computerprogramm das die Ausgaben von einem Compiler nimmt, die von diesen benötigte, vorkompilierte Bibliotheksroutinen findet, und sie alle miteinander zu einem ausführbaren Programm verbindet.

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

N

O

Object

A special type of Record used in FreePascal and other high-level 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.

Type
  Average = Object
    NumVal: Integer;
    Values: Array [1..200] of Real;
    Function Mean  : Real; { calculates the average value of the array }
  End;

Or a Button placed on a Form in a graphical environment might have the following structure (highly simplified):

Type
  Button = Object
    Top, Left: Integer; { screen coordinates to define button's position }
    Height, width: Integer;
    Color: TColor;
    Caption : String;
    Procedure OnClick; { method invoked when the mouse is clicked on the Button's image}
  End;

The Procedure or Function in the above definition must, of course, be declared elsewhere in the program, typically in an Implementation section.

See also Classes

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

See also Object Oriented Programming with FreePascal and Lazarus

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.

OSX

The latest version of the Macintosh Operating System, see MAC

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

RAD

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

Record

A highly structured data type in Pascal and other high-level languages.

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

Records are widely used in Pascal, to group data items together logically. They also form the basis for even more complicated structured types such as Objects and Classes, used in Object Oriented programming. Read more: Record

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

RTTI

Runtime Type Information

Keeping the data-types of obejcts available at runtime. Can be useful for streaming and typecasting objects.

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

Subversion

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

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.

Uses

Clause in an Object Pascal program: a line near the top of the file or Unit (in either the interface or the implementation) which lists other units that need to be accessed to find components used in the program.

For Example: <pascal> uses

 Classes, SysUtils, MySpecialUnit;

</pascal>

V

VCL

Visual Component Library - Base of Delphi Components Classes.

V4L

Video For Linux

VFW

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

WinCE

A Windows-like environment for portable hand-held devices, mobile phones, PDAs etc. Produced by MicroSoft, it has many features that resemble Windows for Desktops, but represents a 'cut-down' version.

Most hand-helds use the ARM processor, and a port of FreePascal and Lazarus has been constructed to allow applications for the ARM and WinCE to be cross-compiled and loaded for running on the hand-held device.

For more details see Windows_CE_Development_Notes and Windows_CE_Interface

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.

For more information about X11 please visit the XFree website.

Y

Z

Zaurus

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