Hancock. Ζωγραφάκης Ιωάννης Εξαρχάκος Νικόλαος. ΕΠΛ 428 Προγραμματισμός Συστημάτων

Σχετικά έγγραφα
Η γλώσσα προγραμματισμού C

Δομημένος Προγραμματισμός

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά

Ι Αρχεία δεδομένων, μέρος δεύτερο: δυαδικά αρχεία ΙΙ Δομές δεδομένων (struct)

Προσομοίωση BP με το Bizagi Modeler

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial

Προγραμματισμός Η/Υ (ΤΛ2007 )

Μεθόδων Επίλυσης Προβλημάτων

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Στο εργαστήριο θα μελετηθούν: Διδάσκων: Γιώργος Χατζηπολλάς. Εργαστήριο 2: Εργαλεία Συστήματος UNIX. Ομάδες για παρουσίαση

HY150a Φροντιστήριο 3 24/11/2017

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΜΑΘΗΜΑΤΑ PYTHON. Καθηγητής Ι. Δημητρίου.

Δείκτες σε συναρτήσεις. Προγραμματισμός II 1

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Προγραμματισμός Υπολογιστών με C++

Κεφάλαιο : Εισαγωγή στην C: (Διαλέξεις 3-4)

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή

Εντολές εισόδου - εξόδου. Εισαγωγή στη C++

ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ. Εισαγωγικό Φροντιστήριο

Διάλεξη 22η: Επιπλέον στοιχεία της C

Εισαγωγή στην γλώσσα προγραμματισμού C

Δομημένος Προγραμματισμός (ΤΛ1006)

Προγραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Εργαστήριο 9: Αρχεία

Dynamic types, Lambda calculus machines Section and Practice Problems Apr 21 22, 2016

The Simply Typed Lambda Calculus

Δομημένος Προγραμματισμός (ΤΛ1006)

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

JAVA TUTORIAL ΠΕΡΙΕΧΟΜΕΝΑ. ΚΕΦΑΛΑΙΟ 1. Τί κάνει τη Java να ξεχωρίζει; Εγκαθιστώντας τη Java

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C

Δομημένος Προγραμματισμός (ΤΛ1006)

Προγραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Basic Missions

Μεθόδων Επίλυσης Προβλημάτων

Δίκτυα Επικοινωνιών ΙΙ: OSPF Configuration

Προγραμματισμός Η/Υ (ΤΛ2007 )

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Εργαστήριο Αρ. 2

Προγραμματισμός H/Y Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

ΕΠΛ 032.3: Προγραµµατισµός ΜεθόδωνΕπίλυσηςΠροβληµάτων

Δομημένος Προγραμματισμός (ΤΛ1006)

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Προγραµµατισµός Ι Εισαγωγή Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Προγραµµατισµός Ι Νικόλαος Δ. Τσελίκας

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 4-2

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

3 &4. Εισαγωγήστη C Ιωάννης Κατάκης

Partial Trace and Partial Transpose

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Python & NLTK: Εισαγωγή

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#

Φροντιςτήριο. Linked-List

B. Ενσωμάτωση Ιθαγενών Μεθόδων

Προγραμματισμός Η/Υ (ΤΛ2007 )

Διδάσκων: Παναγιώτης Ανδρέου

Ο πιο κάτω πίνακας περιγράφει σε ποιες περιπτώσεις χρησιμοποιούμε τους τρεις πιο πάνω τρόπους:

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

Διαδικασιακός Προγραμματισμός

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

C: Από τη Θεωρία στην Εφαρμογή

Κεφάλαιο Πίνακες Ι. (Διάλεξη 16)

Streams Input / Output in C++ George Kastrinis

Κατανεμημένα Συστήματα. Javascript LCR example

ΗΥ-150. Πίνακες (Arrays)

7. Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου

Προγραμματισμός Υπολογιστών με C++

Κεφάλαιο : Εισαγωγή στην C. ( ιαλέξεις 3-4) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Εισαγωγή στο Flex. Μεταγλωττιστές, Χειμερινό εξάμηνο

VBA ΣΤΟ WORD. 1. Συχνά, όταν ήθελα να δώσω ένα φυλλάδιο εργασίας με ασκήσεις στους μαθητές έκανα το εξής: Version ΗΜΙΤΕΛΗΣ!!!!

Bizagi Modeler: Συνοπτικός Οδηγός

Προγραμματισμός ΙI (Θ)

How to register an account with the Hellenic Community of Sheffield.

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++

Επεξεργασία Αρχείων Κειµένου

Προγραμματισμός Η/Υ (ΤΛ2007 )

ΕΠΛ 233: Αντικειμενοστρεφής Προγραμματισμός (Object-oriented programming)

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό

Δομημένος Προγραμματισμός (ΤΛ1006)

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Μεθόδων Επίλυσης Προβλημάτων

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

Διδάσκων: Παναγιώτης Ανδρέου

make Προγραμματισμός II 1

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

Οργάνωση και Σχεδίαση Υπολογιστών Η Διασύνδεση Υλικού και Λογισμικού, 4 η έκδοση. Σύντομη Εισαγωγή στη χρήση του προσομοιωτή και συμβολομεταφραστή

Μεθόδων Επίλυσης Προβλημάτων

ΜΑΘΗΜΑΤΑ PYTHON. Καθηγητής Ι. Δημητρίου.

alpha Language age (3/5) alpha Language Φροντιστήριο Syntax Directed Translation and

Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες)

Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων. 14. Πίνακες Ι. Ιωάννης Κατάκης. ΕΠΛ 032: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων

Εισαγωγή στον Προγραμματισμό

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

Transcript:

Hancock Ζωγραφάκης Ιωάννης Εξαρχάκος Νικόλαος Χ346339 Τ911778 ΕΠΛ 428 Προγραμματισμός Συστημάτων

Ιστορική Αναδρομή Δημιουργήθηκε από την εταιρεία ΑΤ&Τ LAB Αφορμή δημιουργίας: Η ανάγκη για καθαρό και αποδοτικό κώδικα για transaction streams

Τι είναι το stream; Ιστορικό, το οποίο μας δείχνει την αλληλεπίδραση μεταξύ δύο οντοτήτων Αποτελεί τον κύριο όγκο πληροφοριών τον οποίο επεξεργάζεται η γλώσσα

Πλεονεκτήματα Μπορεί να διαχειριστεί μεγάλο όγκο ομοιόμορφων πληροφοριών Είναι C based language Είναι scripting language Μειώνει τον όγκο πληροφοριών Εύκολη στην εκμάθηση Μικρότερος κώδικας Δε μας ενδιαφέρει ο όγκος των πληροφοριών που δεχόμαστε

Μειονεκτήματα Ελάχιστος όγκος πληροφοριών για την γλώσσα Δεν υπάρχουν εργαλεία για την γλώσσα Αργοί υπολογισμοί άρα και σχετικά αργή γλώσσα

Εγκατάσταση http://www.research.att.com/~kfisher/han cock/release.php Υποστηρίζει συστήματα Solaris, MacOs, Linux.

HELLO WORLD Είναι C embedded language printf( hello world \n ); $hello world

Μεταγλώττιση Παρόμοιος τρόπος με μεταγλώτισση προγραμμάτων σε C hcc -o my.out my.hc Hcc - - help

Μεταγλώττιση(flags) -s Redirect output to the standard output stdout. This option can only be used in conjunction with the -E or -C flags. -o Name the output le based on the string following -o. This flag can be used to name the output C le or resulting executable depending on what other flags are present. The default output filename depends on the type of the output file. For executables the default is a.out. For C files the default is the input filename with its extension replaced by.c. -g Compile all code with debugging information. Link in the debugging version of the Hancock runtime. -E Only pre-process the input files. -C Compile the first file with extension.hc to a C le and then stop. Compiling to C involves pre-processing the file. -I Add a directory to search for include les to the call to the pre-processor. -D Add a denition to the call to the pre-processor. -m Limit the number of error messages the compiler will generate before giving up. -t Print a trace of all system commands executed by the compiler.

Hello Hancock Παράδειγμα μέτρησης διεθνών κλήσεων typedef struct{ pn_t origin; pn_t dialed;. char isintl; }scamprec_t;

Hello Hancock #include "scamprec.hh" /* ( 1) */ #include <stdio.h> /* ( 2) */ /* ( 3) */ void sig_main(calldetail_s callstream <c:>) /* ( 4) */ { /* ( 5) */ int msgs = 0; /* ( 6) */ /* ( 7) */ iterate /* ( 8) */ ( over callstream /* ( 9) */ filteredby(c) (c->isintl) ) { /* (10) */ /* (11) */ event (scamprec_t *c) { /* (12) */ msgs++; /* saw an international call */ /* (13) */ } /* (14) */ }; /* (15) */ /* (16) */ printf("there were %d international calls.\n", msgs); /* (17) */ } /* (18) */

Hello Hancock

Hello Hancock void sig_main(calldetail_s callstream <c:>, intlcount_m ic <I:>) { int msgs; iterate ( over callstream sortedby origin filteredby(c) (c->isintl) withevents origindetect) { event line_begin(pn_t pn) { msgs = 0; } /* saw an international call event call(scamprec_t r) { msgs++; } /* update the count for pn event line_end(pn_t pn) { ic<:pn:> = msgs + ic<:pn:>; } };}

Hello Hancock

Παραδείγματα Hancock Το hancock υποστηρίζει 3 κύριους τύπους δεδομένων: Directories Maps Pickles

Directories Μέσω των directories δημιουργούμε μια δομή που μπορεί περιέχει όλες τις υπόλοιπες typedef struct { int x; float y; } foo_t; directory dir_d { int myint default 0; float myfloat default 0.0; foo_t mystruct default {0, 0.0}; int myarray[2] default {0,0}; usage_m mymap; };

Maps Ένας τρόπος να συσχετίσουμε πληροφορίες με μια πληροφορία-κλειδί map usage_m { key (MINVALIDPN.. MAXVALIDPN-1); split (10000, 100); value uapprox_t; default {0, 0, 0}; };

Pickles Δομή δεδομένων που χρησιμεύει σαν ένα είδος buffer pickle pht_p {init_pht => pht_rep => flush_pht}; int init_pht(sfio_t *fp, pht_rep *data, char readonly); int flush_pht(sfio_t *fp, pht_rep *data, char close);

Συμπεράσματα Χρήσιμη γλώσσα Εύκολη στη γραφή, ανάγνωση και συντήρηση Μπορεί να δεχτεί μεγάλο όγκο πληροφοριών, με τίμημα το χρόνο εκτέλεσης Ικανοποιητικά αποτελέσματα

Βιβλιογραφία http://www.research.att.com/~kfisher/hanco ck/manual.pdf http://www.researchchannel.org/prog/displ ayevent.aspx?rid=2113&fid=569 http://www.research.att.com/~kfisher/hanco ck/journal.pdf http://blog.wired.com/27bstroke6/2007/10/at t-invents-pro.html

ΤΕΛΟΣ Απορίες?? Χειροκρότημα??