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

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

Επικοινωνία Ανθρώπου - Μηχανής

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


Παρουσίαση με θέμα: "Επικοινωνία Ανθρώπου - Μηχανής"— Μεταγράφημα παρουσίασης:

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 γλώσσας
1 Μέγεθος προγράμματος, πολυπλοκότητα, επαναχρησιμοποίηση Μεγάλες, σύνθετες εφαρμογές Η απόδοση είναι σημαντικό στοιχείο Χρειάζονται σταθερή δομή Επίτευγμα : Αποφυγή λαθών Διαδραστικές εντολές, scripting Η απόδοση είναι λιγότερο σημαντική Ελάχιστη δομή : Λιγότερες εξαρτήσεις, εύκολη ανταλλαγή στοιχείων Επίτευγμα : Καλύτερος προγραμματισμός Μπορεί μια γλώσσα να ικανοποιήσει όλες τις ανάγκες ;

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

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

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

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

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

11 TCL : Tool Command Language
set a 45 45 Αναθέσεις set b $a 45 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" } 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 -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 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 εντολές sub name body list of argument names

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

16 Επιπλέον TCL χαρακτηριστικά
Χειρισμός string regexp format split string binary regsub scan join append Εντολές για χειρισμό αρχείων open gets seek flush glob file pid close read tell cd puts source eof pwd Εμβέλεια μεταβλητών global uplevel upvar

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, συναρτήσεις
Geometry management Ανάθεση πράξεων σε αντικείμενα (Bindings) Άλλες εντολές (send, focus, selection…)

22 Δομή μιας ΤΚ εφαρμογής Ιεραρχία των Widget O TCL διερμηνέας
Μια διεργασία (μπορούμε να έχουμε >1) Widget : Παράθυρο-Αντικείμενο με συγκεκριμένη όψη και λειτουργίες Κλάσεις Widgets υλοποιήσιμες από TK Frame Menubutton Canvas Label Menu Scrollbar Button Message Scale Checkbutton Entry Listbox Radiobutton Text Toplevel

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

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

25 configuration options
Κατασκευή 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=Αλγόριθμος για την τακτοποίηση θυγατρικών παραθύρων που προέρχονται από ένα πρωταρχικό παράθυρο Parameters from application designer Requested size from slave Geometry of master Geometry Manager Size and location of slave Requested size for master

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

30 Bindings Μπορούμε να συσχετίσουμε TCL scripts με Χ ενέργειες
bind .b <Control-h> {backspace .t} Ορισμός γεγονότων <Double-Control-ButtonPress-1> Window(s) Event Script Modifiers Event Type Button or Keysym

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

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

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

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

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


Κατέβασμα ppt "Επικοινωνία Ανθρώπου - Μηχανής"

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


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