Το Extempore1 είναι μια γλώσσα προγραμματσμού συστημάτων, σχεδιασμένη για να υποστηρίζει των προγραμματισμό σε πραγματικό χρόνο συστημάτων που τρέχουν σε πραγματικό χρόνο. Για την διαχείρηση του χρόνου χρησιμοποιεί την χρονική ανάδραση (temporal recursion) μέσω της οποίας συνχρονίζει χρησιμοποιόντας διακριτά γεγονοτά (discrete - event concurrency) οδηγούμενα απο το χρόνο (time-driven) και ενός διακοπτόμενου χρονοδρομολογητή σε πραγματικό χρόνο (real-time interrupt scheduling). Ουσιαστικά η μηχανή βασίζεται σε ουρά προτεραιότητας (priority queue) που περιλαμβάνει δυναμικό αριθμό tuples (δομές απο συμβάντα - events structures) που περιέχουν τις παρακάτω πληροφορίες:

  • Χρόνο εκκίνησης της εκτέλεσης
  • Μέγιστο χρόνο εκτέλεσης της διεργασίας
  • Αναγνωριστικό της διεργασίας (process identifier)
  • Λειτουργία (function)
  • Διάνυσμα με τις παραμέτρους που απαιτεί η διεργασία(Sorensen 2010:6)

Install extempore

To start an Extempore session:

  1. Open a shell buffer (`M-x shell`), `cd` to the extempore directory and start it up with `./extempore`
  2. Switch to an `.xtm` file (e.g. from the `examples` subdirectory) or create a new one
  3. M-x extempore-connect
  4. You're away. `C-x C-x` will eval an expression and `C-x C-r` will eval the region

Sorensen talking and performing at TEDxQUT

Ένας απο τους master μιλάει και παίζει στο TED2 at <2013-08-10 Sat>

  • 00:40 -> Το λογισμικό με το οποίο θα δημιουργηθούν τα γραφικά δεν έχει γραφτεί ακόμη
  • 01:05 -> Η διεπαφή είναι μαι γλώσσα προγραμματισμού
  • 01:10 -> Ο ρόλος του επιτελεστή είναι να γρα΄ψει το λογισμικό με το οποίο θα δημιουργηθούν τα γραφικά
  • 01:40 -> Η διαδικασία της σύνθεσης σε πρώτο πλάνο
  • 02:05 -> Text-theater ο διάλογος μεταξύ του επιτελεστή και της μηχανής
  • Let's cracking

Andrew Sorensen on Real Time Programming, Live Coding Music, Memory Management

Footnotes:

1

https://github.com/digego/extempore

Την τελευταία και πιο ολοκληρωμένη πρόταση ως λύση της προβληματικής, την έχει διατυπώσει ο Sorensen & ο Gardner το 2010 στη δημοσίευση τους Programming With Time - Cyber-physical programming with Impromptu (Sorensen 2010). Η συγκεκριμένη πρόταση επιτυγχάνει τον συγχρονισμό, με την δημιουργία ενός πρότυπου-πατρόν (pattern) που το ονομάζει χρονική ανάδραση (temporal recursion). H χρονική ανάδραση συγχρονίζει μέσω διακριτών γεγονότων (discrete-event concurrency) οδηγούμενων απο το χρόνο (time-driven),(Beraldi 1999, Lee 2006) καθώς και με διακοπτόμενο χρονοδρομολογητή σε πραγματικό χρόνο (real-time interrupt scheduling)(Sorensen2010:6). Όπου time-driven είναι η προγραμματιστική διεργασία όπου ο έλεγχος ροής του προγράμματος του εκτελεί ο υπολογιστής, οδηγείται απο ένα ρολόι(Haynes 1987 & Hieb 1990). Ο χρονοδρομολογητής σε πραγματικό χρόνο είναι υπεύθηνος για την εκτέλεση κομμάτια(block) κώδικα με χρονολογική διάταξη. Η μηχανή βασίζεται σε ουρές προτεραιότητας (priority queue) που περιλαμβάνει δυναμικό αριθμό tuples (δομών απο συμβάντα - event structures) που περιέχουν:

  • τον χρόνο εκκίνησης της εκτέλεσης (execution start-time),
  • τον μέγιστο χρόνο για τον οποίο θα εκτελεστεί η διεργασία,
  • αναγνωριστικό της διεργασίας (process identifier),
  • λειτουργία (function) και
  • ένα διάνυσμα που περιέχει τις τιμές των παραμέτρων που απαιτούνται για την λειτουργία.
Posted on .
blog comments powered by Disqus