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