fachhochschule dortmund university of applied sciences einf. in die wirtschaftsinformatik 1,...

Post on 05-Apr-2015

106 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

FachhochschuleDortmundUniversity of Applied Sciences

1Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04

Programmorganisation

Erstellen eines Programms:Programmtext in Quellsprache: Quelldatei oder SourcedateiDateikennung z.B. .cpp bei C++

.cpp-Datei Übersetzer .obj-Datei Compiler

Objektdatei: Ergebnis der Übersetzung, enthält die Maschineninstruktionen und Datenfelder (mit Anfangswert).

FachhochschuleDortmundUniversity of Applied Sciences

2Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04

Programmorganisation

Modulares Programmieren (heute üblich):Programmtext in Quellsprache wird auf mehrere Quelldateien (oder Sourcedateien) aufgeteilt. Bezeichnung: Quellmodule oder Source-module. Dateikennung z.B. .cpp bei C++

.cpp-Modul Übersetzer .obj-Modul Compiler

Das Quellmodul ist die „Texteinheit“, mit der der Compiler etwas anfangen kann: Ausgabe ist das Objektmodul.

Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04 3

FachhochschuleDortmundUniversity of Applied Sciences

Programmorganisation

Was ist ein Quellmodul:

•Programmtext, der eine Menge von Funktionen oder Klassenfunktionen (Memberfunktionen) enthält.•Was sonst noch dazu gehört, bestimmt die jeweilige Programmiersprache.

Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04 4

FachhochschuleDortmundUniversity of Applied Sciences

Programmorganisation

Was ist ein Objektmodul?

•Unvollständiger Maschinentext, der eine Menge von Funktionen umfasst. Es fehlen z. B. Adressen bei den Instruktionen.•Informationen zur Weiterverarbeitung

Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04 5

FachhochschuleDortmundUniversity of Applied Sciences

Programmorganisation

Bindeprogramm, Linker

•Das Programm, das die Objektmodule weiter verarbeitet.•Ein oder mehrere Objektmodule werden zu einer ausführbaren Programmdatei zusammengefasst und fehlende Adressen werden eingetragen.•Die Maschinensprachetexte der einzelnen Module werden einfach hintereinander gepackt.•Den anschließenden Vorgang bezeichnet man als „Binden“ – engl. „to link“.

Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04 6

FachhochschuleDortmundUniversity of Applied Sciences

Programmorganisation

Bei den Programmiersprachen die sich von der Sprache C abstammen, muss genau in einem Modul die Main-Funktion vorkommen, damit eine ausführbare Programmdatei erstellt werden kann.

Diese Main-Funktion hat bei verschiedenen Umgebungen oft verschiedene Namen. (main(), WinMain(),..)

Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04 7

FachhochschuleDortmundUniversity of Applied Sciences

Programmorganisation

Ausführbare Programmdatei:

•Bezeichnung in der Windows-Welt: exe-Datei•Sie enthält das „Image“ für die Ausführung.•„Image“: Maschinensprachetext, der zur Ausführung in den Hauptspeicher geladen wird. Image=Speicherabbild

•Das Laden des Image in den Speicher geschieht durch ein Ladeprogramm (Lader, loader).

Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04 8

FachhochschuleDortmundUniversity of Applied Sciences

Quellmodule Compiler Objektmodule - Adressraum verschiebbar Linker Absolutes „Image“ in exe-Datei Programm Lader „Image“ im Speicher

Nochmals als Übersicht

Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04 9

FachhochschuleDortmundUniversity of Applied Sciences

Programmorganisation

Projekt

Ein Projekt besteht aus einer Mengen von Dateien, die sich üblicherweise in einem eigenen Verzeichnis befinden und die zur Erstellung einer exe-Datei nötig sind.

Alle Quellmodule des Projektes werden übersetzt und zur exe-Datei zusammengebunden. Wird anschließend etwas geändert, werden nur die betroffenen Module übersetzt. Gebunden wird nur, wenn sich eines der Objektmodule geändert hat.

Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04 10

