Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

A D programozási nyelv 2014.04.03. Angeli Dávid. Nagy vonalakban  C++  +++++  --- 2.

Hasonló előadás


Az előadások a következő témára: "A D programozási nyelv 2014.04.03. Angeli Dávid. Nagy vonalakban  C++  +++++  --- 2."— Előadás másolata:

1 A D programozási nyelv Angeli Dávid

2 Nagy vonalakban  C++   --- 2

3 Történet  Megjelenés éve: 2001  Fejlesztők: Walter Bright, Andrei Alexandrescu (2006-tól)  Utolsó verzió, 2014 február:  17. a TIOBE listán (2013 március: 30.) 3

4 Walter Bright, Digital Mars  1957  Empire - stratégiai játék, , PDP-10 mainframe  C/C++ fordítók (Zortech C++, 1988)  D (2001) 4

5 C/C++  C/C++ -szerű look and feel  Közvetlen rendszer API elérés  Multiparadigma támogatás: OOP, funkcionális, generikus, template metaprogramming  Kivételkezelés  Futásidejű típusinformáció (RTTI)  Operátor túlterhelés  Resource acquisition is initialization  „Down and dirty” programming 5

6 -  C (C++) kompatibilitás  C preprocesszor  Többszörös öröklődés  Névterek  Előzetes deklaráció  Include files  Nem virtuális tagfüggvények  16bit támogatás 6

7 +  Memóriakezelés - Garbage collector  Dinamikus tömbök, asszociatív tömbök (-> modern string funkciók)  Design by contract  Unit teszt  Modulok  Ddoc – dokumentáció kommentekből 7

8 Helló Világ.d  import std.stdio;  void main() {  writeln("Hello, world!");  } 8

9 Binarysearch, type parameter  import std.array;  bool binarySearch(T)(T[] input, T value) {  while (!input.empty) {  auto i = input.length / 2;  auto mid = input[i];  if (mid > value) input = input[0.. i];  else if (mid < value) input = input[i $];  else return true;  }  return false;  } 9

10 Unit teszt unittest { assert(binarySearch([ 1, 6, 7, 15 ], 6)); assert(binarySearch!(int)([ 1, 3, 15 ], 5)); } Unit teszt futtatása: compilert „-unittest” paraméterrel kell hívni. A tesztek a main függvény előtt futnak. 10

11 C/C++ használata  C - D felület: közvetlen C hívások: extern (C) int strcmp(char* string1, char* string2); … return strcmp(std.string.toStringz(s), "foo"); …  C library-k elérése könnyű  C++ hoz korlátozottabb hozzáférés 11

12 Contract programming long square_root(long x) in { assert(x >= 0); } out (result) { assert((result * result) <= x); } body { return cast(long)std.math.sqrt(cast(real)x); } 12

13 Eszközök és linkek  VisualD:  DDT: https://code.google.com/p/ddt/https://code.google.com/p/ddt/  Tutorial a Githubon:http://qznc.github.io/d- tut/#http://qznc.github.io/d- tut/#  Community:  Official: 13

14 Forrás    14


Letölteni ppt "A D programozási nyelv 2014.04.03. Angeli Dávid. Nagy vonalakban  C++  +++++  --- 2."

Hasonló előadás


Google Hirdetések