1. Einführung. Grundbegriffe: Programm vs. Software. 1.1 Programmierung & Software 1.2 Programmiersprachen



Ähnliche Dokumente
Kapitel 7 Software-Entwicklungssysteme

Modellierung und Programmierung 1

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4.

Programmiersprachen und Programmierkonzepte

Prof. Dr.-Ing. Dietrich Schröder GIS und Programmiersprachen: Wohin geht die Reise?

Objektorientiertes Programmieren mit Suse Linux

Informatik (G8) Sek I - Differenzierung 8/9

2 Grundlagen der Programmierung

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Programmieren was ist das genau?

Grundlagen der Informatik

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.

Informatik (G9) Sek I - Differenzierung 8/9/10

Komponenten- und ereignisorientierte Softwareentwicklung am Beispiel von Borland-Delphi

Informatik 12 Datenbanken SQL-Einführung

Programmierung: Ein erster Überblick

Lehrpläne NRW Sek.stufe 2. Lernen im Kontext

VBA-Programmierung: Zusammenfassung

2D22 Prinzipien der Softwareentwicklung. Prinzipien der Softwareentwicklung S. Strahringer 1

Einführung in. Logische Schaltungen

Produktvorstellung: CMS System / dynamische Webseiten. 1. Vorwort

Kapitel 1: Einführung

Curriculum des Wahlfaches Informatik für das Gymnasium Dialog

Xesar. Die vielfältige Sicherheitslösung

Übersicht. Rechtsschutz von Software und Datenbanken; Lizenzverträge. Rechtsschutz von Software und Datenbanken

Handbuch ECDL 2003 Basic Modul 6: Präsentation Diagramm auf einer Folie erstellen

Informatik Programmiersprachen eine kurze Übersicht

Entwurf von Algorithmen - Kontrollstrukturen

VBA-Programmierung WS 2008/09

Allgemeines zu Datenbanken

E-PRIME TUTORIUM Die Programmiersprache BASIC

Einführung in PHP. (mit Aufgaben)

Algorithmik II. SS 2003 Prof. Dr. H. Stoyan Lehrstuhl für Informatik 8 ( Künstliche Intelligenz) stoyan@informatik.uni-erlangen.

Programmieren I. Überblick. Institut für Angewandte Informatik

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

BEISPIELKLAUSUR Softwareentwicklung:

Eberhard Lehmann: Projekte im Informatik-Unterricht Software Engineering, Ferd. Dümmlers Verlag, Bonn Inhaltsverzeichnis.

Einführung in die Informatik

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Einführung in die C++ Programmierung für Ingenieure

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>

Gruppenrichtlinien und Softwareverteilung

Die Informatik als junge Wissenschaft

Datenbanken Kapitel 2

Artenkataster. Hinweise zur Datenbereitstellung. Freie und Hansestadt Hamburg. IT Solutions GmbH. V e r s i o n

Was ist Logische Programmierung?

Fragebogen ISONORM 9241/110-S

Angaben zu einem Kontakt...1 So können Sie einen Kontakt erfassen...4 Was Sie mit einem Kontakt tun können...7

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

4D Server v12 64-bit Version BETA VERSION

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen

Coma I. Einleitung. Computer und Algorithmen. Programmiersprachen. Algorithmen versus Programmiersprachen. Literaturhinweise

Software Engineering. Bibliographisches Institut & F. A. Brockhaus AG, Mannheim; Spektrum Akademischer Verlag GmbH, Heidelberg, 2003

Programmieren in Haskell Einführung

ObjectBridge Java Edition

In den weiterführenden Vorlesungen

Java. Warum Programmierung? Programmierung Beispiel Taschenrechner

Business-Rule-Management als Instrument des Software-Reengineering

LEHRPLAN INFORMATIK. für das. ORG unter besonderer Berücksichtigung der Informatik

Visual Basic Express Debugging

Grundlagen geometrisches Zeichnen - CAD. E1: Grundlagen des geometrischen Zeichnens (14)

VB.net Programmierung und Beispielprogramm für GSV

Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester

Informatik ist viel mehr als Delphi-Programmierung!

10 Erweiterung und Portierung

Informationen zur Verwendung von Visual Studio und cmake

Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT

Schulcurriculum Informationstechnische Grundkenntnisse und Informatik Stand:

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Kapitel 10: Datenbankzugriff & Pufferung 2

Informationsblatt Induktionsbeweis

Binäre Bäume Darstellung und Traversierung

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 37

Funktionale Programmierung (in Clojure)

Prolog basiert auf Prädikatenlogik

TISIS - Industrie 4.0. Ereignis, Ort, Datum

1 topologisches Sortieren

Ergänzungsfach Informatik

[Customer Service by KCS.net] KEEPING CUSTOMERS SUCCESSFUL

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

Österreichische Trachtenjugend

Bedienungsanleitung GYMplus

Repräsentative Umfrage zur Beratungsqualität im deutschen Einzelhandel (Auszug)

Bedienerhandbuch Toleranztabellen Version 1.2.x. Copyright Hexagon Metrology

IT-Projekt-Management

Erster Bug: eine Motte

Probeklausur Wirtschaftsinformatik 1 Fachbereich BW, für WINFOBA

Einleitung. Für wen ist dieses Buch

Umwandeln und Exportieren von Adobe-Illustrator-Dateien in Illustrator für Artcut

Grundwissen IT 10. Klasse

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert.

Einführungskurs MOODLE Themen:

Prozessmanagement Modeerscheinung oder Notwendigkeit

effektives Verfahren ~ Algorithmus (Al Chwarismi) Regelsystem, Methode, Rezept, Gebrauchsanleitung Programm (griech. προγραφω, vor-schreiben)

So geht s Schritt-für-Schritt-Anleitung

Übung - Konfigurieren einer Windows 7-Firewall

Transkript:

1. Einführung 1.1 Programmierung & Software 1.2 Programmiersprachen Folie 9 Apr-05 Grundbegriffe: Programm vs. Software Eine zur Lösung einer Aufgabe vollständige Anweisung zusammen mit allen erforderlichen Vereinbarungen heißt PROGRAMM. Ein PROGRAMM setzt sich aus Befehlen zusammen, die von der Zentraleinheit in logischer Reihenfolge abgearbeitet werden. Die Menge von PROGRAMMEN, zugehörigen DATEN und notwendigen DOKUMENTATIONEN, die zusammengefasst erlauben, mit Hilfe eines Computers Aufgaben zu erledigen, nennt man SOFTWARE. SOFTWARE-ENGINEERING: Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden, Konzepten, Notationen und Werkzeugen für die arbeitsteilige, ingenieurmäßige Entwicklung und Anwendung von umfangreichen SOFTWARE(-Systemen). Folie 10 Apr-05

Software - Charakteristika Software ist ein immaterielles Produkt Software ist schwer zu bewerten Software unterliegt keinem Verschleiß Software ist im allgemeinen leichter und schneller änderbar als ein technisches Produkt Software benötigt keine Ersatzteile Software altert Folie 11 Apr-05 Software - Tendenzen 60 MOI Zunehmende Bedeutung im Verhältnis zur Hardware Wachsende Komplexität Nachfragestau Euro-Einführung Jahr 2000-Problematik Strategischer Wettbewerbsfaktor Zunahme der Standardsoftware im Vergleich zur Individualsoftware Zunehmende Fremdentwicklung im Vergleich zur Eigenentwicklung Zunehmende Altlasten Zunehmende Qualitätsanforderungen 50 MOI 40 MOI 20 MOI 10 MOI GEMINI MERCURY 1960 1970 1980 1990 SPACE SCHUTTLE APOLLO Folie 12 Apr-05

Software - Systematisierung Software Systemsoftware (Basissoftware) Betriebssysteme Steuerprogramme Übersetzungsprogramme Dienstprogramme Systemnahe Software (z.b. Datenbankverwaltungssysteme, Kommunikationsprogramme) Anwendungssoftware (application software) Technisch/Wissenschaftliche Programme Kommerzielle Programme (auf betriebliche Fkt. bezogen) Branchenprogramme Programmiersprachen, Programmentwicklungssysteme (CASE-Systeme) Folie 13 Apr-05 Softwareschichten Benutzer Benutzer Benutzeroberfläche Anwendungssoftware DBMS Kommunikation Assembler CASE Compiler Individuell entwickelte Programme Betriebssystem Dienstprogramme Branchenpakete Interpreter Funktional orientierte Pakete Benutzer Benutzer Folie 14 Apr-05