FachhochschuleDortmundUniversity of Applied Sciences

Programmorganisation

Resourcen

Bei Windowsprogrammen werden zusätzlich zu den Quellmodulen in Resourcedateien in einer speziellen Sprache die Fenster beschrieben. Auch diese Dateien werden bei der exe-Erstellung übersetzt und wie Objektmodule eingebunden.

(weiterer Begriff im Zusammenhang mit der automatischen exe-Erstellung in einem Projekt: Makefile)

Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04 11

FachhochschuleDortmundUniversity of Applied Sciences

Beispiel #include <stdio.h> int a,b,c; int main(void) { a=1; b=3; c=a+b; return 0; }

Vom Quelltext zum „Hauptspeicher-Image“

Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04 12

FachhochschuleDortmundUniversity of Applied Sciences; File E:\lv\ss00\ebs1\kap6example\exam.cpp OBJ-Datei

............... ; Line 9 00017 a1 00 00 00 00 mov eax, a 0001c 03 05 00 00 00 00 add eax, b 00022 a3 00 00 00 00 mov c, eax .......... 0002a c3 ret 0 EXE-Datei (Die Adressen werden im "little endian"-Format dargestellt). A1 80 3C 41 00 03 05 84 3C 41 00 A3 88 3C 41 00 Lader Adressen der Variablen bei der Ausführung a 0x00413c80 b 0x00413c84 c 0x00413c88 Adresse des Programmtextes für main() ab 0x00401010

Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04 13

FachhochschuleDortmundUniversity of Applied Sciences

5: int main(void) { 00401010 push ebp 00401011 mov ebp,esp 6: 7: a=1; 00401013 mov a,1 8: b=3; 0040101D mov b,3 9: c=a+b; 00401027 mov eax, a (0x00413c80) 0040102C add eax, b (0x00413c84) 00401032 mov c (0x00413c88),eax 10: 11: return 0; 00401037 xor eax,eax 12: } 00401039 pop ebp 0040103A ret

a 0x00413c80b 0x00413c84c 0x00413c88

Geladener Programmtext im Hauptspeicher

Variablen im Speicher

Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04 14

FachhochschuleDortmundUniversity of Applied Sciences

Bibliothek, lib-Datei

Bisher: Zieldatei war eine exe-Datei

Eine Bibliothek ist eine weitere Zieldateiform bei der Programmentwicklung.

Eine Bibliothek ist ein Ansammlung (Menge) von Objektmodulen.Zur Erinnerung: ein Objektmodul enthält eine Menge von übersetzten Funktionen oder Klassen.

Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04 15

FachhochschuleDortmundUniversity of Applied Sciences

Bibliothek, lib-Datei

Damit: eine Bibliothek ist eine Menge von Funktionen oder Klassen. Zusätzlich: ein Inhaltsverzeichnis mit den Funktionsnamen in Textform.

Eine Bibliothek, die objektorientiert Klassen enthält, bezeichnet man als Klassenbibliothek.

Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04 16

FachhochschuleDortmundUniversity of Applied Sciences

Bibliothek, lib-Datei

Wozu Bibliotheken?Alle obj-Module eines Projektes werden in die exe-Datei eingefügt.

Gibt es danach noch Bezüge auf Funktionen, die nicht in den obj-Modulen vorliegen, wird in Bibliotheken gesucht. Wird eine Funktion mit dem gesuchten Namen gefunden, so wird sie aus der Bibliothek gelesen und in die exe-Datei eingefügt.

Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04 17

FachhochschuleDortmundUniversity of Applied Sciences

Bibliothek, lib-Datei

Schnittstelle einer Bibliothek für den Programmierer:

Der Programmierer muss alle in der Bibliothek enthaltenen Funktionen oder Klassen kennen.Andere Bezeichnung: API Application Programming Interface

Er kann die Funktionen in seinen Quellmodulen aufrufen, der Linker holt sich die Programmtexte aus seinen Bibliotheken.

Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04 18

