| 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 | |||||
| Laufzeitumgebung | |||||
|
Eine Laufzeitumgebung ist eine Softwareschicht die sich zwischen der Schicht des Betriebssystems und der Schicht der Anwendung befindet. Die Laufzeitumgebung stellt den Anwendungen grundsätzliche Funktionen wie Schreiben und Lesen von Dateien, Steuerung von Ein- und Ausgabegeräten, Transport von Daten, Suchfunktionen, Verwaltung von Dateien und mehr zur Verfügung. Bei der Programmiersprache Java erledigt dies das Java Runtime Environment (JRE), bestehend aus den Java Klassenbibliotheken und der Java Virtual Machine (JVM). Die JVM, ist wie der Name schon verrät, eine virtuelle Maschine welche für die Ausführung des Java Codes zuständig ist. Sie macht Java plattformunabhängig, da sie auf vielen Plattformen aufsetzen kann. Ein weiteres Beispiel für eine Laufzeitumgebung ist die .NET Common Language Runtime (CLR). Die CLR ist die Laufzeitumgebung und portable virtuelle Maschine für die Programmiersprachen C# (sprich C Sharp), Visual Basic .NET und C++.NET. |
|||||
| Siehe auch: Java Dot-NET CLR C-Sharp C-Plus-Plus Visual-Basic Laufzeitsystem WINE | |||||
| Hewlett-Packard | |||||
|
Hewlett Packard wurde 1939 von William Hewlett und David Packard in der berühmten Garage in Palo Alto im heutigen Silicon Valley mit einem Startkapital von 538 US-Dollar gegründet. Dies gilt als die Geburtsstunde der Computerindustrie im Silicon Valley. Anfangs wurden wissenschaftliche Geräte hergestellt. 1957 ging HP an die Börse. Der Eröffnungskurs lag bei 16 US-Dollar pro Aktie. 1972 führte HP den ersten wissenschaftlichen Taschenrechner ein. 1980 folgte der erste PC. HP entwickelte sich zu einem der führenden Drucker- und PC Hersteller und machte sich einen Namen im Bereich der mittleren Datentechnik mit Servern und Workstations. Vor allem die Drucker sind sehr weit verbreitet, sowohl bei Firmen als auch im privaten Bereich: DeskJet-, LaserJet- und DesignJet-Familie. Weiterhin sind Digitale Kameras im Angebot. HP hat auch einige Softwarelösungen entwickelt wie Desktoperweiterungen, Workflow-Lösungen sowie eine eigene Java Virtual Machine (JVM) für HP-UX. Im Jahr 2002 fusionierte HP mit Compaq. 2004 kaufte HP die deutsche Triaton GmbH, welche Rechenzentren in verschiedenen deutschen Standorten betreibt. Hewlett Packard gliedert sich in die Geschäftsbereiche Personal Systems Group (PSG: End-Consumer PCs, Business PCs, Mobile Communication, Workstations), Imaging and Printing Group (IPG: Drucker, Bildbearbeitung) und die Technology Solutions Group (TSG: IT-Technologie und -Lösungen für Unternehmen und den Öffentlichen Sektor). Zuletzt stand eine Frau an der Spitze von HP: Carleton Fiorina war CEO (Chief Executive Officer, Vorstandsvorsitzende(r)) von 1999 bis 2005. HP war zuletzt in den Schlagzeilen wegen eines Spionagefalls, in dem es um die unautorisierte Erhebung und Weitergabe von Daten über Mitarbeiter und Journalisten ging. Auch der neue CEO Mark Hurd stand im Visier der Ermittler. HP erwirtschaftete im Geschäftsjahr 2005 einen Umsatz von 86,7 Milliarden US-Dollar bei einem Netto Gewinn von 2,38 Mrd Dollar. Im darauf folgenden Geschäftsjahr 2005/2006 erhöhte sich der Jahresumsatz auf 91,7 Milliarden Dollar und der Gewinn stieg stark auf 6,2 Milliarden Dollar. Der Gewinn je Aktie lag bei 2,18 (0,82) $. Damit lag HP in den meisten wichtigen Kennziffern (ausser der Börsenkapitalisierung: HP: 110 Milliarden $, IBM: 141 Milliarden $) vor IBM. HP beschäftigt ca. 151.000 Mitarbeiter in 170 Ländern. |
|||||
| Siehe auch: Drucker unix Java Server Workstation Middleware Compaq DEC Sony IBM | |||||
| JIT-Compiler | |||||
|
Ein JIT-Compiler ist ein Just-In-Time Compiler (Echtzeit-Compiler) und gehört zu einer virtuellen Maschine, wie z. B. der Java Virtual Machine (JVM) oder der Common Language Runtime (CLR) des .NET Frameworks von Microsoft. Die CLR wie auch die JVM erzeugen zuerst einen Zwischencode: dieser Bytecode wird von dem JIT-Compiler erst bei Laufzeit des Programmes in Maschinen-Code, den der Prozessor direkt ausführen kann, übersetzt. Dadurch ist eine Plattformunabhängigkeit gegeben und die Programmausführung für dynamische Programmiersprachen kann bei hochentwickleten JIT-Compilern beschleunigt werden, da dynamische Optimierungen durchgeführt werden können. Compiler welche den fertigen Maschinen-Code vor der Laufzeit des Programmes erzeugen werden als Ahead-of-Time-Compiler (AOT-Compiler) bezeichnet. Bei AOT-Compilern ist der Code allerdings nicht mehr plattformunabhängig. Dafür sind die Programme zur Laufzeit i.d.R. schneller, da sie schon fertig kompiliert sind. Im Rahmen der CLR kompiliert der Just-in-Time-Compiler das in der Common Intermediate Language (CLR) oder früher auch Microsoft Intermediate Language (MSIL) genannt vorliegende Programm zur Laufzeit in Maschinencode und optimiert dabei den Code für die jeweilige Plattform und insbesondere den Prozessortyp. Dadurch ist Plattform- und Sprachunabhängigkeit gegeben. Die CIL ist eine Zwischensprache der CLR: sie ist eine objektorientierte Assemblersprache und stackbasiert. |
|||||
| Siehe auch: Dot-NET Dot-NET-Framework-3-0 Compiler CLR Microsoft Java Assembler Quellcode | |||||
| CLR | |||||
|
Die Common Language Runtime (CLR) ist eine Laufzeitumgebung im Rahmen des .NET-Framework von Microsoft. Die CLR ermöglicht im Rahmen der .NET-Entwicklungsumgebung plattform- und sprachunabhängigen Code. Sie ist ähnlich wie die Java Virtual Machine (JVM) eine virtuelle Maschine (VM). Innerhalb des .NET-Frameworks wird der Quellcode der unterstützenden Sprachen wie Visual-Basic.NET, C++.NET, J#, C++/CIL oder C# erst in einen Zwischencode, der Common Intermediate Language (CIL) übersetzt. Dieser ist vergleichbar mit dem Bytecode der JVM. Die virtuelle Maschine der Common Language Runtime führt diesen Zwischencode mit Hilfe eines Just-in-Time Compilers zur Laufzeit dann aus. Innerhalb der Common Intermediate Language wurde ein Konzept implementiert welches eine sprachübergreifendes System von objektbasierten Datentypen beinhaltet. Dadurch können auch Programmmodule, welche in verschiedenen Sprachen geschrieben wurden, auf gemeinsame Ressourcen zurückgreifen. Im Unterschied zur Java Virtual Machine setzte man beim .NET-Framework von Beginn an auf das gemeinsame Zusammenwirken mehrerer Programmiersprachen. |
|||||
| Siehe auch: Dot-NET JIT-Compiler MSIL Managed-C-Plus-Plus C-Plus-Plus-CLI WinFX Windows-Vista | |||||