1. Einführung 1.1 Programmierung & Software 1.2 Programmiersprachen Folie 15 Apr-05 Programmiersprachen Eine PROGRAMMIERSPRACHE ist eine Künstliche Sprache zum Abfassen von Computerprogrammen (DIN 44300). Programmiersprachen sollen es ermöglichen, den Lösungsweg (Algorithmus) für eine spezielle Problemstellung in einer der Maschine verständlichen Sprache zu formulieren. Folie 16 Apr-05

Programmierumgebung Eine PROGRAMMIERUMGEBUNG ist ein Softwaresystem, das eine Sammlung von Werkzeugen, die zur Entwicklung von Software dient, zur Verfügung stellt. Wesentliche Komponenten: TEXTEDITOR: zur Erfassung des Quelltextes ÜBERSETZUNGSPROGRAMME: Programm, das Anweisungen in einer höheren Sprache liest, analysiert und in bedeutungsgleiche Maschinenbefehle umwandelt DEBUGGER: ermöglicht ein schrittweises Abarbeiten des Programms zu Testzwecken HILFESYSTEM: erlaubt die kontextsensitive Abfrage von Informationen zur Programmsyntax u.ä. GUI-BUILDER: Modellierung der Benutzeroberfläche Folie 17 Apr-05 Programmierumgebung Visual Basic Hilfesystem Übersetzungsprg. Debugger Folie 18 Apr-05 Texteditor

Programmiersprachenstammbaum Folie 19 Apr-05 Sprachgenerationen Sprachen der ersten Generation: MASCHINENSPRACHEN Sprachen der zweiten Generation: ASSEMBLERSPRACHEN Sprachen der dritten Generation: HÖHERE PROGRAMMIERSPRACHEN Sprachen der vierten Generation: 4GL-SYSTEME Maschinensprache Assemblersprachen Höhere Programmiersprachen 4GL-Systeme Alternative Sprachrichtungen Alternative Sprachrichtungen: SPRACHEN DER KÜNSTLICHEN INTELLIGENZ (Sprachen der fünften Generation) OBJEKTORIENTIERTE PROGRAMMIERSPRACHEN VISUELLE PROGRAMMIERSPRACHEN Folie 20 Apr-05

Maschinensprachen (1. Generation) Maschinenorientierte Sprache Jeder Befehl besteht aus einer Folge der Binärzeichen 0 und 1 entsprechend dem Befehlssatz des jeweiligen Prozessors. Beispiel: Addiere 3+4 (Großrechner) Befehl Addition, Operanden 3, 4: 00011010 0011 0100 Befehlswort 3 4 unmittelbare Hardware-Orientierung, unverständlich, unübersichtlich, fehleranfällig Folie 21 Apr-05 Assemblersprachen (2. Generation) Folie 22 Apr-05 maschinenorientierte Sprache, die den Aufbau der Befehle der Maschinensprache beibehält, die Instruktionsteile jedoch nicht primär verschlüsselt, sondern durch Symbolik (mnemotechnische Abkürzungen) ausdrückt Beispiel: Addiere 3+4 Assemblerbefehl: ADD 3, 4 Die Übersetzung in Maschinensprache erfolgt mit Hilfe eines ASSEMBLIERERS (1:1-Übersetzung). optimale Speicherausnutzung und Verarbeitungsgeschwindigkeit enge Hardware-Orientierung, unübersichtlich, fehleranfällig

