Software = die "weiche Ware":
Gesamtheit aller Programme, die auf einer Rechenanlage eingesetzt
werden können. Die Software wird auf CD, Disketten, Festplatten und
Magnetbändern gespeichert.
Systematisiert man den Bereich der Software, so können grundsätzlich zwei Arten von Software unterschieden werden:
Anwenderprogramme lösen die konkreten Probleme des jeweiligen Anwenders.
Systemprogramme steuern und überwachen die
Abwicklung der EDV-Anwendungen. Die Programmiersprachen bilden dabei eine
Mensch-Computer-Schnittstelle.
Benutzerprogramme, die Probleme der Anwender in verschiedenen Bereichen
(z. B. Adressverwaltung, Spiele, Mathematik, Buchhaltung, Haushalt) lösen können.
Beispiele: MS-Office, Star-Office, Lotus-Office
Standardprogramme:
Diese Programme werden einmalig erstellt, können aber den individuellen
Bedürfnissen verschiedener Anwender angepasst werden (z.B. Ausdruck
von Rechnungen auf Firmen-vordrucken).
Beispiele: Brachensoftware für
Ärzte, Rechtsanwälte
Individualprogramme:
Diese Programme sind erforderlich, wenn es kein geeignetes Standardprogramm
für eine spezifische Anwendung gibt. Beispiele sind hier neue
Automaten, wie Geldausgabeautomaten, die jeweils eine eigene passende Software
benötigen.
Systemprogramme ermöglichen den ordnungsgemäßen Betrieb
eines Computers und stellen somit eine Verbindung zwischen der Hardware
und den Anwenderprogrammen her.
Beispiel eines Events
Will man eine Problemstellung mit Hilfe der Elektronischen Datenverarbeitung lösen, so muss man den Lösungsweg (Algorithmus) in einer Sprache formulieren, die der Computer versteht. Alle Programme, seien es nun System- oder Anwenderprogramme, sind mit Hilfe einer (oder mehrerer) der nachstehend angeführten Programmiersprachen verfasst.
Sprachen der 1. Generation - Maschinensprachen
Jeder Computer versteht unmittelbar nur eine Sprache, und zwar die
für ihn entwickelte Maschinensprache. Diese Sprache ist binär verschlüsselt, d.h.
sie besteht nur aus den Zeichen 0 und 1. Die Maschinensprache ist
für den Menschen deshalb nicht geeignet, da ein Programm nur unter
großem Zeitaufwand und mit viel Mühe entwickelt werden kann.
Beispiel:
100001100.............addiere
Sprachen der 2. Generation - Assembler
Die Assemblersprache entspricht weitgehend der Maschinensprache. Jeder Befehl der Assemblersprache entspricht einem Befehl der Maschinensprache,
nur werden die binär verschlüsselten Befehle der Maschinensprache
durch verständliche Bezeichnungen ersetzt.
Beispiel: ADD...................addiere
Jedes System hat seine eigene Assemblersprache, so dass man für die Programmherstellung Maschinenkenntnisse benötigt. Die Erstellung von Programmen in Assemblersprache ist daher auch verhältnismäßig schwierig, jedoch haben diese Programme den Vorteil, dass sie wenig Speicherplatz beanspruchen und sehr schnell ablaufen.
Sprachen der 3. Generation
- prozedurale Sprachen
Diese Sprachen sind schrittweise (prozedural) aufgebaut und ermöglichen eine maschinenunabhängige Programmierung
mit Hilfe von Symbolen der Mathematik (z.B. +) bzw. mit Hilfe von Befehlen,
die der englischen Sprache entstammen.
Beispiel:
varA=varA+22..........addiere
Bei den prozeduralen Sprachen wird als Lösungsweg das WIE angegeben.
Sprachen der 4. Generation -
Objektorientierte Sprachen
Bei den Sprachen
der vierten Generation genügt es nur mehr zu definieren, WAS geschehen soll. Aus
diesem Grunde werden die Sprachen auch Objektorientierte Sprachen genannt. Zu dieser Kategorie zählen sowohl Werkzeuge für
Endbenutzer (z.B. dBase, Open Access), als auch Werkzeuge für
Softwareentwickler (C++, Java).
Beispiel:
Obj1=Obj2.add(22)......addiere
Sprachen der 5. Generation:
Endziel all dieser Sprachen ist der Einsatz im Bereich der künstlichen
Intelligenz. Ansätze zur Bewältigung dieser Problematik finden
sich unter anderem bei LISP und Prolog.
Jeder Computer arbeitet intern nur im Maschinencode. Daher müssen alle Programme ab der 2. Generation mit Hilfe von Sprachübersetzern umgewandelt werden.
Assembler
Ein Assembler übersetzt die in einer Assemblersprache geschriebenen
Anweisungen in Maschinencode.
Compiler
Ein Compiler übersetzt ein Programm
einer höheren Programmiersprache, ein so genanntes Quellprogramm (Source
Code) in ein Maschinen- bzw. Objektprogramm (Object Code). Das Objektprogramm
wird danach durch einen Linker mit Programmen der Sprachbibliotheken und
Systemumgebung zum ablauffähigen Programm verbunden. Während einer Programmausführung
ist somit keine Übersetzung nötig ist.
Beispiele für Compilersprachen: C, C++,
Pascal, Delphi
Interpreter
sind Übersetzungsprogramme die Programme erst
bei der Ausführung in Maschinencode umsetzen (z.B. Basic oder Javascript).
Ein Javascript-Programm wird erst vom Browser des Anwenders nach dem Laden
aus dem Internet ausgeführt.
(Utilities) sind Hilfsprogramme zur Abwicklung
immer wiederkehrender Aufgaben (z.B. Sortierprogramme).