PHP
Funktionsdiagramm zeigt die Ausführung der serverseitigen Scriptsprache PHP auf dem Webserver, der Browser-Client empfängt nur HTML. Funktionsdiagramm zeigt die Ausführung der serverseitigen Scriptsprache PHP auf dem Webserver, der Browser-Client empfängt nur HTML.
PHP Hypertext Preprocessor. PHP ist eine Server-Script-Sprache. Wenn ein Browser eine PHP-Seite von einem PHP-fähigen Server abruft, interpretiert der Server den PHP-Code und sendet den resultierenden HTML-Code an den Browser.  Der Browser empfängt nur HTML- und nicht PHP-Code. PHP arbeitet oft mit der Open Source Datenbank MySQL zusammen. Dies ist in der Bilderserie dokumentiert, auch ein Insertion Sort Algorithmus in PHP ist dabei.  Auch die objektrelationale Datenbank (ORDBMS) PostgreSQL kann durch PHP angesteuert werden. Eine Serversoftware, die oft eingesetzt wird um PHP und MySQL zu unterstützen ist der Apache-HTTP-Server  oder der IIS (Microsoft Internet Information Server bzw. Internet Information Services). Für PHP gibt es vorgefertigte Bibliotheken und Module, wie z. B. PEAR (PHP Extension and Application Repository).  In PHP können Templates verwendet werden. Ausserdem existiert ein Vielzahl von PHP-Template-Engines: z. B. Smarty oder vLIB.  Dadurch werden dem Entwickler Standard-Aufgaben abgenommen. Es gibt Basisobjekte und Pakete, die in den Bibliotheken wiederverwendet werden und Redundanzen in der Softwareentwicklung vermeiden.  PEAR ist Open Source und kann auf dem Web-Server installiert werden. Um PHP sicherer zu machen wurde das Hardened PHP Projekt von Stefan Esser ins Leben gerufen. Hardened PHP ist ein Patch, der auf dem Webserver  installiert wird und auch Schutz für den Zend Memory Manager sowie Zend Linked Lists bietet. Weiterhin soll Hardened PHP vor internen Exploits durch speziell formatierte Strings schützen (http://www.hardened-php.net/).  Suhosin ist ein weiter fortgeschrittenes Schutzpaket für PHP-Scripts. Suhosin schützt den Webserver und den Anwender vor Fehlern in PHP-Scripts und im PHP-Kern.

Zend Technologies 
Die Zend-Engine ist ein PHP-Parser und -Compiler von Zend Technologies Ltd. Zend Technologies Ltd. wurde von Zeev Suraski und Andi Gutmans in Israel gegründet. Die Zend Engine übernimmt die Codeaufbereitung: sie compiliert den PHP-Code vor  der Ausführung um Fehler rechtzeitig abzufangen. Nur fehlerfreie Seiten werden von der Zend-Engine an die PHP-Ausführungsschicht übergeben.  Der Zend Optimizer optimiert den PHP-Code und wird zur Ausführung von PHP-Code verwendet, der mit dem Zend Guard verschlüsselt wurde.  Das Zend Studio ist eine Entwicklungsumgebung (Integrated Development Environment, IDE) für PHP. Das Zend Studio wurde für die Java Plattform entwickelt und ist für Windows, Linux und Mac OS X ausgelegt.

Superglobals 
Allgemein kann empfohlen werden, die Globalen Variablen (register_globals) auf "Off" zu setzen. Um die PHP Scripte sicherer zu machen, empfiehlt es sich weiterhin, externe Variablen mit den Superglobals abzufangen ($_POST, $_GET, $_Server, $_ENV,  $_REQUEST, $_SESSION, $_FILES, $_COOKIE, $GLOBALS, $php-errormsg). Siehe auch: http://de3.php.net/reserved.variables. Um eine Manipulation von Variablen zu verhindern sollte man Plausibilitätsprüfungen für die Variablen einbauen. 

Konfiguration und XAMPP
Ab der Version 5 von PHP kann die Registrierung der langen von PHP vordefinierten Arrays ($HTTP-POST-VARS, $HTTP_GET_VARS usw.) mit der Konfigurationsoption register_long_arrays abgeschaltet werden.  Die Administration von Einstellungen erfolgt beim Apache-HTTP-Server in der php.ini und der config.inc.php sowie bei MySQL in der my.cnf und beim MySQL-Administrationsprogramm phpMyAdmin ebenfalls in der Datei config.inc.php.  Die PHP und MySQL Einstellungen kann man sich durch die Funktion phpinfo(); anzeigen lassen. Diese ist auch als Menüpunkt im XAMPP bzw. WAMPP, LAMPP oder MAMPP Paket zu finden: diese Pakete enthalten den Apache Server,  PHP, MySQL (und Perl) und lassen sich leicht aufspielen und administrieren. Sie sind erhältlich für Windows, Linux und Mac OS X. XAMPP ist zu finden, z. B. bei www.apachefriends.org.

PHP Optimierung
Um bei umfangreichen  PHP-Scripts und Projekten Neuübersetzungen zu vermeiden, kann man OpCode-Caches verwenden. OpCode-Caches speichern den erzeugten PHP Code und müssen als Erweiterung eingebunden werden.  Die Performance kann bei PHP auch durch die "Autoloading" Methode gesteigert werden. Mit der Funktion __autoload können längere Klassendefinitionen eingebunden werden und müssen nicht über eine lange Liste von include-Anweisungen geladen werden.  Bekannte OpCode-Caches sind der Zend-Optimizer, eAccelerator, IonCube-Accelerator und der Alternative PHP Cache. Ausser dem Zend Optimizer sind das alles Open Source und Freeware-Programme.  PHP wird seit Version 4 unter der PHP License lizenziert. Bis Version 3 war PHP unter der GPL lizenziert, die Zend-Engine (der neue PHP-Parser) ist jedoch nicht GPL-fähig. PHP kann unter der PHP License frei heruntergeladen und verwendet werden.  Das GIMP-Toolkit (GTK+), eine freie Komponentenbibliothek, stellt für PHP eine Grafik-API zur Verfügung. PHP ist prozedural angelegt, verfügt jedoch auch über Komponenten der Objektorientierten Programmierung  (OOP). Objekt-Variablen werden seit Version 5 (Zend Engine 2) nur noch als Referenz auf das Objekt und nicht mehr als das Objekt selbst abgelegt. Weiterhin ergänzt wurden Destruktoren und Klassen-Eigenschaften (Private, Protected, Public).  Die meisten Bibliotheken sind in PHP noch prozedural angelegt. Seit Version 5 ist die DOM-API objektorientiert. PHP 5.1 bietet zudem mit den PHP Data Objects (PDO) eine OOP-Erweiterung die den einheitlichen Zugriff auf  unterschiedliche SQL-Datenbanken (MySQL, PostgreSQL, SQLite) ermöglicht. Eine einheitliche Unicode-Unterstützung soll mit der Zend Engine ab PHP Version 6 erfolgen. Threads und Namensräume fehlen in PHP. Auch förmliche Variablen-Deklarationen  können in PHP nicht erzwungen werden. Mit PHP Version 5.2 wird eine verbesserte Speicherverwaltung bereitgestellt, sowie Filter-Erweiterungen, JSON (JavaScript Object Notation), ZIP-Archiv-Unterstützung, und eine objektorientierte  Datumserweiterung mit DataTime und DataTimeZone.

JSON
JSON ist ein sprachenunabhängiges Format zum Datenaustausch zwischen Anwendungen. JSON wird in einer Textform notiert und ist für Rechner und menschliche Anwender einfach  lesbar. Datenstrukturen werden mit JSON kompakt notiert und kommen im Vergleich zu XML mit wesentlich weniger Overhead aus. JSON ist ein Datenaustauschformat und implementiert in PHP, Java, C, C#, JavaScript, Perl, Smalltalk, Python und Ruby.
Siehe auch:    Apache-HTTP-Server   MySQL   Webserver   PEAR   Script   Perl   Apache-Tomcat   Open-Source   JSON   Objektorientierte-Programmierung

  Syntax

Syntax ist die grammatikalische Schreibweise und die Reihenfolge, in der Befehle und Anweisungen bei einer Programmiersprache einzugeben sind. Syntaktische Regeln legen also fest, welche Zeichen, Wörter und Formulierungen  valide sind. Die Syntax ist kontextfrei, da der Kontext nicht geprüft wird. Wird gegen die Syntax verstossen, so liegt ein syntaktischer Fehler vor. Der Compiler oder Interpreter gibt eine Fehlermeldung aus (Syntax Error).                                                       
Siehe auch:    Semantik   Semantische-Suchmachine   algorithmus   Ablaufdiagramm   Compiler   Interpreter   Parser   Lexer   

  Quellcode

Der Quellcode ist eine Folge von Anweisungen oder Befehle in einem Programm. Er ist in einer Programmiersprache geschrieben und kann in eine Maschinensprache mittels eines Compilers übertragen werden.  Der Compiler erstellt dann eine ausführbare Datei.  Wird der Quellcode unmittelbar übersetzt und Zeilenweise ausgeführt geschieht dies durch einen Interpreter. Die Datei-Endung des gespeicherten Quellcodes gibt meistens einen Hinweis auf die verwendete Programmiersprache.                                                     
Siehe auch:    Programm   software   Quelldatei   Compiler   Interpreter   PHP   

  ADA

Die Programmiersprache Ada wurde benannt nach Ada Augusta Byron (Ada King nach Heirat mit William King, 8. Baron King (1805-1893)), Countess of Lovelace (1815-1852). Ada basiert auf Pascal und wird vor allem in militärischen Bereichen eingesetzt.  Sie ist auf simultane Vorgänge und Prozess-Steuerung spezialisiert und hat grosse Vorteile in der Fehlerkorrektur.                                                       
Siehe auch:    Programm   PASCAL   Charles-Babbage   LISP   Künstliche-Intelligenz   Grace-Hopper   

  BASIC

Beginners All Purpose Symbolic Instruction Code: Für Programmieranfänger geeignete, leicht erlernbare Programmiersprache. Der Benutzer konnte mit BASIC komfortabler programmieren und musste nicht mehr auf der Ebene der Maschinensprache  arbeiten. Problematisch ist allerdings der GOTO Befehl, mit dem man an eine beliebige Stelle im Programm springen kann. Dies entspricht nicht dem Integritätsstandard moderner strukturierter Sprachen.  BASIC wurde 1962 entwickelt und fand grosse Verbreitung, beispielsweise auf dem VC64 von Commodore.                                                     
Siehe auch:    Bill-Gates   Visual-Basic   VBA   ASP-Dot-NET   Dot-NET   CLR   PASCAL   

  CSS

Cascading Style Sheets. CSS bietet die Möglichkeit, eine einheitliche Formatierungsvorlage für HTML-Dokumente zu schaffen. Die Eigenschaften von HTML-Tags können zentral bestimmt und gepflegt werden. Sie können ausgelagert werden, womit eine  Trennung von HTML-Codierung und HTML-Design vorgenommen wird. Mit CSS-Positioning können sogar dynamische Effekte erzeugt werden. Jedes Element einer Gruppe von Elementen kann in einer eigenen Ebene, dem CSS-Positioning Layer, über dem Hauptdokument  gespeichert werden. Mehrere solcher Ebenen können übereinander liegen. Jede dieser Ebene kann unabhängig voneinander mit JavaScript verändert werden, auch nachdem die Seite bereits geladen wurde.  1998 wurde CSS Level 2 (CSS 2) frei gegeben, ist jedoch bis heute nicht in allen Browsern vollständig implementiert.  Eine Zwischenversion CSS Level 2 Revision 1 (CSS 2.1) ist derzeit in der Entwicklung beim W3C. CSS 2.1 soll Unstimmigkeiten der Vorgängerversion ausbügeln.  Auch CSS Level 3 befindet sich schon in der Entwicklung und soll modular aufgebaut sein. CSS nähert sich mit CSS3 an DSSSL (Document Style Semantics and Specification Language) immer mehr an.                                               
Siehe auch:    DHTML   DOM   JavaScript   HTML   XHTML   XML   Browser   SGML   
Link: http://www.meyerweb.com


  Programm
Pseudocode (Sortier-Algorithmus: Insertion Sort) Pseudocode (Sortier-Algorithmus: Insertion Sort)
In Programmen werden Anweisungen zur Ausführung bestimmter Aufgaben benötigt. Programme sind eine Folge von Anweisungen, die in einer dem Computer verständlichen Sprache vorliegen. Dieser eigenständige Befehlssatz von Computeranweisungen  ist von der Hardware und dem Betriebssystem abhängig. Ein Programm wird auch als Anwendung bezeichnet und ist ein Synonym zu dem Begriff Software.                                                       
Siehe auch:    Sortieralgorithmus   Ablaufdiagramm   algorithmus   Dot-NET   C-Plus-Plus   PHP   Java   betriebssysteme   Parser   Compiler

  Backus-Naur-Form

Backus-Naur-Form, oder Backus-Normalform, BNF ist eine Metasyntax für die Beschreibung von Programmiersprachen. Diese Metasprache kann kontextfreie Grammatiken darstellen. Sie wurde von John W. Backus und Peter Naur entwickelt, ursprünglich  für die Syntaxbeschreibung von ALGOL 60. Dadurch wurde es erstmals möglich, die Syntax einer Programmiersprache formal korrekt zu beschreiben. Ein Beispiel für die Erweiterte Backus-Naur-Form (Extended BNF, EBNF) ist: Namen ::= Buchstabe {Buchstabe}  Buchstabe ::= (A|B|C|D|E| . . . |X|Y|Z) | (a|b|c|d|e| . . . |x|y|z)                                                     
Siehe auch:    ALGOL   Von-Neumann-Architektur   informatik   Boolesche-Algebra   


  Es wurden weitere Begriffe gefunden:


  Mesa

Mesa ist eine imperative Programmiersprache die 1970 am Xerox Palo Alto Research Center (PARC) entwickelt wurde. Mesa ähnelt den ALGOL-Dialekten und diente dazu, dem Xerox Alto eine der ersten grafischen Benutzeroberflächen (GUI/Graphical User  Interface) zu verpassen. Mesa-Entwickler hatten naturgemäss gute Kenntnisse in der GUI-Programmierung oder bei Netzwerk-Topologien, so dass Mesa, obwohl es ausserhalb von Xerox kaum genutzt wurde, zum Fortschritt in der Computer-Industrie  beigetragen hat. Steve Jobs liess sich durch die Leistungen des Xerox Alto bei der Entwicklung der GUI, des Apple Lisa und Macintosh inspirieren. Diese waren wiederum Vorbild für Microsofts Windows.                                                     
Siehe auch:    Apple   Macintosh   GUI   ALGOL   Microsoft   windows   

  Parser

Ein Parser ist eine Software die die Syntax einer Sprache analysiert. Ein Parser entscheidet, ob ein Quelltext valide ist bezogen auf eine formale Sprache mit einer vorgegebenen Grammatik. Parser werden beispielsweise von Compilern eingesetzt, oder von  einem Browser der aus HTML eine Beschreibung einer Webseite als Datenstruktur macht, welche die Grafik-Engine des Browsers auf den Bildschirm überträgt.                                                       
Siehe auch:    Compiler   Interpreter   Linker   Lexer   

  Programmiersprache-C
Programmiersprache C Beispiel (Sortier-Algorithmus: Insertion Sort) Programmiersprache C Beispiel (Sortier-Algorithmus: Insertion Sort)
Höhere, strukturierte Programmiersprache, welche in den frühen 70er Jahren im UNIX Umfeld entwickelt wurde. Autor von C ist Dennis Ritchie. C ist eine Hochsprache und verbindet gleichzeitig Assembler-Nähe. Diese seltene Kombination macht C zur idealen  Lösung für bestimmte Aufgaben.  Im Bild ist der Sortieralgorithmus "Insertion Sort" in C wiedergegeben.                                                     
Siehe auch:    C-Plus-Plus   C-Sharp   Java   unix   Extensible-Firmware-Interface   Datei-Endung-H   GCC   GNU   Pseudocode   Sortieralgorithmus

  Java
Java Insertion Sort Java Insertion Sort
Java ist eine plattformunabhängige, objektorientierte Hochsprache von Sun Microsystems. Ursprünglich zur Programmierung von Haushaltsgeräten entwickelt, mauserte sich Java zu einer Erfolgsstory mit Zukunft.  Java kann auf allen Systemen ausgeführt werden, auf der die Java Virtual Machine (JVM) installiert ist. Somit ist Java plattformunabhängig.  Von C++ abgeleitet (jedoch ohne Zeigerarithmetik) können mit Java ausser Anwendungen auch Applets für das Internet erstellt werden.  Java wird zunächst in Bytecode umgewandelt und dann in einer speziellen Java-Laufzeitumgebung, dem Java Runtime Environment (JRE) von einem Just-in-Time-Compiler ausgeführt.  Bestandteile dieser Java-Laufzeitumgebung sind die Java Virtual Machine und die Java-Klassenbibliotheken. Die JVM interpretiert den Bytecode.  Java unterscheidet zwischen Schnittstellen und Klassen und unterstützt keine direkte Mehrfachvererbung. Mit Hilfe der Reflection-API ist es Java möglich, zur Laufzeit auf Methoden und Klassen zuzugreifen, deren Zustand oder Existenz zur Zeit der  Erstellung des Java-Programmcodes noch nicht bekannt war. Seit Java 5 erlauben sog. Annotations die Einbindung von Metatdaten. Damit sind in gewissem Umfang benutzerorientierte Spracherweiterungen möglich.  Java unterstützt Threads und Exceptions sowie eine automatische Garbage Collection (Beseitigung von Datenmüll). Klassen die zusammengehören werden zu  Packages zusammengefasst und beginnen mit der verdrehten Internet-Domain des Entwicklers: z. B. com.sun. Sie ermöglichen z. B. eine Begrenzung der Sichtbarkeit von Klassen.  Im Bild ist der Sortieralgorithmus "Insertion Sort" in Java wiedergegeben.                                       
Siehe auch:    Sun-Microsystems   JIT-Compiler   JSP   Java-Servlet   J2EE   Applet   Objektorientierte-Programmierung   Laufzeitumgebung   Laufzeitsystem   Sortieralgorithmus

  JavaScript

JavaScript ist eine clientseitig ausführbare Script-Sprache. Sie wurde von Netscape entwickelt und hat nichts mit Java zu tun. Mit Hilfe von JavaScript kann man interaktive Webseiten erstellen. Der Code wird direkt in den HTML-Quellcode eingefügt und  vom Browser interpretiert. Mit JavaScript kann man direkt das Document Object Model (DOM), welches im Browser implementiert ist, ansprechen. Damit kann man direkt anzeigbare oder verwaltete Objekte adressieren, wie z. B. das Window-Objekt oder  die Prototypen Function, Date, String, Array oder Object. Object ist der Prototyp aller Objekte. Alle weiteren Objekte werden von Object abgeleitet. Beispiele für weitere Objekte sind: history, user-agent, document oder forms.  Es gibt jedoch unterschiedliche DOM-Implementierungen, je nach Browser. Nachdem der Marktanteil von Netscape sich immer mehr verringert und der Netscape-Browser auch nicht mehr weiterentwickelt wird, verliert dieses Problem etwas an Bedeutung.  Die Aktivierung von JavaScript im Browser kann ein Sicherheitsproblem sein: potentielle Angreifer können über JavaScript einen Schadcode einschleusen. Deshalb sollte man die Sicherheitseinstellungen des Browser so setzen, dass Scripting nur auf  "sicheren Seiten" möglich ist.                                               
Siehe auch:    Browser   Client   Script   Quellcode   DOM   HTML   XHTML   

  Perl
Interpretersprache Perl Beispiel (Sortier-Algorithmus: Insertion Sort) Interpretersprache Perl Beispiel (Sortier-Algorithmus: Insertion Sort)
Practical Extraction and Report Language. Perl ist eine Interpretersprache und hat sich als wichtigstes Instrument zur Programmierung von CGIs entwickelt.  Perl ist auf die Programmierung von Formularauswertungen spezialisiert und bietet hierfür leistungsfähige Routinen für die Verarbeitung von Zeichenfolgen an.  Im Bild ist der Sortieralgorithmus 'Insertion Sort' in Perl wiedergegeben.                                                     
Siehe auch:    CGI   PHP   Interpreter   Compiler   Browser   FORTRAN   ALGOL   Pseudocode   Sortieralgorithmus   

  C-Plus-Plus
C++ Insertion Sort C++ Insertion Sort
C++ ist eine Weiterentwicklung von C und wurde 1985 von Bjarne Stroustrup präsentiert. Basierend auf C ist C++ jedoch objektorientiert. Mit C++ ist sowohl eine maschinennahe als auch eine gut strukturierte  Entwicklungsarbeit möglich. 

C++ Merkmale und Datenabstrahierung, Konzepte der Objekt-orientierten Programmierung 
Prinzipien der Datenabstraktion als auch generische Programmierung sind in C++ implementiert. Weitere Merkmale sind: prozedurale und modulare Programmierung, virtuelle Funktionen,  Ausnahmenbehandlung, Namensräume, Templates, Inline-Funktionen, Boolesche Typen, Typumwandlungen, Referenzen, die Möglichkeit zum Überladen von Operatoren und die C++ Standardbibliothek.  Typische Elemente des Klassenkonzeptes wie Polymorphismus, Vererbung (Inheritance) oder Destruktoren und Konstruktoren sowie das OOP-Konzept sind Teil von C++. 

C++ Entwicklung begann 1979 bei AT&T 
Stroustrup begann schon 1979 bei AT&T C++ zu entwickeln. Er erweiterte später C um ein Klassenkonzept und liess seine Erfahrungen mit Simula mit einfliessen. C++ hat wiederum Ada, Java, PHP und C# beeinflusst. Implementierungen von C++ sind in der  GNU Compiler Collection vorhanden, sowie durch Microsoft Visual C++ oder Borland C++ Builder erhältlich.  C++ heisst nicht D, da es als Erweiterung von C um die Objekt-Orientierung gedacht war und dem User ersparen sollte, mit zu viel Code-Zeilen zu tun zu haben.  C++ extrahierte einige Aspekte der Objekt-Orientierung und das Klassenkonzept von Simula, von Ada die Templates und Exceptions. Mit C++ soll eine bessere Datenabstrahierung als mit C möglich sein. 

C++-Literatur, Journale und Events 
Weiterführende Informationen über C++ findet man neben der Literatur von Stroustrup und anderen Autoren in eBooks, dem Journal of Object Oriented Programming (JOOP), den C++ Report oder dem C++ Users Journal oder in "Object".  Bekannte C++ Events sind die C++ World, Application Development, Object Technology, OOPSLA (Object-Oriented Programming, Systems, Languages, and Applications),  ECOOP (European Conference on Object-Oriented Programming) oder TOOLS (Technology of Object-Oriented Languages and Systems).  Im Bild ist der Sortieralgorithmus "Insertion Sort" in C++ wiedergegeben.                           
Siehe auch:    Programmiersprache-C   C-Sharp   Objektorientierte-Programmierung   GCC   Dot-NET   ASP-Dot-NET   Managed-C-Plus-Plus   C-Plus-Plus-CLI   Java   Sortieralgorithmus

  C-Sharp
C-Sharp Programmbeispiel (Sortier-Algorithmus: Insertion Sort) C-Sharp Programmbeispiel (Sortier-Algorithmus: Insertion Sort)
C# (sprich: C Sharp) ist Teil von Microsofts .NET Architektur. Es ist eine systemeigene Sprache für die .NET Common Language Runtime. Es handelt sich um eine Mischung aus C und C++. Merkmale von C# sind: vereinfachte Typendeklaration, objektorientiert,  Typsicherheit und Skalierbarkeit. In Kombination mit der .NET Common Language Runtime (CLR) kann diese Sprache für die Entwicklung komponentenorientierter Software eingesetzt werden, ohne dass die Entwickler ihr Wissen bezüglich C, C++ und den  COM-Code ungenutzt lassen müssen.  Im Bild ist der Sortieralgorithmus "Insertion Sort" in C# wiedergegeben.                                                   
Siehe auch:    Programmiersprache-C   C-Plus-Plus   Dot-NET   JIT-Compiler   CLR   Java   Sortieralgorithmus