Το Chuck 1(Wang 2003) είναι γλώσσα προγραμματισμού για live-coding. Χρήσιμοποιεί δύο βασικούς τύπους δεδομένων για την διαχείτηση του χρόνου, τους time και dur. Η δεσμευσμένη λέξη now είναι τύπου time και μπορεί να παραμείνει σταθερή για μεγάλα μπλόκ απο κώδικα. Έτσι εγγυάται μια ντετρμινιστική δομή στο χρόνο του συστήματος και παρέχει έναν απλό και φυσικό μηχανισμό για απόλυτο έλεγχο στο χρόνο απο τον προγραμματιστή. Επίσης επιτρέπει τον καθορισμό του ρυθμού ελέγχου (control rate) απο τον χρήστη και η αρχή λειτουργίας του στηρίζεται στα Shreds (αντι threads) και στον Shreduler (αντι Scheduler)(σχήμα).

Δυνατότητα αφομοίωσης νέων διεργασιών κατα τη διάρκεια εκτέλεσης.

Ο χρόνος στο Chuck αρχίζει απο το μηδέν όταν η εφαρμογή αρχίζει, και είναι απόλυτα δεσμευμένος απο το ρολόι του επεξεργαστή ψηφιακού σήματος (DSP).

Το Chunk κάνει χρήση του τελεστή =>. Ουσιαστικά είναι τελεστής ενφώλευσης (the operations are performed left to right, in exactly the same order as written).

Πως τρέχω το chuck

$ cd ~/Tools/chuck
$ chuck timeManipulation.ck
$ open with emacs timeManipulation.ck

Μπορώ να εκτελέσω scripts ενω τρέχει ήδη ένα 2. Με τον τρόπο αυτό επιτυγχάνεται συγχρονισμός σε πραγματικό χρόνο.

Σχετικά με την διαχείρηση του χρόνου

The built-in units are samp (duration of one sample), ms, second, minute, hour, day, week.

0.7:second => dur quarter;
4:<quarter> => dur whole;

10:second after now => time later;

while( now < later )
{
now => format_sec => stdout; 1:second => now;
}

Κριτική

log

  • [2013-12-17 Tue] Δημιουργία άρθρου απο τις σημειώσεις του διδακτορικού.

footnotes

Posted on .
blog comments powered by Disqus