| 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 | |||||
| Datei-Endung-ASM | |||||
| Siehe auch: Dateierweiterungen Datei-Endung-JS Datei-Endung-BIN | |||||
| Webserver | |||||
|
Ein Webserver ist ein Server im Internet oder Intranet, der ein oder mehrere Webseiten und Dienste verwaltet. Wird mittels eines Web-Browsers eine Internet-Adresse aufgerufen, wird dies dem Webserver mitgeteilt. Der Webserver überprüft, ob die gewünschte Adresse direkt zugänglich ist oder gibt, wenn die angeforderte Adresse nicht gültig ist, eine Fehlermeldung aus. Die Informationen werden zu den WWW-Clients mittels Hypertext Transfer Protocol übertragen. Webserver-Leistungen und Webserver-Technologien Ein Webserver kann CGI-Skripte, serverseitige Scriptsprachen und Programme wie PHP und MySQL, JSP und ASP sowie Server Container (Servlets, ASP.NET und Sprachen der .NET Framework Laufzeitumgebung Common Language Runtime (CLR) bzw. der Common Language Infrastructure (CLI) wie Visual-Basic.NET, C++.NET, J# oder C++/CIL) oder Web Services (XML-RPC, SOAP) zur Verfügung stellen. Diese programmierten Teile der Webseiten werden nur auf dem Webserver ausgeführt und sind auch für die User nicht sichtbar. Die WWW-Clients bekommen auf ihren Web-Browser nur den HTML-Quelltext zu sehen. Bekannte Webserver Bekannte Webserver sind z. B.: Apache-HTTP-Server, IIS (Internet-Information-Server) von Microsoft (heute: Internet Information Services), NCSA-Server (National Center for Supercomputing Applications) und CERN-Server. Das NCSA ist auch bekannt für den Browser NCSA-Mosaic, einer der ersten Internet Browser, der ausser Text auch Grafiken darstellen konnte, ohne diese extra laden zu müssen. Bekannte Server die hauptsächlich für die Entwicklung von Webseiten bzw. als Applikationsserver verwendet werden sind: Apache Tomcat oder BEA WebLogic Server. Letztere werden vor allem bei Servlets und JSP bzw. serverseitigen Java Umgebungen eingesetzt. Logfiles und Logfile-Analyse Datenverkehr auf dem Webserver wird in Logfiles gesammelt ("geloggt") und ausgewertet. Damit kann man bestimmen, welcher Agent mit welcher IP-Adresse was auf welcher Webseite gemacht hat (Visits, Views, Hits, Files, Kilobytes usw.). Die Analyse der Logfiles kann mit speziellen Logfile-Auswertungs-Tools erleichtert werden. Oftmals müssen Suchmaschinen-Bots (Robots, Spider, Crawler), Web-Crawler bzw. Web-Spider (z. B. Majestic12) oder Offline-Browser (z. B. HTTrack, Website Extractor) herausgefiltert werden. Manchmal ist es besser, ungewünschte Agents aus zu schliessen, z. B. im Script oder durch Editieren der robots-dot-txt. HTTP ist ein verbindungs- und zustandsloses Protokoll, so dass eine eindeutige Zuordnung nicht immer möglich ist. Zu dem können vorgeschaltete Proxy-Server diese Zuordnung erschweren, da sie sich gegenüber dem Webserver als Client ausweisen. Ausser den bereits Genannten folgt hier eine Auswahl weiterer Webserver: Zope, Cherokee Webserver, AOLserver, Tux, Goron, Caudium, lighttpd (BSD) oder Litespeed. |
|||||
| Siehe auch: Web-Service Logdatei Server-Error Offline-Browser Apache-HTTP-Server PHP Apache-Tomcat JSP SOAP Zope | |||||
| Compiler | |||||
|
Ein Compiler (oder Übersetzer) ist eine Software, die einen Quelltext in ein lauffähiges Programm übersetzt. Die Übersetzung erfolgt meist von einer strukturierten höheren Programmiersprache in eine semantisch äquivalente Zielsprache wie Assembler, Bytecode oder Maschinensprache. Die Kompilierung erfolgt meist in 3 Phasen: 1. Lexikalische Analyse: Durchsuchen des Quelltextes und Zerteilen in Tokens verschiedener Klassen wie: Schlüsselwörter, Operatoren, Bezeichner, Zahlen und Formulierungen. Dieser Teil des Compilers wird auch als Scanner oder Lexer bezeichnet. 2. Syntaktische Analyse und 3. Semantische Analyse: Validierung der Befehle, der Variablen, der Datentypen und der korrekten Beziehung der Befehle untereinander. Codegenerierung: Auswertung der Datenstrukturen aus Phase 2 und Erzeugung des korrekten Maschinencodes (Bytecode, Assemblercode). Einige Compiler erzeugen einen Zwischencode. Dieser ist schon maschinennah. Auf diesem Zwischencode werden z. B. Optimierungen durchgeführt, wenn mehrere Zielplattformen unterstützt werden. Wenn ein Compiler den Code für die Plattform, auf der er selber ausgeführt wird, erzeugt, so spricht man von einem Native Compiler. Ansonsten handelt es sich um einen Cross-Compiler. Ein Single-pass Compiler erzeugt den Zielcode in einem Durchlauf. Ein Multi-pass Compiler benötigt dafür mehrere Zwischenschritte und kann daher auch weitergehendere Optimierungen durchführen. Wenn ein Compiler aus dem Quellcode einer Programmiersprache den Quellcode einer anderen erzeugt (z. B. C in C++) so spricht man von einem Transcompiler. Ein Compiler-Compiler ist in der Lage, einen Compiler oder Compilerteile zu erzeugen. Der Compreter erzeugt aus dem Quellcode zunächst einen Zwischencode, welcher dann nicht in einen fertigen, lauffähigen Bytecode übersetzt wird, sondern zur Laufzeit interpretiert wird. Bekannte Compiler-Sprachen sind COBOL, Fortran, PASCAL, C, C++ oder Java. |
|||||
| Siehe auch: Assembler Byte Interpreter Parser Linker Lexer Programmiersprache-C JIT-Compiler C-Plus-Plus Java | |||||
| Interpreter | |||||
|
Ein Interpreter übersetzt den Quelltext einer Programmiersprache Anweisung für Anweisung und führt ihn direkt aus. Die Analyse erfolgt also zur Laufzeit des Programmes. Es wird im Unterschied zu Compilern und Assemblern keine auf dem System direkt ausführbare Datei erstellt. Nachteil von Interpretern ist die geringere Ausführgeschwindigkeit. So müssen beispielsweise Anweisungen in Schleifen bei jeder Iteration neu übersetzt werden. Bekannte Interpretersprachen sind: BASIC, PHP, Perl, Python, Ruby. Just-in-Time Compiler sind Zwischenlösungen und können einen Geschwindigkeitsvorteil erbringen. Auch hier wird das Programm zur Laufzeit übersetzt, jedoch direkt in Maschinencode, der direkt vom Prozessor ausgeführt wird. Da der Maschinencode zwischengespeichert wird, müssen mehrfach zu durchlaufende Programmteile nur einmal übersetzt werden. Ein Bytecode-Interpreter wiederum übersetzt den Quelltext zur Laufzeit vor seiner Ausführung in Zwischencode. Dieser Zwischencode wird von einem Interpreter ausgeführt (virtuelle Maschine). |
|||||
| Siehe auch: Compiler PHP JIT-Compiler BASIC Quellcode Parser Linker Lexer | |||||
| 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 | |||||