Bereits aus den Klassenstufen 7 un 8 kennst du den Algorithmusbegriff. In Klasse 10 wollen wir nun den Begriff präzisieren.
Ein Algorithmus ist eine Verarbeitungsvorschrift, die aus einer endlichen Folge von eindeutig ausführbaren Anweisungen besteht, mit der man eine Vielzahl gleichartiger Aufgaben lösen kann. Ein Algorithmus gibt an, wie Eingabegrößen schrittweise in Ausgabegrößen umgewandelt werden.
Bereits in Klasse 8 hast du verschiedene Darstellungsformen und algorithmische Grundstrukturen kennengelernt:
In der Klasse 10 wollen wir die algorithmischen Grundstrukturen mit Struktogrammen und in einer textorientierten Programmiersprache (Python) umsetzen.
Ein Programm ist ein Algorithmus, der in einer für einen Computer verständlichen Sprache, einer Programmiersprache, verfasst ist.
Für Programmiersprachen gibt es verschiedene Möglichkeiten der Einteilung. Eine erste ist die Einteilung in
Ein Prozessor kann nur Maschinencode ausführen. Damit ein Prozessor ein Assemblerprogramm ausführen kann muss es assembliert werden, damit er ein Programm in einer höheren Programmiersprache ausführen kann, benötigt man einen Compiler oder einen Interpreter (Siehe unten!).
Höhere Programmiersprachen kann man z.B. nach der Art des zugrunde liegenden Algorithmusbegriffs einteilen:
Je nach Art der Übersetzung in Maschinencode kann man höhere Programmiersprachen auch einteilen in
section .text global _start ;must be declared for using gcc _start: ;tell linker entry point mov edx, len ;message length mov ecx, msg ;message to write mov ebx, 1 ;file descriptor (stdout) mov eax, 4 ;system call number (sys_write) int 0x80 ;call kernel mov eax, 1 ;system call number (sys_exit) int 0x80 ;call kernel section .data msg db 'Hello, world!',0xa ;our dear string len equ $ - msg ;length of our dear string
Aufruf des Assemblers in der Kommandozeile:
nasm -f elf64 hallo.asm
Programm linken:
ld hallo.o -o hallo
Programm ausführen:
./hallo
Ausgabe:
Hello, world!
Programm compilieren:
gcc hallo.c -o hallo
Programm ausführen:
./hallo
Ausgabe:
Hello, world!