D P ROGRAMMING L ANGUAGE Νικόλας Χ''θεοφάνους Γιάννης Κωνσταντίνου Δεσποιάνα Αντωνίου.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Τεχνικές Προγραμματισμού με την JavaScript Στυλιάδης Κων/νος Φλώρινα, Οκτώβριος 2004.
Advertisements

Scripting Language Python
• Php • Joomla • Joomla Module • Παρουσίαση του συστήματος μας.
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 1ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 5 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 11.
Υλοποίηση μεταφραστή C με επεκτάσεις OpenMP Λεοντιάδης Ηλίας Τζούμας Γεώργιος Πτυχιακή εργασία Τελική παρουσίαση Υπεύθυνος καθηγητής Β. Β. Δημακόπουλος.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εργαστήριο Λειτουργικών Συστημάτων Φροντιστήριο 2– Εισαγωγή στη Bash Ντίρλης Νικόλαος.
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΜΑΘ-3122/106 Προγραμματισμός
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
Φροντηστήριο Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Eργαλεία.
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φροντιστήρια Εισηγητής: Σπύρος Αργυρόπουλος Μέλος ΕΤΕΠ Εργαστήριο Προγραμματισμού & Τεχνολογίας Ευφυών Συστημάτων.
Περίληψη Αρχιτεκτονική Μικροεπεξεργαστών MIPS-32
Πανεπιστήμιο Ιωαννίνων Ανάκτηση Πληροφορίας Τμήμα Πληροφορικής Ακαδημαϊκό Έτος MapReduce: Simplified Data processing on Large Clusters Φώτης.
Μέλη ομάδας Μαρία Στυλιανού Νίκος Οδυσσέως Γεωργία Χριστοδουλίδου
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 4: Exceptions Εβδομάδα 4: Εξαιρέσεις [Exceptions]
NIKOΛΑΟΣ ΝΤΙΡΛΗΣ 5ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΙΘΟΥΣΑ Β4 1.  Ένα thread έχει: ID, program counter, register set, stack  Μοιράζεται με τα άλλα threads της ίδιας διεργασίας.
JAVA και SQL Δαμιανός Χατζηαντωνίου
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Μέλη ομάδας: Χρυσή Σέα Νικόλας Κλεάνθους Στέφανος Γεωργίου.
ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ-150 Προγραμματισμός Αλγόριθμοι και Προγράμματα.
Προγραμματισμός ΙΙ Διάλεξη #6: Απλές Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
Κωνσταντίνος Δελησταύρου Ευγενία Παπαδοπούλου
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II.
Τμήμα Πληροφορικής Πανεπιστημίου Κύπρου ΕΠΛ 371 – Προγραμματισμός Συστημάτων Ονόματα: Αντώνης Μαυρής, Γιώργος Ματθαίου, Χρίστος Κυριάκου Ταυτότητες: ,
Γλωσσική Τεχνολογία Εισαγωγικό Φροντιστήριο. Project του μαθήματος  Εργασία 2 ατόμων  Προφορική εξέταση για :  Project (80%)  Θεωρία (20%)  Στο φροντιστήριο.
1 Εισαγωγή στα Streams Υπάρχουν πάνω από 60 κλάσεις για input/output στο πακέτο Υπάρχουν πάνω από 60 κλάσεις για input/output στο πακέτο java.io.*; java.io.*;
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Αρχεία.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ – ΤΜΗΜΑ ΠΛΑΡΟΦΟΡΙΚΗΣ ΕΠΛ371 –ΠρογραμματισμόςΣυστημάτων ΕΥΘΥΜΙΑ ΠΑΠΑΔΟΠΟΥΛΟΥ ΞΑΝΘΗ ΜΑΡΚΟΥ ΡΕΑ ΑΡΧΑΙΟΥ.
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
P ERL One of the most respectable general-purpose scripting languages Δημητρίου Νίκος Δημητρίου Θεόδωρος Ζαβού Έλλη.
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
Εισαγωγή στη JAVΑ (μέρος Α’)
Applets Εκμεταλλεύονται τo γραφικό υπόβαθρο που παρέχουν οι browsers, έχοντας έτσι τη δυνατότητα προβολής γραφικών και τη δυνατότητα υλοποίησης ενός γραφικού.
ΕΠΛ371 – ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ
Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) Data Types, Variables, and Arithmetic.
ΟΣΣ Δεκεμβρίου 2004 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
32η Συνάντηση Εκπαιδευτικών στη Δυτική Μακεδονία σε Θέματα Τ. Π. Ε
Έλεγχος Ονομάτων (Name Control) Για ένα πρόγραμμα που αποτελείται από πολλά τμήματα κάποια από τα οποία έχουν πιθανώς γραφτεί από άλλους προγραμματιστές.
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ – FILE & PROCESS HANDLING Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία.
Threads Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά η μία μετά.
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμπούλης ΗΥ -150 Προγραμματισμός Αρχεία.
ΗΥ150 – ΠρογραμματισμόςΞ. Ζαμπούλης ΗΥ-150 Προγραμματισμός Αρχεία.
ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Syntax Directed Translation and alpha Language.
ΕΙΣΑΓΩΓΙΚΟ ΦΡΟΝΤΙΣΤΗΡΙΟ Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία.
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Εισαγωγή στη C# Μαρίνος Θεμιστοκλέους Ανδρούτσου 150 Γραφείο 206 Τηλ Ώρες Γραφείου: Τετάρτη 5-6 μμ.
Κωδικός Θ: ΤΠ4003, Κωδικός Ε: ΤΠ4103 (ΜΕΥ/Υ) Ώρες (Θ - ΑΠ - Ε): Προαπαιτούμενα: ΤΠ2003,2103.
ΟΣΣ2 - 4 Δεκεμβρίου 2005 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στον Προγ/μό Υπολογιστών
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Ειδικά Θέματα στον Προγραμματισμό Υπολογιστών
Εισαγωγή στη Java Χαρακτηριστικά της Java Εργαλεία της Java
JAVA Basics Εβδομάδα Νο. 1.
Ειδικά Θέματα στον Προγραμματισμό Υπολογιστών
Εισαγωγή στη Java (Μέρος Α’)
Λούκας Νεοκλέους - Μαρία Χαραλάμπους - Βλαδίμηρος Θεοδοσίου
Εισαγωγή στον Προγραμματισμό (στη γλώσσα Java)
Διάλεξη #10: Εκτέλεση Java χωρίς το BlueJ
Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό (στη γλώσσα Java)
Μεταγράφημα παρουσίασης:

