Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Επικοινωνία Ανθρώπου - Μηχανής Παρουσίαση TCL/TK Προύντζος Βασίλειος Α.Μ. : 690 Μάτας Αντώνιος Α.Μ. : 559.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Επικοινωνία Ανθρώπου - Μηχανής Παρουσίαση TCL/TK Προύντζος Βασίλειος Α.Μ. : 690 Μάτας Αντώνιος Α.Μ. : 559."— Μεταγράφημα παρουσίασης:

1 Επικοινωνία Ανθρώπου - Μηχανής Παρουσίαση TCL/TK Προύντζος Βασίλειος Α.Μ. : 690 Μάτας Αντώνιος Α.Μ. : 559

2 Εισαγωγή ► Συστατικά στοιχεία  TCL: Ενσωματώσιμη scripting γλώσσα  ΤΚ : Σειρά εργαλείων GUI & Widgets βασισμένων στην TCL ► Βασική Αρχή:  Μία καθολική scripting γλώσσα έχει τον πλήρη έλεγχο, συναρτήσεων, διεπαφών και επικοινωνίας τους. ► Αποτελέσματα:  Καλύτερες προγραμματιστικές επιδόσεις  Περισσότερη δύναμη και ευελιξία (συνεργασία εφαρμογών, σύνθετος προγραμματισμός)  Ενεργά αντικείμενα (αντικατάσταση εντολών με scripts)

3 Διάρθρωση ► TCL scripting γλώσσα ► TΚ πρόσθετο πακέτο εργαλείων ► Επισκόπηση εφαρμογών και επεκτάσεων ► Περίληψη

4 TCL : Tool Command Language ► Τα διαδραστικά προγράμματα χρειάζονται γλώσσες προγραμματισμού με εντολές :  Που μπορούν να τροποποιηθούν για κάθε συγκεκριμένη εφαρμογή  Αποτέλεσμα : Αδυναμία – Τρομερές ιδιαιτερότητες  Τα emacs & csh είναι κατάλληλα, αλλά δεν μπορούν να επαναχρησιμοποιηθούν ► Λύση : Επαναχρησιμοποιήσιμη scripting γλώσσα  Ο διερμηνέας (interpreter) είναι μια βιβλιοθήκη της C  Παροχή βασικών χαρακτηριστικών (μεταβλητές, διαδικασίες κ.α.)  Εφαρμογές που επεκτείνονται με επιπλέον χαρακτηριστικά

5 Φιλοσοφία scripting γλώσσας ► Μεγάλες, σύνθετες εφαρμογές  Η απόδοση είναι σημαντικό στοιχείο  Χρειάζονται σταθερή δομή  Επίτευγμα : Αποφυγή λαθών ► Διαδραστικές εντολές, scripting  Η απόδοση είναι λιγότερο σημαντική  Ελάχιστη δομή : Λιγότερες εξαρτήσεις, εύκολη ανταλλαγή στοιχείων  Επίτευγμα : Καλύτερος προγραμματισμός 1  Μέγεθος προγράμματος, πολυπλοκότητα, επαναχρησιμοποίηση Μπορεί μια γλώσσα να ικανοποιήσει όλες τις ανάγκες ;

6 Διγλωσσική προσέγγιση ► Χρήση TCL για scripting, C ή C++ για μεγαλύτερα πράγματα ► Επιτεύγματα χρήσης TCL :  Ελάχιστη σύνταξη (εύκολη στην εκμάθηση και στον προγραμματισμό)  Ελάχιστη δομή (αντικείμενα συνυπάρχουν και αλληλεπιδρούν)  Απλές διεπαφές για την C (επεκτασιμότητα)  1 C Tcl Μέγεθος προγράμματος, πολυπλοκότητα, επαναχρησιμοποίηση

7 Ενσωματώνοντας την TCL σε εφαρμογές ► Η εφαρμογή παράγει scripts ► H TCL κάνει συντακτική ανάλυση των scripts και περνάει λέξεις προς εκτέλεση διεργασιών ► Η εφαρμογή επεκτείνει ένα ενσωματωμένο σύνολο εντολών  Ορίζει νέους τύπους αντικειμένων σε C  Αναπαριστά βασικές λειτουργίες ως νέες εντολές TCL  Κατασκευάζει σύνθετα χαρακτηριστικά με TCL scripts Parser Init Command Loop Application Commands Built-In Commands TclApplication

8 Επεκτάσεις ► Οι επεκτάσεις μπορούν να αναπτυχθούν ανεξάρτητα  Δικτυακή επικοινωνία, εισαγωγή βάσεων δεδομένων, ασφάλεια… ► Οι εφαρμογές μπορούν να περιέχουν συνδυασμούς επεκτάσεων Parser Init Command Loop Application Commands Built-In Commands TclApplication Extension Commands Extension