FachhochschuleDortmundUniversity of Applied Sciences

Bibliothek, lib-Datei

Wie kommt man zu einer lib-Datei?

ProjektIn das Projekt werden eingefügt:Quellsprachemodule, bereits vorhandene Objektmodule.

Erstellungsziel: Bibliothek (engl. (static) Library)Wichtig: im Projekt darf keine main-Funktion sein!

Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04 19

FachhochschuleDortmundUniversity of Applied Sciences

DLL

DLL=Dynamic Loadable Library(Gegensatz: die vorher behandelte „static“ Library)Dynamisch ladbare Bibliothek

Wenn viele Maschinenprogrammtexte aus Bibliotheken in die exe-Datei eingebunden werden, kann die exe-Datei sehr groß werden.

Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04 20

FachhochschuleDortmundUniversity of Applied Sciences

DLL

•Viele Funktionen in dem „Image“ werden bei einem bestimmten Programmlauf überhaupt nicht benötigt.Z.B. Fehlerfunktionen, wenn kein Fehler auftritt.

•Viele Programme enthalten dieselben Funktionen in ihrem „Image“. Z.B. Fensterfunktionen bei Windows-Programmen.

Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04 21

FachhochschuleDortmundUniversity of Applied Sciences

DLL

Abhilfe: DLL

exe-Datei DLL

Zur Ausführung wird das Image der exe-Datei geladen. Bei Aufruf von Funktionen, die in der DLL sind, wird dynamisch das DLL-Image nachgeladen.Weiterer Vorteil: Ist ein DLL-Image geladen, so können sich mehrere Programme der Funktionen aus der DLL bedienen. Das Betriebssystem führt Buch darüber!

Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04 22

FachhochschuleDortmundUniversity of Applied Sciences

DLL

Wie kommt man zu einer DLL?

Voraussetzung wie bei einer Bibliothek:Menge von obj‘s oder Quellmodulen in einem Projekt.(keine main-Funktion!)

Erstellungsziel: DLL

Allerdings: spezielle Syntax nötig –Definition und Aufruf von Funktionen in DLL‘s haben eine besondere Form.

Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04 23

FachhochschuleDortmundUniversity of Applied Sciences

„mobile“ Programmierung

Vorangehend wurde der Fall einer Übersetzung in einen „native“ Maschinentext behandelt.

Native heißt, die exe-Datei benötigt eine spezielle Hardware und ein spezielles Betriebssystem. Mobil heißt, die Programme laufen auf verschiedenen Plattformen (Hardware und Betriebssystem).

Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04 24

FachhochschuleDortmundUniversity of Applied Sciences

„mobile“ Programmierung

Vorgehen bei der mobilen Programmierung:

„Schlanke“ Sprachen: keine plattformabhängige Dialekte.

Der Compiler erzeugt keinen „native“ Programmtext, sondern eine Zwischensprache.Für jede Plattform gibt es eine „virtuelle“ Maschine, die Programme dieser Zwischensprache ausführen kann.Virtuell= über Software-Simulation realisiert

Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04 25

FachhochschuleDortmundUniversity of Applied Sciences

„mobile“ Programmierung

Beispiel:JAVAZwischensprache: „Bytecode“Java Virtual Maschine

Klassenbibliotheken: Packages

Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04 26

FachhochschuleDortmundUniversity of Applied Sciences

„mobile“ Programmierung

Beispiel:.NET Technologie von MicrosoftEine Reihe von Programmiersprachen übersetzen für eine gemeinsame Plattform (.NET-Plattform)

Zwischensprache: CIL Common Intermediate Language

Virtuelle Machine: CLR Common Language Runtime

Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04 27

FachhochschuleDortmundUniversity of Applied Sciences

.NET Struktur

Einf. In die Wirtschaftsinformatik 1, DV-Infrastruktur WS 03/04 28

FachhochschuleDortmundUniversity of Applied Sciences

.NET Struktur

top related