Höhere / Prozedurale Programmiersprachen (3. Generation) Weitgehend genormte Sprachen, die für einen speziellen Anwendungsbereich konzipiert (problemorientiert) sind und nahezu unabhängig von einem bestimmten Rechnertyp sind. Die Programmierung erfolgt durch die Formulierung von Algorithmen (Algorithmus = Abfolge von Operationen, die jeweils Daten bearbeiten). Beispiel: Addiere 3+4: Operation SUMME = 3 + 4 Übersetzung in Maschinensprache erfolgt durch einen Compiler/Interpreter (1:n-Übersetzung) schlechtere Performance Folie 23 Apr-05 Übersetzungsprogramm I Ein Programm, das nicht in Maschinensprache abgefasst ist, wird QUELLPROGRAMM (QUELLCODE/SOURCECODE) genannt. Ein in Maschinensprache vorliegendes Programm (=Zielprogramm des Übersetzungsvorgangs) heißt OBJEKTPROGRAMM (OBJEKTCODE). Unter einem ÜBERSETZUNGSPROGRAMM (TRANSLATOR) versteht man ein Programm, das Anweisungen in einer höheren Sprache oder in Assemblersprache liest, analysiert (Optimierung) und in bedeutungsgleiche Maschinenbefehle umwandelt. Folie 24 Apr-05

Übersetzungsprogramm II QUELLCODE: ÜBERSETZUNGS- PROGRAMM PROGRAM test; test; BEGIN BEGIN (Assemblierer, WriteLN ('Hallo!'); Compiler, Interpreter)...... OBJEKTCODE: 0101000100111 0110010011111 1110110001100 1100011... Hallo! Folie 25 Apr-05 Compiler vs. Interpreter Compiler Ein Übersetzungsprogramm, das in einer höheren Programmiersprache abgefassten Quellcode komplett in Zielanweisungen einer maschinenorientierten Programmiersprache umwandelt (kompiliert). Das erzeugte Objektprogramm kann für spätere Verarbeitungsläufe abgespeichert werden, so dass vor der (erneuten) Ausführung keine Übersetzung mehr nötig ist. Interpreter Ein Programm zur schrittweisen Übersetzung von Quellcode in lauffähigen Maschinencode, welcher sofort (zeilenweise) ausgeführt wird. Im Unterschied zum Kompilieren entsteht kein vollständiges, aufbewahrungsfähiges Objektprogramm. Bei jedem Programmstart erfolgt ein erneuter Übersetzungsvorgang Folie 26 Apr-05

Assemblierer Compiler Interpreter Assemblierer Maschinensprache Compiler / / Interpreter 00011010 0011 0100 Folie 27 Apr-05 Assemblersprachen Höhere Programmiersprachen 4GL-Systeme Alternative Sprachrichtungen ADD 3, 4 SUMME = 3 + 4 Beispiele für 3-GL-Sprachen I COBOL (COmmon Business Oriented Language) Entwicklung in den 50er Jahren betriebswirtschaftliche Anwendungen (Verarbeitung umfangreicher Datenbestände) meistgenutzte Programmiersprache auf Großrechnern Standard: ANSI-COBOL-85 FORTRAN (FORmula TRANslator) Entwicklung in den 50er Jahren von IBM technisch-wissenschaftliche Anwendungen (effiziente Programme für komplexe mathematische Algorithmen) Standard: FORTRAN 90 BASIC (Beginners All-Purpose Symbolic Instruction Code) Entwicklung in den 60er Jahren als vereinfachtes FORTRAN fehlende Unterstützung der strukturierten Programmierung führte zu Spaghetticode Weiterentwicklung (MICROSOFT) zur professionellen Makro- und Programmiersprache VISUAL BASIC (Visuelle Programmierung) Folie 28 Apr-05

Beispiele für 3-GL-Sprachen II C Entwicklung in den 70er Jahren in den Bell Laboratories des amerikanischen Telekommunikationskonzerns AT&T effizientes Laufzeitverhalten eng mit dem Betriebssystem UNIX verbunden (UNIX zu 90% in C geschrieben) universell einsetzbar auf allen gängigen Rechnern objektorientierte Nachfolger: C++ Makrosprachen Automatisierung von wiederkehrenden Abläufen innerhalb von Anwendungen (z.b. Textverarbeitung, Tabellenkalkulation) Proprietär: Der Befehlsumfang wird ausschließlich von einem einzigen Hersteller definiert bzw. weiterentwickelt zumeist herstellerspezifische Dialekte der Programmiersprache BASIC z.b. Visual Basic for Application (VBA) von MICROSOFT, LotusScript von LOTUS Folie 29 Apr-05 Beispiele für 3-GL-Sprachen III PASCAL 1971 von Prof. Niklaus Wirth an der ETH Zürich entwickelt benannt nach französischen Mathematiker und Philosophen Blaise Pascal (1623-1662) unterstützt die strukturierte Programmierung durch leichte Erlernbarkeit für Ausbildungszwecke geeignet geringe Verbreitung im Bereich kommerzielle Anwendungsentwicklung durch unkomfortable Ein- und Ausgabeanweisungen und unzureichende Dateiverarbeitung Nachfolger: MODULA 2 (modulare Programmierung) ObjectPascal (objektorientierte Programmierung) Delphi (visuelle Programmierung) Niklaus Wirth Blaise Pascal (1623-1662) Folie 30 Apr-05

