Μέλη ομάδας Μαρία Στυλιανού Νίκος Οδυσσέως Γεωργία Χριστοδουλίδου

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
Advertisements

Scripting Language Python
Θέμα: Η/Υ σε εργαστήριο
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 1ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 5 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 11.
Υλοποίηση μεταφραστή C με επεκτάσεις OpenMP Λεοντιάδης Ηλίας Τζούμας Γεώργιος Πτυχιακή εργασία Τελική παρουσίαση Υπεύθυνος καθηγητής Β. Β. Δημακόπουλος.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Πίνακες-Αλφαριθμητικά
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
Μάθημα : Βασικά Στοιχεία της Γλώσσας Java
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΜΑΘ-3122/106 Προγραμματισμός
29/11/2004Εισαγωγή στο OpenMP1 OpenMP Αθήνα, Νοέμβριος 2004 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
1/12/2003Εισαγωγή στο OpenMP1 OpenMP Αθήνα, Νοέμβριος 2003 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
Συναρτήσεις Κληση/Επιστροφη Παραμετροι
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φροντιστήρια Εισηγητής: Σπύρος Αργυρόπουλος Μέλος ΕΤΕΠ Εργαστήριο Προγραμματισμού & Τεχνολογίας Ευφυών Συστημάτων.
Περίληψη Αρχιτεκτονική Μικροεπεξεργαστών MIPS-32
Αρχές Προγραμματισμού (C). ...γράφοντας σωστά προγράμματα! (IIΙ)
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ-150 Προγραμματισμός Αλγόριθμοι και Προγράμματα.
ΜΕΤΑΒΛΗΤΕΣ - ΤΥΠΟΙ ΜΑΘΗΜΑ 3.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
Εργαστήριο Λειτουργικών Συστημάτων Φροντιστήριο 1 ο – Εισαγωγή στο MINIX 3 Ντίρλης Νικόλαος.
Ολυμπιάδα Πληροφορικής
ΣΥΝΑΡΤΗΣΕΙΣ.
Τμήμα Πληροφορικής Πανεπιστημίου Κύπρου ΕΠΛ 371 – Προγραμματισμός Συστημάτων Ονόματα: Αντώνης Μαυρής, Γιώργος Ματθαίου, Χρίστος Κυριάκου Ταυτότητες: ,
ΗΥ302 Διδακτική της Πληροφορικής Η γλώσσα προγραμματισμού LOGO Writer Ομάδα Εργασία: Αλεβίζου Βασιλική (Α.Μ.:1029) Κοφφινά Ιωάννα (Α.Μ.:1035) Τριανταφυλλίδου.
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
Scala Programming Language
Google's Google App Engine and Google's Datastore API Andreas Manoli.
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
ΛΑΔΑΚΑΚΟΣ ΘΑΛΗΣ Α.Μ ΔΙΑΧΕΙΡΗΣΗ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
Εισαγωγή στη JAVΑ (μέρος Α’)
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
Applets Εκμεταλλεύονται τo γραφικό υπόβαθρο που παρέχουν οι browsers, έχοντας έτσι τη δυνατότητα προβολής γραφικών και τη δυνατότητα υλοποίησης ενός γραφικού.
ΣΤΟΙΧΕΙΑ ΤΗΣ ΓΛΩΣΣΑΣ C++ Πέρασμα παραμέτρων, συναρτήσεις δόμησης και αποδόμησης.
ΟΣΣ Δεκεμβρίου 2004 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
Υπερφόρτωση Τελεστών (Συνέχεια) Αντικειμενοστραφής Προγραμματισμός.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις.
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
1 Κεφάλαιο 2 Εισαγωγή στον αντικειμενοστραφή προγραμματισμό.
ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Syntax Directed Translation and alpha Language.
ΕΙΣΑΓΩΓΙΚΟ ΦΡΟΝΤΙΣΤΗΡΙΟ Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Αλφαριθμητικά (Strings)
ΗΥ150 – Προγραμματισμός Ξενοφών Ζαμπούλης 1 getchar() /* char_count.c A program to count characters of input. */ main() { int c ; int count = 0; while.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος.
Γλώσσες Προγραμματισμού Μεταγλωττιστές Πίνακας Συμβόλων Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Ανώτατο Τεχνολογικό Εκπαιδευτικό Ίδρυμα Λάρισας Σχολή Τεχνολογικών Εφαρμογών Τμήμα Τεχνολογίας Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη και διανομή ενός.
Πληροφορική 2 Γλώσσες Προγραμματισμού 1. Γλώσσες προγραμματσιμού  Επιτρέπουν την κωδικοποίηση των αλγορίθμων  Η εκτέλεση ενός προγράμματος θα πρέπει.
ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
Εισαγωγή στον Προγ/μό Η/Υ
Προγραμματισμός Διαδικτύου
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ
Ενισχυτική διδασκαλία
Τεχνολογία και Προγραμματισμός Υπολογιστών
FIELD MAP ΧΑΡΤΟΓΡΑΦΙΚΟΣ ΟΔΗΓΟΣ ΧΩΡΑΦΙΟΥ ANDROID
ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕ ΤΗ C
Γλώσσα προγραμματισμού C++
Εισαγωγή στη Java Χαρακτηριστικά της Java Εργαλεία της Java
Εισαγωγή στον Προγραμματισμό με Python, ΑΠΘ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Εισαγωγή στον Προγραμματισμό με Python Εβδομάδα 1: Βασικά στοιχεία.
Εισαγωγή στη Java (Μέρος Α’)
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Λογισμικό Λειτουργικό σύστημα Λογισμικό συστήματος
Μεταγράφημα παρουσίασης:

Μέλη ομάδας Μαρία Στυλιανού Νίκος Οδυσσέως Γεωργία Χριστοδουλίδου Google’s Language Μέλη ομάδας Μαρία Στυλιανού Νίκος Οδυσσέως Γεωργία Χριστοδουλίδου

Τι είναι η Go Γλώσσα Προγραμματισμού Μεταγλωττίσιμη Garbage-collected Σκοπός Σχεδίασης: Γρήγορη μεταγλώττιση

Ιστορική Αναδρομή Developer: Google Inc. Σχεδιαστές: Robert Griesemer, Rob Pike, Ken Thompson Επιρροές: C, Oberon, Limbo Έναρξη Σχεδίασης: Σεπτέμβριο 2007 Κυκλοφόρησε: Νοέμβριο 2009 Πλατφόρμες: Linux, Mac OS X, Windows (πειραματική έκδοση μέσω Cygwin) Ο Francis McCabe, δημιουργός της γλώσσας Go!, ζήτησε την αλλαγή του ονόματος της γλώσσας της Google προς αποφυγή συγχύσεων.

Πλεονεκτήματα Απλή Γρήγορη Ασφαλής Ταυτόχρονη Ευχάριστη Open Source // helloWorld.go package main import fmt “fmt” func main(){ fmt.Printf(“Hello World!\n”) fmt.Println(“Γεια σου κόσμε!) } χωρίς ερωτηματικά!

Δυσκολία εξοικείωσης με τη γλώσσα για περίπλοκα προγράμματα Μειονεκτήματα Πειραματικό στάδιο (5 μήνες λειτουργίας) Λίγες πηγές αναφοράς 1 μοναδικό φόρουμ συζήτησης Λιγότερη χρήση στα windows Δυσκολία εξοικείωσης με τη γλώσσα για περίπλοκα προγράμματα

Εγκατάσταση (σε Linux) Προετοιμασία Προσθήκη εντολών στο αρχείο ~/.bashrc … και εκτέλεση στο command line Εγκατάσταση Build dependencies

Εγκατάσταση (σε Linux) Get the Go Source Code Compile the Go Source Code Πρώτη δοκιμή test.go Compile Link Run ***Για 64-bit αρχιτεκτονική, αντικαθιστούμε το 8 με 6.

Παρουσίαση Δυνατοτήτων Σύνταξη Προγράμματος package main // Δημιουργία δικού μας πακέτου import // Εισαγωγή πακέτων με χρήσιμες συναρτήσεις ( pkg1 “pkg1” pkg2 “pkg2” ) //functions… func main(){ commands }

Παρουσίαση Δυνατοτήτων Τύπος μεταβλητών και σταθερών int, float, string, bool Δήλωση Μεταβλητών Ομαδοποίηση π.χ. var a int var b []float var c,d *int type S struct {x,y string} var( a intl; b []float; c,d *int; )

Παρουσίαση Δυνατοτήτων Αρχικοποίηση (και δήλωση) Μεταβλητών π.χ. var i=5 var x, y = 10, 20 var p,q,r= 1, 2.3, “epl371” j := 3.45 (σύντομη δήλωση) Δήλωση Σταθερών π.χ. const color = “red” const num, name, price = 2, “Rozi”, 8.60

Παρουσίαση Δυνατοτήτων Εκφράσεις – ίδιες με τη C var c chan int // Τύπος channel για επικοινωνία μεταξύ 2 goroutines c <- 1 // Αποστολή του αριθμού 1 στο c v = <-c // Λήψη αριθμού από c και ανάθεση στο v

Παρουσίαση Δυνατοτήτων Δομές Ελέγχου switch count%7 { case 4,5,6: error(); case 3: a *= v; fallthrough; case 2: a *= v; fallthrough; case 1: a *= v; fallthrough; case 0: return a*v; } if a == b { return true } else { return false } if v := f(); v < 10 { fmt.Printf("%d less than 10\n", v) } else { fmt.Printf("%d more than 10", v) } switch { case a<b: return “less” case a=b: return “equal” case a>b: return “more” }

Παρουσίαση Δυνατοτήτων Δομές Επανάληψης for – 1η Μορφή Range for i = 0; i < 10; i++ { m := map[string]float { "1":1.0, "pi":3.1415 }; commands } for key, value := range m { fmt.Printf("key %s, value %g\n", key, value) for – 2η Μορφή (while) for a < n {

Παρουσίαση Δυνατοτήτων Συναρτήσεις func funcName(paramName paramType) returnType{ commands} func funcName(paramName paramType) (rt1 rt2 …){ func funcName(paramName paramType) { commands} π.χ func compute(x,y int) (add, sub int){ add=x+y; sub=x-y return add, sub } func main(){ a,s:=compute(10,2) fmt.Printf(“%d, %d\n”, a,s)

Παρουσίαση Δυνατοτήτων Defer Statement Εκτέλεση συνάρτησης ή μεθόδου κατά την εκτέλεση της return func data(file string) string { f := os.Open(file, os.O_RDONLY, 0); defer f.Close(); //Don’t forget to close the file at the end contents := io.ReadAll(f); return contents; }

Παρουσίαση Δυνατοτήτων Βιβλιοθήκες import fmt “fmt” fmt.Printf(“%d\n”, x) str:=fmt.Sprintf(“%d\n”,x)

Παρουσίαση Δυνατοτήτων import os “os” func Exit(code int) - e.g. os.Exit(-1) func (file *File) WriteString(s string) (ret int, err Error) - e.g. os.Stdout.WriteString(str) func Stat(name string) (fi *FileInfo, err Error) - e.g. dir, err := os.Stat(str) func (file *File) Readdirnames(count int) (names []string, err Error) - e.g. names, err := fi.Readdirnames(-1) func Open(name string, flag int, perm int) (file *File, err Error) - e.g. newFile:=os.Open(str, os.O_RDONLY, 744) func (file *File) Close() Error -e.g. newFile.Close()

Παρουσίαση Δυνατοτήτων import strconv “strconv” func Atoi(s string) (i int, err os.Error) - e.g. file,_:=strconv.Atoi(str) import net “net” func Dial(net, laddr, raddr string) (c Conn, err os.Error) -e.g. conn, err:=net.Dial(“tcp”, “”, str) func (*TCPConn) Close -e.g. conn.Close() import flag “flag” func Parse() – e.g. flag.Parse() func Arg(i int) string – e.g. flag.Arg(1) func NArg() int – e.g. flag.Narg()

Παρουσίαση Προγράμματος Πρόβλημα: Αποστολή/Ανάκτηση/Ανάλυση Μηνυμάτων Ηλεκτρονικού Ταχυδρομείου μέσω της γλώσσας Go. Ευκολίες Στη συνένωση δύο strings. Αυτόματη δήλωση μεταβλητών μέσω της αρχικοποίησης. Αυτόματη αρχικοποίηση μεταβλητών σε 0.

Παρουσίαση Προγράμματος Δυσκολίες Στην υλοποίηση κώδικα. Στην χρήση των bash εντολών στη γλώσσα Go. Περιορισμένος αριθμός παραδειγμάτων στο διαδίκτυο στη Go.

Συμπεράσματα – Απόψεις Πιο δύσκολη υλοποίηση. Περισσότερος κώδικας. Δυσκολία εκτέλεσης εντολών του bash. =>Περισσότερος χρόνος υλοποίησης. Πιο γρήγορη εκτέλεση. Ευκολία στη δήλωση και χρήση μεταβλητών, σταθερών και συναρτήσεων.

Ευχαριστούμε για τη προσοχή σας! Απορίες;

Βιβλιογραφία The Go Programming Language, http://golang.org/ golang-nuts | Google Groups, http://groups.google.com/group/golang-nuts?pli=1