Vorlesung - DHBW Stuttgart

Werbung
Vorlesung Skriptsprachen
Duale Hochschule Stuttgart
Sommersemester 2017
Dipl.-Ing. (FH) Volker Schepper
Vorlesung: Skriptsprachen DHBW Stuttgart - Semester: SS2017 – Dipl.-Ing.(FH) Volker Schepper
08.03.2017
1
Organisation
Vorlesungstermine
8. März 2017
15. März 2017
22. März 2017
29. März 2017
5. April 2017
12. April 2017
19. April 2017
26. April 2017
3. Mai 2017
10. Mai 2017
17. Mai 2017
Uhrzeit
13:30 Uhr bis 15:30 Uhr
Vorlesung: Skriptsprachen DHBW Stuttgart - Semester: SS2017 – Dipl.-Ing.(FH) Volker Schepper
08.03.2017
2
Inhalte der Vorlesung
• Einführung Skripte
• Funktionsweise
• Vor- & Nachteile
• Pyhton
• Variablen, Anweisung
• Bedingungen, …
• Übungen
• Projektarbeit
•
•
•
•
•
•
•
•
Einführung Python
Mathematische Operatoren
Datei Operationen
Multithreading
Netzwerk UDP & TCP/IP
Datenbank
GUI
Webseiten
Vorlesung: Skriptsprachen DHBW Stuttgart - Semester: SS2017 – Dipl.-Ing.(FH) Volker Schepper
08.03.2017
3
Definition von Skripte
Skripte sind Anweisung welche mittels eines
Programms/Software interpretiert werden.
Dieses Programm/Software wird als Interpreter
bezeichnet.
In Skripte sind Anweisungen enthalten die der
Interpreter ausführt.
Vorlesung: Skriptsprachen DHBW Stuttgart - Semester: SS2017 – Dipl.-Ing.(FH) Volker Schepper
08.03.2017
4
Generelle Eigenschaften von Skriptsprachen
•
•
•
•
•
•
Ausführung durch Interpreter
Typfreiheit / schwache Typisierung
Oft wenige komplexe Datenstrukturen
Komfortable Operationen mit Strings
Häufige Verwendung bei OS-Kommandos
Einbindung externe Bibliotheken/Programme
Vorlesung: Skriptsprachen DHBW Stuttgart - Semester: SS2017 – Dipl.-Ing.(FH) Volker Schepper
08.03.2017
5
Ein Programm
Ein Programm wird mittels Compiler (Linker,
Preprocessor u. Compiler) erstellt.
Das erstellt Programm ist direkt ausführbar und
enthält Maschinebefehle.
Vorlesung: Skriptsprachen DHBW Stuttgart - Semester: SS2017 – Dipl.-Ing.(FH) Volker Schepper
08.03.2017
6
Funktionsweise eines Interpreters
Der Quellcode wird vom
Interpreter eingelesen
analysiert und ausgeführt.
1.
2.
3.
Quellcode einlesen
Analysieren / Umsetzten
Ausführen
Anwendung
Skript
Interpreter
Betriebssystem
Hardware
Vorlesung: Skriptsprachen DHBW Stuttgart - Semester: SS2017 – Dipl.-Ing.(FH) Volker Schepper
08.03.2017
7
Programmiersprachen vs. Skriptsprachen
Programmiersprachen
Skriptsprachen
Quellcode
Quellcode
(Skript)
Linker
Preprocessor
Interpreter
Programm
Zielplattform
Vorlesung: Skriptsprachen DHBW Stuttgart - Semester: SS2017 – Dipl.-Ing.(FH) Volker Schepper
08.03.2017
8
Kommandozeileninterpreter
Zur Eingabe vom Kommandos und zur Ausführung
mehrere Kommandos für Automatisierte
Installationsroutinen, Daten-BackUp oder ähnliches.
• bash
• Linux-Shell
• sh
• Unix-Shell
• cmd
• Windows Kommandointerpreter
• Windows PowerShell
•
Erweiterung der vom cmd mit Kommandos von Linux Shell
Vorlesung: Skriptsprachen DHBW Stuttgart - Semester: SS2017 – Dipl.-Ing.(FH) Volker Schepper
08.03.2017
9
Integrierte Skriptsprachen Anwendungsprogramme
• Größere Programmpakete bieten die
Möglichkeiten Skripte auszuführen für eine
schnelle Abarbeitung von sich
wiederholenden Aufgaben.
• Microsoft Office
• VBA – Visual Basic for Applications
• OpenOffice
• Technische Programme (Matlab, Diadem, …)
Vorlesung: Skriptsprachen DHBW Stuttgart - Semester: SS2017 – Dipl.-Ing.(FH) Volker Schepper
08.03.2017
10
Eigenständige Interpreter
•
•
•
•
•
Basic
Perl
PHP
Python
….
Vorlesung: Skriptsprachen DHBW Stuttgart - Semester: SS2017 – Dipl.-Ing.(FH) Volker Schepper
08.03.2017
11
Funktionsweise – (Normale) Interpreter
Der Quellcode wird vom Interpreter eingelesen
analysiert und ausgeführt.
1. Quellcode einlesen
2. Analysieren / Umsetzten
3. Ausführen
Vorlesung: Skriptsprachen DHBW Stuttgart - Semester: SS2017 – Dipl.-Ing.(FH) Volker Schepper
08.03.2017
12
Funktionsweise – Just in Time Interpreter
Erst zur Laufzeit wird das Skript in
Maschinenbefehle übersetzt.
• Durch dir direkte Ausführung des
Maschinenbefehle wird höhere
Geschwindigkeit erreicht.
• Schleifen oder ähnliches müssen lediglich
einmal in Maschinenbefehle übersetzt
werden.
Vorlesung: Skriptsprachen DHBW Stuttgart - Semester: SS2017 – Dipl.-Ing.(FH) Volker Schepper
08.03.2017
13
Funktionsweise – Byte-Code Interpreter
Das Script wird zuerst in ein Byte-Code
übersetzt.
• Die Ausführung des Byte-Code wird in einer
virtuellen Maschine ausgeführt.
• Durch die Übersetzt in den Byte-Code können
Optimierung bei der Ausführung
vorgenommen werden. Dadurch können auch
Geschwindigkeitsvorteile erreicht werden.
Vorlesung: Skriptsprachen DHBW Stuttgart - Semester: SS2017 – Dipl.-Ing.(FH) Volker Schepper
08.03.2017
14
Rekursiver Interpreter
Anwednung
Der Interpreter 1 führt das
Skript 1 aus.
Das Skript 1 beinhaltet die
Anweisung für neuen
Interpreter.
Die Kombination aus
Interpreter 1 und Skript 1
fungieren zusammen als
Interpreter 2.
Script 2
Interpreter 2
Interpreter 1
Script 1
Interpreter 2 führt die neuen
Anweisung aus, welche im
Skript 2 vorhanden sind.
Betriebssystem
Hardware
Vorlesung: Skriptsprachen DHBW Stuttgart - Semester: SS2017 – Dipl.-Ing.(FH) Volker Schepper
08.03.2017
15
Programmiersprache - Eigenschaften
• Der Quellcode muss vor der ersten
Anwendung kompiliert werden.
• Die Anwendung wird für ein bestimmtes
Betriebssystem kompiliert.
• Direkt im Betriebssystem wird die Anwendung
ausgeführt.
Vorlesung: Skriptsprachen DHBW Stuttgart - Semester: SS2017 – Dipl.-Ing.(FH) Volker Schepper
08.03.2017
16
Vorteile Programmiersprache
Hohe Ausführungsgeschwindigkeit
– Das Programme liegt bereits im nativen Maschinencode
vor. Deshalb entfallen etwaiger Zwischenschritte durch
einen Interpreter.
Typsicher (typesafe)
– Variablen ist immer zu deklarieren, welchen Typ sie
besitzen.
Zeigerarithmetik
– Mit Zeiger können effizienter Code entwickelt werden. ==>
hohe Ausführungsgeschwindigkeit jedoch großes
Fehlerpotential vorhanden.
Vorlesung: Skriptsprachen DHBW Stuttgart - Semester: SS2017 – Dipl.-Ing.(FH) Volker Schepper
08.03.2017
17
Vorteile Skriptsprache
• Betriebssystemunabhängig.
• Müssen weder kompiliert noch gelinkt
werden. Script kann deshalb schnell gestartet
und dadurch besser getestet werden.
=> Rapid Prototyping
Vorlesung: Skriptsprachen DHBW Stuttgart - Semester: SS2017 – Dipl.-Ing.(FH) Volker Schepper
08.03.2017
18
Zeitliche Einordnung
BASIC
Python
(1964)
(1991)
Fortran
COBOL
B
C
C++
(1954)
(1960)
(1970)
(1972)
(1983)
t
1950
1960
1970
1980
1990
Perl
PHP
(1987)
(1995)
Ruby
(1995)
Vorlesung: Skriptsprachen DHBW Stuttgart - Semester: SS2017 – Dipl.-Ing.(FH) Volker Schepper
08.03.2017
19
Python
“Python is powerful... and fast;
plays well with others;
runs everywhere;
is friendly & easy to learn;
is Open.”*
Python Software Foundation
Vorlesung: Skriptsprachen DHBW Stuttgart - Semester: SS2017 – Dipl.-Ing.(FH) Volker Schepper
08.03.2017
20
• Entwickelt 1991 von Guido van Rossum
• Lizenz:
• Python Software Foundition Lizenz
• Kompatibel zu GPL
Quelle: Wikipedia
Python Einführung
• Interpreter Sprache
• Freie Verfügbarkeit
• Unterschiedliche Implementierungen
• Aktuelle Version
• Python 3.4
• (Python 2.7)
Vorlesung: Skriptsprachen DHBW Stuttgart - Semester: SS2017 – Dipl.-Ing.(FH) Volker Schepper
08.03.2017
21
Vorteile Python
Mit Python können umfangreiche Anwendungen schnell
Entwickelt werden.
Rapid Prototyping (RP)
Rapid Application Development (RAD)
 Einfach & eindeutig
 Klare Strukturen
 Wiederverwendung
 Objektorientiert
 Interpreter
 Unabhängig