9 Βασικά ► Τι είναι ένα TCL script  Ακολουθία εντολών  Οι εντολές χωρίζονται από νέες γραμμές και ερωτηματικά ► Τι είναι μια TCL εντολή  Μία ή περισσότερες λέξεις χωριζόμενες από κενά  Η πρώτη λέξη είναι το όνομα της εντολής, οι υπόλοιπες τα ορίσματά της  Η εντολή επιστρέφει αποτέλεσμα σε μορφή string

10 Βήματα εκτέλεσης εντολής Tcl Parser Command Procedure Εντολή Λέξεις Αποτέλεσμα ► Κατακερματισμός εντολών σε λέξεις ► Αντικαταστάσεις ► Δεν κάνει interpret τις τιμές των λέξεων Εκτέλεση του interpret των λέξεων Αποτέλεσμα συναρτήσεων σε string

11 TCL : Tool Command Language ► Απλή σύνταξη, παρόμοια της C  set a 4545 ► Αναθέσεις  set b $a45  set b [$a+10] 55 ► Quoting  set b “a is $a”a is 45  set b {[expr $a+10]} [expr $a+10]

12 Περισσότερα για την γλώσσα TCL ► Ευρύ σύνολο ενσωματωμένων εντολών  Μεταβλητές, πίνακες, λίστες…  Εκφράσεις παρόμοιες της C  Συνθήκες, βρόχοι if "$x < 3" { puts "x is too small" puts "x is too small"}  Procedures  Πρόσβαση σε TCP/IP sockets, αρχεία, υπορουτίνες ► Οι μοναδικές αναπαραστάσεις είναι τα strings  Εύκολη πρόσβαση από την C  Προγράμματα και δεδομένα δυναμικά

13 Control structures ► Εντολές ελέγχου ροής προγράμματος  if if "$x < 3" {puts “x is too small”}  for for {set i 1} { $i <= 3} {incr i} {…body}  switch  switch switch -exact -- $value { foo { doFoo; incr count(foo) } default { incr count(other) } }  break  foreach set n 0; foreach i { } {set n [expr {$n + i*i}]}  while while {$i >= 0} {$b = $b+1; incr i}  eval  eval set cmd {puts stdout “Hello, World!”} => puts stdout “Hello, World!” eval $cmd => Hello, World!  continue ► Πρόκειται για εντολές που παίρνουν ως ορίσματα TCL scripts

14 Procedures ► H εντολή proc ορίζει μια procedure proc sub1 x {expr $x-1} ► Οι procedures συμπεριφέρονται σαν built-in εντολές sub1 3 2 list of argument names bodyname

15 Errors ► Σε περίπτωση λάθους οι εντολές ακυρώνονται κατά το run time  H εφαρμογή εμφανίζει μήνυμα λάθους ► Υπάρχει global μεταβλητή που παρέχει stack trace

16 Επιπλέον TCL χαρακτηριστικά ► Χειρισμός string regexpformatsplitstringbinary regsubscanjoinappend ► Εντολές για χειρισμό αρχείων opengetsseekflushglobfilepid closereadtellcd putssourceeofpwd ► Εμβέλεια μεταβλητών globaluplevelupvar

17 Το πακέτο εργαλείων TK ► Γιατί επινοήθηκε :  Ήταν πολύ δύσκολο να κατασκευαστούν εφαρμογές με όμορφες και χρηστικές διεπαφές ► Η λάθος λύση :  Με C++ θα είχαμε αντικειμενοστρεφή πακέτα εργαλείων  Θα είχαμε βελτίωση της τάξης του 10-20% και επιπλέον θα έπρεπε ακόμη να προγραμματίζουμε σε χαμηλό επίπεδο ► Η σωστή λύση :  Ανεβάζουμε το επίπεδο προγραμματισμού  Δημιουργούμε διεπαφές με TCL scripts

18 Κατασκευή διεπαφών με την TK ► Πρόσθετες εντολές TCL  Κατασκευή widgets όπως της βιβλιοθήκης Motif  Τακτοποίηση των widgets  Ανάθεση γεγονότων σε εντολές TCL  Χειρισμός της εκάστοτε επιλογής, απόκτηση ελέγχου, διαχείριση παραθύρου κ.τ.λ. ► Βιβλιοθήκη συναρτήσεων C  Δημιουργία νέων κλάσεων για widgets  Δημιουργία νέων εργαλείων προς διαχείριση στοιχείων παραθύρου καθώς και widgets (geometry managers)

19 Τι είναι μια ΤΚ εφαρμογή ► O TCL διερμηνέας (interpreter) ► To σύνολο εργαλείων ΤΚ ► Συγκεκριμένος για κάθε εφαρμογή κώδικας C  Νέοι τύποι αντικειμένων  Νέα Widgets ► TCL scripts (σύνθεση του άνωθεν κώδικα)  Κατασκευή διεπαφών χρήστη  Αντίδραση σε γεγονότα Εντολές TCL