D P ROGRAMMING L ANGUAGE Νικόλας Χ''θεοφάνους Γιάννης Κωνσταντίνου Δεσποιάνα Αντωνίου

D Language  Γλώσσα υψηλού επιπέδου  Στόχος του σχεδιασμού:συνδυασμός απόδοσης κάποιων γλωσσών με την ασφάλεια και την εκφραστικότητα σύγχρονων δυναμικών γλωσσών.  Eμπνέεται από γλώσσες, όπως Java, Python, Ruby, C #, Eiffel.

Ιστορική αναδρομή  Δημιουργήθηκε από τον Walter Bright της Digital Mars  Κυκλοφόρησε για πρώτη φορά Δεκέμβριο του  Η έκδοση 1.0 κυκλοφόρησε τον Ιανουάριο του 2007  Link:  Webside: dlang.org

Χαρακτηριστικά  Unit testing  Garbage collection  First class arrays/ associative arrays  Dynamic arrays/ array slicing  Nested functions  Inner classes  Compile time function execution

Πλεονεκτήματα  Καλύτερος χειρισμός λαθών  Λιγότερο περίπλοκη από την C/C++  Κατάλληλο για προγραμματιστές που γράφουν σε scripting γλώσσες όπως η Ruby και Python σε συνδυασμό με C++. Με την D μπορούν να γράψουν ολόκληρο το πρόγραμμα σε μία γλώσσα

Μειονεκτήματα  Δεν μπορεί να μεταγλωττίσει ολόκληρο C/C++ πρόγραμμα χωρίς τροποποίηση  Δεν συστήνεται η εκμάθησης της ως πρώτη γλώσσα προγραμματισμού – η Basic ή η Java είναι πιο κατάλληλες για αρχάριους.(Η D συστήνεται για πιο προχωρημένους προγραμματιστές.)  Είναι μια practical language, και γι αυτό τα χαρακτηριστικά της δεν είναι σχεδιασμένα ιδανικά.