Vorlesung: Skriptsprachen DHBW Stuttgart - Semester: SS2017 – Dipl.-Ing.(FH) Volker Schepper
08.03.2017
22
Vorteile Python
Klar und verständlichen Code
• Syntax ermöglicht sehr kompakte Programmtexte
• Das Layout des Quelltestes dient nicht allein der besseren Lesbarkeit
Flexibel
• Kleine / große Applikationen
• Client-/ Serverseitige Programmiersprache
• Plattform unabhängig
Komfortabel
• Automatische Speicherverwaltung
• Umfangreiche Standardbibliothek (Rapid Prototyping)
• Variablen muss kein Datentyp explizit zugeordnet werden. Es gibt keine eine
Variabledeklaration, der Datentyp ergibt sich aus dem Kontext
• Abstrakten Datentypen erlauben komplexe Operationen in einem Ausdruck
Vorlesung: Skriptsprachen DHBW Stuttgart - Semester: SS2017 – Dipl.-Ing.(FH) Volker Schepper
08.03.2017
23
Einsatz von Python
• D-Link
• Uses Python to control firmware updates.
• Philips Semiconductor(NXP)
• Production line in Fishkill runs on Python.
• Google
• Ist eine offizielle Programmiersprache
• YouTube
• Größtenteils in Python programmiert.
• Honeywell
• Python zur allgemeinen Softwareentwicklung eingesetzt.
• One Laptop per Child (100Dollar-Laptop)
• Benutzeroberfläche in Python
Vorlesung: Skriptsprachen DHBW Stuttgart - Semester: SS2017 – Dipl.-Ing.(FH) Volker Schepper
08.03.2017
24
Google spricht Python
„Eigentlich hatte Max Rosett bloß nach Funktionen der Programmiersprache
Python gesucht. Gefunden hat er schließlich einen Job bei Google.“
http://www.manager-magazin.de/unternehmen/it/foobar-so-arbeitet-googles-verstecktes-recruiting-tool-a-1050696.html
„"Eines Morgens habe ich, während ich an einem Projekt arbeitete, 'python
lambda function list comprehension' bei Google eingetippt", beschreibt der
Programmierer die Situation auf TheHustle, einer Webseite für junge
Unternehmer. Auf einmal seien die Suchergebnisse aufgeplatzt und hätten sich
zurückgefaltet, um einen Kasten zu enthüllen, in dem stand:
"Du sprichst unsere Sprache. Lust auf eine Herausforderung?"“
http://www.spiegel.de/karriere/foobar-so-arbeitet-googles-verstecktes-recruiting-tool-a-1051330.html
Vorlesung: Skriptsprachen DHBW Stuttgart - Semester: SS2017 – Dipl.-Ing.(FH) Volker Schepper
08.03.2017
25
Python Interpreter
• cPython
• Am meist verwendete Interpreter, ist mit der Programmiersprache C geschrieben.
• Jython
• Implementierung in Java. Java Bibliotheken können dynamisch benutz werden.
• IronPython
• Interpreter wurde mit C# geschrieben. Es können .NET Bibliotheken verwendet werden.
• PyPy
• Just-In-Time (JIT) Compiler deutlich schneller Ausführung.
• Stackless Python
•
Rücksprungadressen lokal speichern. Rekursionstiefe nur noch durch
den Arbeitsspeicher begrenzt.
Vorlesung: Skriptsprachen DHBW Stuttgart - Semester: SS2017 – Dipl.-Ing.(FH) Volker Schepper
08.03.2017
26
cPython - Interpreter
• Das Script wird nicht direkt im Betriebssystem
ausgeführt.
• Jedoch besitzt auch Python ein Compiler. Aus
dem Quellcode wird ein Byte-Code Kompilat
erzeugt. Der Python-Interpreter stellt eine
virtuelle Maschine für den Python Byte-Code
dar.
Vorlesung: Skriptsprachen DHBW Stuttgart - Semester: SS2017 – Dipl.-Ing.(FH) Volker Schepper
08.03.2017
27
Herunterladen