Nicht-prozedurale Sprachen 4GL-Systeme (4. Generation) Folie 31 Apr-05 Deskriptive Programmierung Der Programmierer muss nicht mehr angeben, auf welche Weise ein Problem Schritt für Schritt gelöst werden soll, sondern er legt in beschreibender Form das Resultat fest, was geschehen soll. Beispiel: Prozedurale Variante: Sortieren einer Kundenliste Datenbanksprache Structured Query Language (SQL) SELECT Vorname, Nachname FROM Kunden WHERE Ort = Bochum ORDER BY Nachname 1. Gehe zum ersten Datensatz in der Tabelle Kunde 2. Solange noch nicht am Ende der Tabelle Kunde 2.1. Wenn Ort von jeweiligen Datensatz = Bochum 2.1.1. Dann Markiere den Datensatz 2.2. Gehe zum nächsten Datensatz 3. Kopiere von markierten Datensätzen Vorname, Nachname in eine temporäre Tabelle 4. Sortiere Datensätze der temporären Tabelle nach Nachnamen Proprietär, hohe Inanspruchnahme der Hardwareressourcen bei Umsetzung, beschränkter Anwendungsbereich Alternative Richtungen: Sprachen der künstlichen Intelligenz Folie 32 Apr-05 Sprachen der 5. Generation Anwendungsgebiete: Expertensysteme, Robotersteuerung, Data Mining Funktionale Programmiersprachen mathematische Funktionen auf Basis von Basisfunktionen (Aneinanderkettung, Iteration, Rekursion) LISP (LISt-Processing Language): 1958 am MIT (Massachusetts Institute of Technology) entwickelt grundlegende Struktur der Liste für Programme und Daten Logische Programmiersprachen Prinzipien der mathematischen Logik: aus Fakten und Regeln werden mit Hilfe der Prädikatenlogik neue Fakten gewonnen PROLOG (PROgramming LOGic): 1972 in Marseille entwickelt kaum Ablaufsteuerung, Verwendung von Deduktionsverfahren

Alternative Richtungen: Objektorientierte Programmierspr. Objekt Daten: beschreiben den Zustand des Objekts Methoden: beschreiben das Verhalten des Objekts Klassen: Objekte mit gemeinsamer Struktur und gemeinsamen Verhalten weitere Konzepte: einfache/mehrfache Vererbung, Polymorphismus Objektorientierte Programmiersprachen (OOP) Simula (1967), Smalltalk (1972), Eiffel (1988), Java (1995) Hybridsprachen C++ (1985), ObjectPascal (1985), Modula-3 (1985) Folie 33 Apr-05 Alternative Richtungen: Visuelle Programmiersprachen objekt- und ereignisorientierte Modellierung des optischen Erscheinungsbildes des Programms Kontroll-/Steuerelemente besitzen Eigenschaften (z.b. Farbe) und Ereignisse (z.b. Mausklick) den Ereignissen werden Ereignisprozeduren zugeordnet VISUAL BASIC von MICROSOFT DELPHI von BORLAND Folie 34 Apr-05

Gefragte Softwaretechnologien bei den IT-Kernberufen Softwareentwicklung / Programmierung IT-Organisation / IT-Projekte Netzwerke / Betriebssysteme Service / Support Datenbanken [CDI, Sept 2001] Folie 35 Apr-05 Gefragte Softwaretechnologien bei den IT-Mischberufen Multimedia E-Business / E-Commerce SAP CAD Kaufmännische Sachbearbeitung [CDI, Sept 2001] Folie 36 Apr-05