| PHP | |||||
|
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 | |||||
|
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 | |||||
|
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 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 | |||||
|
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++ 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# (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 | |||||