20 Wish : Windowing Shell ► Κατασκευή διεπαφών χρήστη με TCL scripts ► To παράδειγμα “Hello world”  button.hello -text "Hello, world" -command exit  pack.hello ► Γενικά χρειαζόμαστε 10 φορές λιγότερο κώδικα για υλοποίηση εφαρμογών

21 Γενικά ► Βασικές δομές : Παράθυρα, Widgets, συναρτήσεις ► Κατασκευή Widgets με εντολές κλάσεων ► Εντολές για Widgets ► Geometry management ► Ανάθεση πράξεων σε αντικείμενα (Bindings) ► Άλλες εντολές (send, focus, selection…)

22 Δομή μιας ΤΚ εφαρμογής ► Ιεραρχία των Widget ► O TCL διερμηνέας ► Μια διεργασία (μπορούμε να έχουμε >1) ► Widget : Παράθυρο-Αντικείμενο με συγκεκριμένη όψη και λειτουργίες ► Κλάσεις Widgets υλοποιήσιμες από TK FrameMenubuttonCanvas LabelMenuScrollbar ButtonMessageScale CheckbuttonEntryListbox RadiobuttonTextToplevel

23 Ιεραρχία Widget.frame.frame.h.frame.v.frame.listbox.frame.label

24 Τύποι παραθύρων.menu.file.scroll.menu.help.menu.listbox.dlg.no.dlg.yes.dlg.msg.dlg Main window Top-level window Internal windows.

25 Κατασκευή Widgets ► Κάθε Widget έχει μία κλάση (button, listbox, scrollbar, etc…) ► Υπάρχει μία εντολή κλάσης σε κάθε κλάση, για την δημιουργία νέου στιγμιότυπου button.a.b -text Quit -command exit scrollbar.x -orient horizontal Όνομα κλάσης Όνομα παραθύρου configuration options

26 Configuration Options ► Ορίζονται από την κλάση.  Για την.button -activebackground-disabledforeground-justify-underline -activeforeground-font-padx-width -anchor-foreground-pady-wraplength -background-height-relief -bitmap-highlightbackground-state -borderwidth-highlightcolor-takefocus -command-highlightthickness-text -cursor-image-textvariable ► Αν τα configurations δεν ορίζονται manually  Τότε ορίζονται by default από την κλάση

27 Εντολές Widget ► Υπάρχουν TCL εντολές για κάθε Widget, ονομαζόμενες από το κάθε Widget ► Η εντολές για το Widget διαγράφονται όταν το Widget καταστρέφεται ► Βασική αρχή : Όλα τα Widgets πρέπει να είναι οποιαδήποτε στιγμή  Προσβάσιμα  Τροποποιήσιμα

28 Geometry Management ► Τα Widgets δεν καθορίζουν μόνα τους τη θέση τους και το μέγεθός τους. Αυτό το κάνουν οι Geometry Managers ► Τα Widgets δεν εμφανίζονται καν στην οθόνη, μέχρι να το κάνει αυτό ένας Geometry Manager ► Geometry Manager=Αλγόριθμος για την τακτοποίηση θυγατρικών παραθύρων που προέρχονται από ένα πρωταρχικό παράθυρο Geometry Manager Requested size from slave Parameters from application designer Geometry of master Size and location of slave Requested size for master

29 Callback ► Για να κάνουμε τα Widget να δουλεύουν μαζί σε μία εφαρμογή χρησιμοποιούμε TCL scripts ► Η κάθε ενέργεια του Widget είναι μία TCL εντολή ► Τα Widgets επικοινωνούν με TCL εντολές

30 Bindings ► Μπορούμε να συσχετίσουμε TCL scripts με Χ ενέργειες bind.b {backspace.t} bind.b {backspace.t} ► Ορισμός γεγονότων Window(s)EventScript Modifiers Event Type Button or Keysym

31 Επισκόπηση Εφαρμογών Button Checkbox RadioButtonEntry

32 Επισκόπηση Εφαρμογών MenuBars File Selection

33 Επισκόπηση Εφαρμογών Tabs Labels & Frames

34 Περίληψη ► Η δημιουργία διεπαφών με την ΤΚ είναι εύκολη  Δημιουργία Widget  Τακτοποίηση με τους geometry managers  Σύνδεσή τους με την εφαρμογή και μεταξύ τους ► Ισχυρή scripting γλώσσα  Δημιουργία διεπαφών  Επικοινωνία των Widget μεταξύ τους και με την εφαρμογή  Επικοινωνία με αντικείμενα εκτός εφαρμογής  Μεταβολή όλων δυναμικά

35 Τέλος Παρουσίασης


Κατέβασμα ppt "Επικοινωνία Ανθρώπου - Μηχανής Παρουσίαση TCL/TK Προύντζος Βασίλειος Α.Μ. : 690 Μάτας Αντώνιος Α.Μ. : 559."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google