22
1 FB Automatisierung und Informatik: Projektwoche SS2008, Sprechen Sie D? Projektwoche Projektwoche 2010 2010 Sprechen Sprechen Sie Sie D? D? Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik [email protected] http://mwilhelm.hs-harz.de Raum 2.202 Tel. 03943 / 659 338

Projektwoche 2010 Sprechen Sie D? - miwilhelm.de fileD Programme können geschrieben werden in C style function-and-data, C++ style object-oriented , C++ style template metaprogramming

  • Upload
    lekhue

  • View
    212

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Projektwoche 2010 Sprechen Sie D? - miwilhelm.de fileD Programme können geschrieben werden in C style function-and-data, C++ style object-oriented , C++ style template metaprogramming

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

[email protected]

� http://mwilhelm.hs-harz.de

� Raum 2.202

� Tel. 03943 / 659 338

Page 2: Projektwoche 2010 Sprechen Sie D? - miwilhelm.de fileD Programme können geschrieben werden in C style function-and-data, C++ style object-oriented , C++ style template metaprogramming

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

Page 3: Projektwoche 2010 Sprechen Sie D? - miwilhelm.de fileD Programme können geschrieben werden in C style function-and-data, C++ style object-oriented , C++ style template metaprogramming

3FB Automatisierung und Informatik: Projektwoche SS2008, Sprechen Sie D?

C ⇒ C++ ⇒ D

Page 4: Projektwoche 2010 Sprechen Sie D? - miwilhelm.de fileD Programme können geschrieben werden in C style function-and-data, C++ style object-oriented , C++ style template metaprogramming

4FB Automatisierung und Informatik: Projektwoche SS2008, Sprechen Sie D?

Page 5: Projektwoche 2010 Sprechen Sie D? - miwilhelm.de fileD Programme können geschrieben werden in C style function-and-data, C++ style object-oriented , C++ style template metaprogramming

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

Page 6: Projektwoche 2010 Sprechen Sie D? - miwilhelm.de fileD Programme können geschrieben werden in C style function-and-data, C++ style object-oriented , C++ style template metaprogramming

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,

Page 7: Projektwoche 2010 Sprechen Sie D? - miwilhelm.de fileD Programme können geschrieben werden in C style function-and-data, C++ style object-oriented , C++ style template metaprogramming

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

Page 8: Projektwoche 2010 Sprechen Sie D? - miwilhelm.de fileD Programme können geschrieben werden in C style function-and-data, C++ style object-oriented , C++ style template metaprogramming

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

Page 9: Projektwoche 2010 Sprechen Sie D? - miwilhelm.de fileD Programme können geschrieben werden in C style function-and-data, C++ style object-oriented , C++ style template metaprogramming

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

Page 10: Projektwoche 2010 Sprechen Sie D? - miwilhelm.de fileD Programme können geschrieben werden in C style function-and-data, C++ style object-oriented , C++ style template metaprogramming

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

Page 11: Projektwoche 2010 Sprechen Sie D? - miwilhelm.de fileD Programme können geschrieben werden in C style function-and-data, C++ style object-oriented , C++ style template metaprogramming

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

Page 12: Projektwoche 2010 Sprechen Sie D? - miwilhelm.de fileD Programme können geschrieben werden in C style function-and-data, C++ style object-oriented , C++ style template metaprogramming

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

Page 13: Projektwoche 2010 Sprechen Sie D? - miwilhelm.de fileD Programme können geschrieben werden in C style function-and-data, C++ style object-oriented , C++ style template metaprogramming

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.

Page 14: Projektwoche 2010 Sprechen Sie D? - miwilhelm.de fileD Programme können geschrieben werden in C style function-and-data, C++ style object-oriented , C++ style template metaprogramming

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.

Page 15: Projektwoche 2010 Sprechen Sie D? - miwilhelm.de fileD Programme können geschrieben werden in C style function-and-data, C++ style object-oriented , C++ style template metaprogramming

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.

Page 16: Projektwoche 2010 Sprechen Sie D? - miwilhelm.de fileD Programme können geschrieben werden in C style function-and-data, C++ style object-oriented , C++ style template metaprogramming

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.

Page 17: Projektwoche 2010 Sprechen Sie D? - miwilhelm.de fileD Programme können geschrieben werden in C style function-and-data, C++ style object-oriented , C++ style template metaprogramming

19FB Automatisierung und Informatik: Projektwoche SS2008, Sprechen Sie D?

abstractaliasalignasmassertautobodyboolBooleanbreakbytecasecastcatchcdoublecentcfloatcharclassconstcontinuecreal

dchardebugdefaultdelegatedeletedeprecateddodoubleelseenumexitexportexternfalsefinalfinallyfloatforforeachforeach_reversefprintffunction

gotoidoubleififloatimportininoutintinterfaceinvariantirealislazylengthlongmacromainmixinmodulenewnullout

overridepackagepragmaprintfprivateprotectedpublicputsrealrecordrefreturnscopeshortsize_tstaticstructsuperswitchsynchronizedtemplatethis

threadthrowtimevaltruetrytypedeftypeidtypeofubyteucentuintulongunionunittestushortversionvoidvolatilewcharwhilewith

Reservierte Wörter: C, C++, D

Page 18: Projektwoche 2010 Sprechen Sie D? - miwilhelm.de fileD Programme können geschrieben werden in C style function-and-data, C++ style object-oriented , C++ style template metaprogramming

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

Page 19: Projektwoche 2010 Sprechen Sie D? - miwilhelm.de fileD Programme können geschrieben werden in C style function-and-data, C++ style object-oriented , C++ style template metaprogramming

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]

Page 20: Projektwoche 2010 Sprechen Sie D? - miwilhelm.de fileD Programme können geschrieben werden in C style function-and-data, C++ style object-oriented , C++ style template metaprogramming

22FB Automatisierung und Informatik: Projektwoche SS2008, Sprechen Sie D?

Oberfläche

Page 21: Projektwoche 2010 Sprechen Sie D? - miwilhelm.de fileD Programme können geschrieben werden in C style function-and-data, C++ style object-oriented , C++ style template metaprogramming

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

Page 22: Projektwoche 2010 Sprechen Sie D? - miwilhelm.de fileD Programme können geschrieben werden in C style function-and-data, C++ style object-oriented , C++ style template metaprogramming

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