projektwoche 2010 sprechen sie d? - miwilhelm.de filed programme können geschrieben werden in c...
Post on 10-Aug-2019
215 Views
Preview:
TRANSCRIPT
1FB Automatisierung und Informatik: Projektwoche SS2008, Sprechen Sie D?
ProjektwocheProjektwoche 20102010
SprechenSprechen SieSie D? D?
� Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm
� Hochschule Harz
� FB Automatisierung und Informatik
� mwilhelm@hs-harz.de
� http://mwilhelm.hs-harz.de
� Raum 2.202
� Tel. 03943 / 659 338
2FB Automatisierung und Informatik: Projektwoche SS2008, Sprechen Sie D?
Inhalt
1. Sprachfamilien / Geschichte von D
Assembler, Interpreter, Native Sprachen, KI, GUI
2. Einfache Sprachkonstrukte
Datentypen, if-Bed., Schleifen, Unterprogramme
3. Ein- Ausgabe
4. Felder, Listen
5. Exception
6. Struct / Objekte
7. Reguläre Ausdrücke
8. Beispiele
3FB Automatisierung und Informatik: Projektwoche SS2008, Sprechen Sie D?
C ⇒ C++ ⇒ D
4FB Automatisierung und Informatik: Projektwoche SS2008, Sprechen Sie D?
5FB Automatisierung und Informatik: Projektwoche SS2008, Sprechen Sie D?
1. Sprachfamilien / Geschichte von D
Sprachfamilien
� Assembler:native, Hardwarenah, nicht portierbar, schnell,
komplex, fehleranfällige Programmierung
� Cobol, Fortran: native, alt, 1955, Unterprogramme, fehleranfällige
Programmierung, technisch vs. kommerziell
� C: native, Hardwarenah, (portierbar), schnell, komplex,
fehleranfällige Programmierung, Pointer
� Pascal, Modula, Oberon: Modular: native, modular,
Schulsprache (Wirth)
� Delphi: native, modular, Objektorientiert, Schnittstellen, modular,
GUI
6FB Automatisierung und Informatik: Projektwoche SS2008, Sprechen Sie D?
Sprachfamilien / Geschichte von D
� VBA, Basic: Interpreter, einfach zu lernen, Goto, frühe
Skriptsprache
� Perl, Python, PHP, Ruby:moderne Skriptsprachen, Interpreter,
Objektorientiert
� Haskell, Lisp: funktionale Sprache
� C++: native, portierbar, sehr komplex, fehleranfällige
Programmierung, Objektorientiert, Multivererbung, Pointer
� Java, C#: Interpreter, portierbar, komplex, leichte Programmierung,
Objektorientiert, Schnittstellen, Garbage Colletion
� D: native, portierbar, schnell, komplex, leichte Programmierung,
Objektorientiert, Schnittstellen, Garbage Colletion, keine
Headerdateien,
7FB Automatisierung und Informatik: Projektwoche SS2008, Sprechen Sie D?
Sprachfamilien
Sprachkonstrukte
� Hexdezimale Programmierung
� Assembler
� Hochsprachen: Cobol, Fortran, C
� Modular: Pascal, Modula, Oberon
� Funktional: Haskell, Lisp
� Skriptsprachen:
� Objektorientiert, native, multivererbung: Smalltalk, C++
� Objektorientiert, Intepreter: Java, C#
� Objektorientiert, native, …: D
8FB Automatisierung und Informatik: Projektwoche SS2008, Sprechen Sie D?
Ablauf Assembler-Programmierung
Assembler-Code: mov AX, 33
Übersetzen in hexadezimaler Darstellung: 3FE5Ergebnis: OBJ-Datei
Zusammenfügen einer / mehrere OBJ-DateienLinker-Ergebnis: Exe-Datei
9FB Automatisierung und Informatik: Projektwoche SS2008, Sprechen Sie D?
Ausgabe eines Textes mittels Assembler
data_seg segment 'data'
zkette1 db 'Hallo Welt'
data_seg ends
start: MOV bx,0
MOV dx,offset zkette1
MOV ah,40h
MOV cx,10
INT 21h
MOV al,0
MOV ah,4Ch
INT 21h
10FB Automatisierung und Informatik: Projektwoche SS2008, Sprechen Sie D?
Ablauf Java-Programmierung
Java-Code: System.out.println("Hallo Welt");
Übersetzen in eine Pseudo-CodeErgebnis: Class-Datei
Starten der Java Virtual-MachineParameter: Class-Datei
Übersetzen des Pseudo-Befehls in Maschinenbefehle
11FB Automatisierung und Informatik: Projektwoche SS2008, Sprechen Sie D?
Ablauf C/C++/D-Programmierung
Programm-Code: a=b+c;
Übersetzen in hexadezimaler Darstellung: 4FE5Ergebnis: OBJ-Datei
Zusammenfügen einer / mehrere OBJ-DateienLinker-Ergebnis: Exe-Datei
12FB Automatisierung und Informatik: Projektwoche SS2008, Sprechen Sie D?
Was ist D?
� Allgemeine Hochsprache für systemnahe Programme
� Modern konzeptiert, besser als C++, Geschichte
� Native, Exe-Programm
� Kein Interpreter
� Einfach zu lernen
� Portierbar (Windows, Linux)
� D-Compiler ist wesentlich einfacher ein C++
� Mit C++ kann man sehr unterschiedliche Programmstrukturen
schreiben: C, C++, Mixed, Präprozessor, STL kein Bestandteil
� C Standard hat 500 Seiten, C++hat 750 Seiten
� D hat eine einfache Programmstruktur
13FB Automatisierung und Informatik: Projektwoche SS2008, Sprechen Sie D?
Major Goals of D
� Reduce software development costs by at least 10% by adding in proven productivityenhancing features and by adjusting language features so that common, time-consumingbugs are eliminated from the start.
� Make it easier to write code that is portable from compilerto compiler, machine to machine, and operating system to operating system.
� Support multi-paradigm programming, i.e. at a minimum support imperative, structured, object oriented, and generic programming paradigms.
� Have a short learning curve for programmers comfortable with programming in C or C++.
� Provide low level bare metal access as required.
� Make D substantially easier to implement a compiler for than C++.
� Be compatible with the local C application binary interface.
� Have a context-free grammar.
� Easily support writing internationalized applications.
� Incorporate Contract Programming and unit testing methodology.
� Be able to build lightweight, standalone programs.
� Reduce the costs of creating documentation.
15FB Automatisierung und Informatik: Projektwoche SS2008, Sprechen Sie D?
Features To Keep From C/C++
� Die allgemeine Struktur (look and feel) von C/C++ bleibt erhalten. Es benutzt die gleiche Algebraische Syntax. Identisch: Ausdrücke, IF, Schleifen, Allgemeine Layout.
� D Programme können geschrieben werden in C style function-and-data, C++ style object-oriented, C++ style template metaprogramming, oder eine Mix.
� Der Ablauf ist wie in C: compile/link/debug. Man könnte aber auch D in Bytecode und als Interpreter entwickeln.
� Exception handling. Das Exception-handling ist wesentlich besser als die tradiotionelle C Methode (error codes und errno globals).
� Runtime Type Identification. Implemnetiert in Java/C++. In D ist diese Eigenschaften noch mehr ausgebaut. Besserer „garbage collection“, besseres Debugging, Objekte Speichern
� D erlaubt die „link compatibility“ mit der C-Aufruf-Konvention. Damit kann man direkt auf C-API´szugreifen. Kenntnisse bzgl. API können in D genutzt werden. Wenige Änderungen in Programmcode.
17FB Automatisierung und Informatik: Projektwoche SS2008, Sprechen Sie D?
Features To Keep From C/C++
� Operator overloading. D Programme erlauben Funktionen mit Operatoren zu verknüpfen.
� Template Metaprogramming. Templates, Schablonen, ist der Weg allgemeine Struktur-Programme zu schreiben (sortieren ohne Datentyp). EingeProgrammsprachen benutzen Makros zu diesem Zweck (Fehlerquelle). Der Datentyp „Variants“ ist möglich, aber ineffizient und nicht sicher (type checking). Die „C++ templates“ sind komplex und sie fügen sich nicht sehr gut in die allgemeine Syntax ein. D bietet eine wesentlich einfacheres System für Templates.
� RAII (Resource Acquisition Is Initialization). RAII Techniken erlauben die Identifizierung eines Objektes (Attribute, Methoden, Beans).
� Down and dirty programming. D behält die Möglichkeit des „down-and-dirtyprogramming“ ohne dass man externe Module, in anderen Sprachen, benötigt. Manchmal ist es sinnvoll, Pointer oder direkten Assember-Code zu benutzen (Systemprogramme). D's Ziel ist es nicht „down and dirty programming“ zu verhindern, sondern zu minimieren.
18FB Automatisierung und Informatik: Projektwoche SS2008, Sprechen Sie D?
Eigenschaften von D
� Native, schnell
� Assembleraufruf intern
� OOP, Schnittstellen
� Operator-overloading
� Einfachere Templates
� Echtes Typedef
� Schneller Compiler
� STL in der Sprache
� Versionierung
� Syntax à la Java
� Link-Kompatibel mit C
� Eingebettete Funktionen
� Var-Parameter für einfache Datentypen
� Einfachere Sprachkonstrukte
� For each
� Arrays, Teilarrays
� Assoziative Arrays
� Echte Funktionspointers
� Modular
� Exception
� Eingebaute Unit-Tests
� Reguläre Ausdrücke
� Synchronization / Threads
� Assert-Expression
� Socket, URL etc
� Keine deutschen Sonderzeichen, auch nicht in Kommentaren. Z.Zt.
19FB Automatisierung und Informatik: Projektwoche SS2008, Sprechen Sie D?
abstractaliasalignasmassertautobodyboolBooleanbreakbytecasecastcatchcdoublecentcfloatcharclassconstcontinuecreal
dchardebugdefaultdelegatedeletedeprecateddodoubleelseenumexitexportexternfalsefinalfinallyfloatforforeachforeach_reversefprintffunction
gotoidoubleififloatimportininoutintinterfaceinvariantirealislazylengthlongmacromainmixinmodulenewnullout
overridepackagepragmaprintfprivateprotectedpublicputsrealrecordrefreturnscopeshortsize_tstaticstructsuperswitchsynchronizedtemplatethis
threadthrowtimevaltruetrytypedeftypeidtypeofubyteucentuintulongunionunittestushortversionvoidvolatilewcharwhilewith
Reservierte Wörter: C, C++, D
20FB Automatisierung und Informatik: Projektwoche SS2008, Sprechen Sie D?
Datentypen
� bool Boolean
� byte sign 8 Bit
� ubyte unsigned 8 Bit
� short sign 16 Bit
� ushort unsigned 16 Bit
� int signed 32 Bit
� uint unsigned 32 Bit
� long signed 64 Bit
� ulong unsigned 64 Bit
� char 8 Bit
� wchar 16 Bit
� dchar 32 Bit
� float single
� double double
� real Größter Typ
� ifloat imaginär
� idouble imaginär
� ireal imaginär
� cfloat komplexe Zahl
� cdouble komplexe Zahl
� creal komplexe Zahl
21FB Automatisierung und Informatik: Projektwoche SS2008, Sprechen Sie D?
Startroutine
� int main(char[][] args) {
� }
Wird vom Betriebssystem aufgerufen, Start des Programms
args sind die Argumente an das Programm
– args.length
– args[i]
22FB Automatisierung und Informatik: Projektwoche SS2008, Sprechen Sie D?
Oberfläche
23FB Automatisierung und Informatik: Projektwoche SS2008, Sprechen Sie D?
Eigenschaften der Oberfläche: DEdit
� Multi-Editor
� MDI-Fenster
� Umleitung der Ergebnisse des Compiler
� Umleitung der Ergebnisse des Linker
� Umleitung der Ergebnisse des Programms
� Syntax-Highlight
� Keine Code-Vervollständigung
� Einfügen von Code-Rahmen
� Source-Code vorhanden
� kostenlos
24FB Automatisierung und Informatik: Projektwoche SS2008, Sprechen Sie D?
Eigenschaften der Oberfläche, Kurztasten
� Datei öffnen STRG+O
� Neue Datei STRG+N
� Speichern STRG+S
� Kompilieren F8
� Starten F9
� Dos-Ebene STRG+D
� Explorer STRG+E
� Vorheriges Fenster F5
� Nächstes Fenster F6
top related