Εγκατάσταση  Διατίθεται δωρεάν  Digital Mars D Programming Language version 2: (υπάρχει διαθέσιμο για Windows, Linux,Mc,FreeBSD,Ubuntu,Debian,Fedora,OpenS USE)

Εκτέλεση προγράμματος  Άνοιγμα του D2 Command Prompt

Hello World παράδειγμα import std.sdio; void main() { writeln("Hello world"); } import std.sdio; void main() { string str1 = "Hello "; string str2 = "World"; //printing 1 st argument write(str1); //printing 2 nd argument write(str2); //printing empty line writeln(); }

Hello World παράδειγμα συνέχεια… import std.sdio; void main(string[ ] args) { //saving the argument string name = args[1]; string greeting = "Hello "; //adding the argument into the string greeting ~= name; //adding another string greeting ~= "Welcome! "; //printing the result writeln(greeting); }

Bash vs D for i in $( find "$LATEST_MSGS" -type f -name "*.txt" ) do cf=$( cat $i | head -1 | sed 's/Text: "\(.\+\)"$/\1/' >> lexicon2.txt ) done cat lexicon2.txt | tr ' ' '\n' | sort | uniq -c | sort -r -k 1 -n > lexicon.txt auto rFiles = dirEntries("./latest_msgs/latest_msgs/rayzit_msgs", "*.txt",SpanMode.shallow); auto tFiles = dirEntries("./latest_msgs/latest_msgs/twitter_msgs", "*.txt", SpanMode.shallow); foreach (rFile; rFiles) { auto contents=to!string(read(rFile)); foreach(i,line; splitLines(contents)) foreach(word; split(strip(line))) ++freqs[word]; } sort!((a,b)=> freqs[a]>freqs[b])(words); foreach(s;words) f.writefln("%s\t\t%s",s,freqs[s]);

Διάβασμα json από αρχείο if (exists("latest_MSG")){ rmdirRecurse("latest_MSG"); } readJSON( readText( "latest.json" ) );

Διαχείρηση JSON (std.json) JSONValue[string] allValue= parseJSON(pTofile).object JSONValue [ ] arrayValues = allValue[“tweet”].array; foreach (value, arrayValues ){ JSONValue[String] data= value.object; string created = value ["created_at"].str; auto retweet_count= data["retweet_count"].JSONValue; ….

Δημιουργία αρχείων std.file foreach (value, allValue){ …… string fileName= "tweet"~to!string(i)~".txt"; File FILE= File(fileName, "mode"); FILE. writefln(created);…. scope(exit){ FILE.close(); …… }

Scope Guards  Αντίστοιχο των try catch blocks  Υποδηλώνει κώδικα που τρέχει πάντα μετά από κάποια συνάρτηση.  Καθορίζει συνθήκες επιτυχία ή αποτυχίας. auto file = new BufferedFile(“file.txt”) Scope(exit) file.close(); … Scope(exit) { … } Scope(success) { … } Scope(failure) { … }

Επιπλέον δυνατότητες γλώσσας  Συγχρονισμός  Unit test

Συγχρονισμός  Τα δεδομένα ΔΕΝ είναι κοινά (by default)  Χρήση shared keywords για κοινές μεταβλητές  Ανταλλαγή μηνυμάτων για επικοινωνία  send and receive  immutable keyword for data  Παραδοσιακά locks είναι διαθέσιμα

Unit test  Built-in unit test framework  Σε οποιαδήποτε module  Compiler flags runs tests rdmd --main -unittest file rdmd -unittest file

Συμπεράσματα  Βιβλιοθήκες αλλά όχι αρκετές std.sdio : write, writeln, read, readln std.conv : to!int, to!string, roundTo!int std.file : read, write, getSize, chdir, mkdir, getcwd std.string : toUpper, toLower, removechars std.array, std.stream, std.string, std.math

Συμπεράσματα  Πολλά κοινά με C και C++ Arrays Structures Pointers: @trusted Loops: while, switch, for std.c. : stdlib, time, stdio, locale, string, linux

Συμπεράσματα  Ανεπαρκής πληροφορίες  Έλλειψη εμπειρίας από Digital Mars  Λιγοστά αποτελέσματα και παραδείγματα σε forums σε google search

Σας ευχαριστούμε για την προσοχή σας