French Γαλλικά German Γερμανικά Greek Ελληνική Hindi Ινδικά Italian Ιταλικά Japanese Ιαπωνικά Korean Κορεατικά Portuguese Πορτογαλικά Russian Ρωσική Spanish Ισπανικά

Funk2: Causal Reflective Programming Funk2: αιτιώδη στοχαστική προγραμματισμού

Funk2: reflective programming language Funk2: στοχαστική γλώσσα προγραμματισμού



Overview Επισκόπηση


o ξ Supported systems Υποστηριζόμενα συστήματα
o ξ The goal Ο στόχος
o ξ How does it work? Πώς λειτουργεί;
o ξ Examples of causal reflective programming Παραδείγματα αιτιώδη στοχαστική προγραμματισμού
o ξ Basic programming examples Βασικά παραδείγματα προγραμματισμού
o ξ Programming with primfunk funktions Προγραμματισμός με primfunk funktions
o ξ Programming with ptype objects Προγραμματισμός με αντικείμενα ptype
o ξ Programming with primobject objects Προγραμματισμός με αντικείμενα primobject
o ξ Current plan Σημερινό πρόγραμμα
o ξ Society of Mind final project ideas Society of Mind τελικό σχέδιο ιδεών
o ξ Downloads Λήψεις
o ξ Publications Εκδόσεις
o ξ Media presentations Media παρουσιάσεις
o ξ Developers Προγραμματιστές


Supported systems Υποστηριζόμενα συστήματα


Funk2 currently compiles on 32-bit and 64-bit Linux operating systems. Funk2 σήμερα συγκεφαλαιώνει σε 32-bit και 64-bit Linux λειτουργικά συστήματα. 64-bit pointers are recommended because of the amount of memory needed for the reflective capabilities; a 32-bit machine is currently only able to index a few gigabytes of memory. 64-bit δείκτες συνιστάται διότι το ποσό της μνήμης που απαιτείται για τις ανακλαστικές ικανότητες? Ένα 32-bit μηχάνημα είναι σήμερα σε θέση να δείκτη μόνο μερικά gigabytes μνήμης.



The goal Ο στόχος


The goal of the programming language Funk2 is to enable reflective algorithmic tracing for large heterogenous control systems. Ο στόχος της γλώσσας προγραμματισμού Funk2 είναι να επιτρέψει σε αντανακλαστική αλγοριθμικής για τον εντοπισμό μεγάλων ετερογενών συστημάτων ελέγχου. A few point emphasized in the Funk2 programming language are: Λίγες σημείο υπογραμμίζεται στην Funk2 γλώσσα προγραμματισμού είναι:

o ξ Layered Critical Causal Reflection Πολυεπίπεδη κρίσιμη αιτιώδη προβληματισμού
o ξ Efficient and Robust Control Αποτελεσματικός έλεγχος και εύρωστο
o ξ Learning by Credit Assignment Μαθαίνοντας από τα πιστωτικά εκχώρησης
o ξ Divergent Solution Paths Αποκλίνουσες πορείες λύση
o ξ Intricate Thread Control Περίπλοκο νήμα ελέγχου
o ξ Goal-oriented Learning Με προσανατολισμό στο στόχο Μάθηση


How does it work? Πώς λειτουργεί;

Examples of the most basic computational features include: (1) memory creation , (2) memory read , and (3) memory write . Παραδείγματα από τις πιο βασικές υπολογιστικές δυνατότητες περιλαμβάνουν: (1) δημιουργία μνήμης, (2) μνήμης διαβάζει, και (3) μνήμης γράψω. Tracing all causal relationships between these basic features allows tracing the context of all other programmer-defined semantic abstractions . Ανίχνευση όλων των αιτιακών σχέσεων μεταξύ αυτών των βασικών χαρακτηριστικών επιτρέπει τον εντοπισμό πλαίσιο όλων των άλλων που ορίζονται από τον προγραμματιστή σημασιολογική λήψεων. All of these computational features create an intricate trace network of dependencies, automatically traceable and shared by many parallel threads of execution. Όλες αυτές οι υπολογιστικές δυνατότητες δημιουργήσει ένα περίπλοκο δίκτυο ίχνος των εξαρτήσεων, αυτόματα ανιχνεύσιμα και μοιράζονται πολλές παράλληλες κλωστές της εκτέλεσης. Funk2 allows causal tracing to occur modularly to dynamically chosen parts of large commonsense-scale artificial intelligence projects. Funk2 επιτρέπει τον εντοπισμό αιτιώδη να παρουσιαστεί modularly να επιλέγεται δυναμικά τμήματα της commonsense μεγάλης κλίμακας έργα τεχνητής νοημοσύνης. The resulting causal dependency trace networks can be processed by critical causal reflection threads. Η εξάρτηση από το ίχνος που προκύπτει αιτιώδης δίκτυα μπορούν να τύχουν επεξεργασίας από το κρίσιμο αιτιώδη προβληματισμού κλωστές.



Examples of causal reflective programming Παραδείγματα αιτιώδη στοχαστική προγραμματισμού



Here is how to retrieve the creation Cause for any piece of memory ( [] , the value of the symbol nil , is the only thing that does not reference a piece of memory): Εδώ είναι πώς να ανακτήσει τη δημιουργία Αιτία για κάθε κομμάτι μνήμης ([], η αξία του συμβόλου ανύπαρκτο, είναι το μόνο πράγμα που δεν αναφοράς ένα κομμάτι της μνήμης):

Note that in the Cause object there are multiple named slots holding information in the frame of the cause. Σημειώστε ότι στην προκαλέσει αντιρρήσεις υπάρχουν πολλαπλές ονομάζεται χρονοθυρίδων εκμετάλλευση πληροφοριών στο πλαίσιο της αιτίας. The frames of a Cause are thread , env , name , and args . Τα πλαίσια μιας Αιτία είναι το νήμα, env, όνομα, και args. By default only 7 levels of recursion are printed to the screen. Από προεπιλογή μόνο 7 επίπεδα Αναδρομή έχουν τυπωθεί στην οθόνη. The symbol used for ending a recursion is the astrisk, * .In order to access the slots of an object, you can use funktions that are named to access and mutate objects. Το σύμβολο που χρησιμοποιείται για τερματισμός Αναδρομή είναι η astrisk,. * Για να αποκτήσετε πρόσβαση στο διαθέσιμου χρόνου χρήσης ενός αντικειμένου, μπορείτε να χρησιμοποιήσετε funktions που ονομάζονται να έχουν πρόσβαση και να μεταλλαχθούν αντικείμενα. For example, the following example shows how to retrieve only the name and args slots of a cause object. Για παράδειγμα, το ακόλουθο παράδειγμα δείχνει πώς να ανακτήσει μόνο το όνομα και args διαθέσιμου χρόνου χρήσης ενός προκαλέσει αντιρρήσεις.


in--> [let [[cause [cause-of 12]]] [cons [cause-name cause] [cause-args cause]]] in -> [ας [[προκαλέσουν [αιτία του 12]]] [Ενοπ [προκαλούν-το όνομα προκαλέσει] [αιτία-args προκαλέσει]]]
read> [ let [ [ cause [ cause-of 12 ] ] ] [ cons [ cause-name cause ] [ cause-args cause ] ] ] διαβάστε> [ας [[προκαλέσουν [αιτία του 12]]] [Ενοπ [προκαλούν-το όνομα προκαλέσει] [αιτία-args προκαλέσει]]]
out-> [ primfunk:read #xb7f03420 ] out-> [primfunk: διαβάστε # xb7f03420]


Here is an example of how to remember the state of an object at specific historical points in time: Εδώ είναι ένα παράδειγμα του πώς να θυμόμαστε την κατάσταση ενός αντικειμένου σε συγκεκριμένες ιστορικά χρονικά σημεία:


in--> [globalize a [array-new 10]] in -> [globalize α [array-νέος 10]]
read> [ globalize a [ array-new 10 ] ] διαβάστε> [globalize α [array-νέος 10]]
out-> [] out-> []

in--> a in -> a
read> a διαβάστε> a
out-> ( [] [] [] [] [] [] [] [] [] [] ) out-> ([] [] [] [] [] [] [] [] [] [])

in--> [tracing_on-set at] in -> [tracing_on-set at]
read> [ tracing_on-set a t ] διαβάστε> [tracing_on-καθορίσει t]
out-> [] out-> []

in--> [system_date] in -> [system_date]
read> [ system_date ] διαβάστε> [system_date]
out-> ( date 1970 0 13983 6 29 7 526235 ) out-> (ημερομηνία 1970 0 13983 6 29 7 526235)

in--> [dotimes [i 5] [array-elt-set ai [+ i 10]]] in -> [dotimes [i 5], [array-ΕΕ-που ai [i + 10]]]
read> [ dotimes [ i 5 ] [ array-elt-set a i [ + i 10 ] ] ] διαβάστε> [dotimes [i 5], [array-ΕΕ-καθορίσει i [i + 10]]]
out-> [] out-> []

in--> a in -> a
read> a διαβάστε> a
out-> ( 10 11 12 13 14 [] [] [] [] [] ) out-> (10 11 12 13 14 [] [] [] [] [])

in--> [remember a (date 1970 0 13983 6 28 44 908595)] in -> [θυμηθείτε α (ημερομηνία 1970 0 13983 6 28 44 908595)]
read> [ remember a ( date 1970 0 13983 6 28 44 908595 ) ] διαβάστε> [θυμηθείτε α (ημερομηνία 1970 0 13983 6 28 44 908595)]
out-> ( [] [] [] [] [] [] [] [] [] [] ) out-> ([] [] [] [] [] [] [] [] [] [])

in--> a in -> a
read> a διαβάστε> a
out-> ( 10 11 12 13 14 [] [] [] [] [] ) out-> (10 11 12 13 14 [] [] [] [] [])


Here is another example of how to remember the state of an object at specific historical points in time: Εδώ είναι ένα άλλο παράδειγμα του πώς να θυμόμαστε την κατάσταση ενός αντικειμένου σε συγκεκριμένες ιστορικά χρονικά σημεία:


in--> [globalize a [array-new 10]] in -> [globalize α [array-νέος 10]]
read> [ globalize a [ array-new 10 ] ] διαβάστε> [globalize α [array-νέος 10]]
out-> [] out-> []

in--> [tracing_on-set at] in -> [tracing_on-set at]
read> [ tracing_on-set a t ] διαβάστε> [tracing_on-καθορίσει t]
out-> [] out-> []

in--> [globalize dates [array-new 10]] in -> [globalize ημερομηνίες [array-νέος 10]]
read> [ globalize dates [ array-new 10 ] ] διαβάστε> [globalize ημερομηνίες [array-νέος 10]]
out-> [] out-> []

in--> [dotimes [i 10] [array-elt-set dates i [system_date]] [array-elt-set aii]] in -> [dotimes [i 10], [array-ΕΕ-που χρονολογείται i [system_date]], [array-ΕΕ-που aii]]
read> [ dotimes [ i 10 ] [ array-elt-set dates i [ system_date ] ] [ array-elt-set a i i ] ] διαβάστε> [dotimes [i 10], [array-ΕΕ-που χρονολογείται i [system_date]], [array-ΕΕ-καθορίσει θ θ]]
out-> [] out-> []

in--> a in -> a
read> a διαβάστε> a
out-> ( 0 1 2 3 4 5 6 7 8 9 ) out-> (0 1 2 3 4 5 6 7 8 9)

in--> dates in -> ημερομηνίες
read> dates διαβάστε> ημερομηνίες
out-> ( ( date 1970 0 13983 6 12 19 283811 ) out-> ((ημερομηνία 1970 0 13983 6 12 19 283811)
( date 1970 0 13983 6 12 19 561113 ) (Ημερομηνία 1970 0 13983 6 12 19 561113)
( date 1970 0 13983 6 12 19 828195 ) (Ημερομηνία 1970 0 13983 6 12 19 828195)
( date 1970 0 13983 6 12 20 94674 ) (Ημερομηνία 1970 0 13983 6 12 20 94674)
( date 1970 0 13983 6 12 20 361727 ) (Ημερομηνία 1970 0 13983 6 12 20 361727)
( date 1970 0 13983 6 12 20 629388 ) (Ημερομηνία 1970 0 13983 6 12 20 629388)
( date 1970 0 13983 6 12 20 896560 ) (Ημερομηνία 1970 0 13983 6 12 20 896560)
( date 1970 0 13983 6 12 21 163860 ) (Ημερομηνία 1970 0 13983 6 12 21 163860)
( date 1970 0 13983 6 12 21 431032 ) (Ημερομηνία 1970 0 13983 6 12 21 431032)
( date 1970 0 13983 6 12 21 699425 ) ) (Ημερομηνία 1970 0 13983 6 12 21 699425))

in--> [let [[history nil]] [dotimes [i 10] [set history [cons [remember a [array-elt dates i]] history]]] history] in -> [ας [[ιστορία ουδέν]] [dotimes [i 10] [ιστορία που [Ενοπ [θυμόμαστε α [array-ΕΕ ημερομηνίες i]] ιστορία]]] ιστορία]
read> [ let [ [ history [] ] ] [ dotimes [ i 10 ] [ set history [ cons [ remember a [ array-elt dates i ] ] history ] ] ] history ] διαβάστε> [ας [[ιστορία []]] [dotimes [i 10] [ιστορία που [Ενοπ [θυμόμαστε α [array-ΕΕ ημερομηνίες i]] ιστορία]]] ιστορία]
out-> [ ( 0 1 2 3 4 5 6 7 8 [] ) out-> [(0 1 2 3 4 5 6 7 8 [])
( 0 1 2 3 4 5 6 7 [] [] ) (0 1 2 3 4 5 6 7 [] [])
( 0 1 2 3 4 5 6 [] [] [] ) (0 1 2 3 4 5 6 [] [] [])
( 0 1 2 3 4 5 [] [] [] [] ) (0 1 2 3 4 5 [] [] [] [])
( 0 1 2 3 4 [] [] [] [] [] ) (0 1 2 3 4 [] [] [] [] [])
( 0 1 2 3 [] [] [] [] [] [] ) (0 1 2 3 [] [] [] [] [] [])
( 0 1 2 [] [] [] [] [] [] [] ) (0 1 2 [] [] [] [] [] [] [])
( 0 1 [] [] [] [] [] [] [] [] ) (0 1 [] [] [] [] [] [] [] [])
( 0 [] [] [] [] [] [] [] [] [] ) (0 [] [] [] [] [] [] [] [] [])
( [] [] [] [] [] [] [] [] [] [] ) ] ([] [] [] [] [] [] [] [] [] [])]



Basic Programming Examples Βασικά παραδείγματα προγραμματισμού




Here is one straightforward way to write a "Hello world!" Εδώ είναι ένας απλός τρόπος για να γράψω ένα "Hello World!" program in the Funk2 language: πρόγραμμα της Funk2 γλώσσα:


in--> [print 'Hello world!'] in -> [print "Hello World!"]
read> [ print 'Hello world!' ] διαβάστε> [print "Hello World!"]
'Hello world!' «Γεια σας κόσμο!"
out-> 'Hello world!' out-> "Hello World!"


Here is another more advanced way to holla your planet: Εδώ είναι ένα άλλο πιο προχωρημένο τρόπο να σας holla πλανήτη:


in--> [let [[planet 'Earth']] [format stdout 'Hello ' planet '!']] in -> [ας [[πλανήτη Γη ']] [stdout μορφή «Γεια σας» πλανήτη'!']]
read> [ let [ [ planet 'Earth' ] ] [ format stdout 'Hello ' planet '!' ] ] Hello Earth! διαβάστε> [ας [[πλανήτη Γη ']] [stdout μορφή «Γεια σας» πλανήτης »!']] Γεια σας Γη!
out-> [] out-> []


Here is how to define and subsequently call a funktion: Εδώ είναι πώς θα προσδιορίσει και στη συνέχεια καλούμε μια funktion:


in--> [defunk say-hi [x] [format stdout 'Why, hello there ' x '. in -> [defunk πω-hi [x] [stdout μορφή «Γιατί, εκεί hello" x ". It is really great to see you.']] Είναι πραγματικά μεγάλη για να σας δούμε ».]]
read> [ defunk say-hi [ x ] [ format stdout 'Why, hello there ' x '.  It is really great to see you.' ] ] διαβάστε> [defunk πω-hi [x] [stdout μορφή «Γιατί, εκεί hello" x ". Είναι πραγματικά μεγάλη για να σας δούμε».]]
defunk say-hi [ x ] defunk πω-hi [x]
out-> [] out-> []
in--> [say-hi 'Marvin'] in -> [πω-hi 'Marvin']
read> [ say-hi 'Marvin' ] διαβάστε> [πω-hi 'Marvin']
Why, hello there Marvin. Γιατί, hello, Marvin. It is really great to see you. Είναι πραγματικά μεγάλη να τα λέμε.
out-> [] out-> []


Here is how to loop over a list of values: Εδώ είναι πώς να βρόχο σε μια λίστα τιμών:


in--> [mapc [funk [x] [print x]] [list 1 2 3 #xFF 'dog' `[2 3]]] in -> [mapc [funk [x] [εκτύπωση x]] [κατάλογο 1 2 3 # xFF «σκύλος», «[2 3]]]
read> [ mapc [ funk [ x ] [ print x ] ] [ list 1 2 3 #xff 'dog' ` [ 2 3 ] ] ] διαβάστε> [mapc [funk [x] [εκτύπωση x]] [κατάλογο 1 2 3 # xff «σκύλος», «[2 3]]]
1 1
2 2
3 3
#xff # xff
'dog' «σκύλος»
[ 2 3 ] [2 3]
out-> [] out-> []


Here is how to call our funktion above in a parallel thread: Εδώ είναι πώς να καλούν μας funktion πάνω σε ένα παράλληλο thread:


in--> [prog [thread &say-hi [list 'Gerry']] nil] in -> [Πρόγρ [thread & πω-hi [κατάλογο «Gerry ']] ουδέν]
read> [ prog [ thread &say &say-hi [ list 'Gerry' ] ] [] ] διαβάστε> [Πρόγρ [thread & & πω πω-hi [κατάλογο «Gerry ']] []]
Why, hello there Γιατί, εκεί Γεια σας
out-> Gerry. out-> Gerry. It is really great to see you. [] Είναι πραγματικά μεγάλη να τα λέμε. []


Here is how to serially filter every element in a list: Εδώ είναι πώς να σειριακό φίλτρο κάθε στοιχείο σε μια λίστα:


in--> [mapcar [funk [x] [+ x 10]] [list 1 2 3 4 5]] in -> [mapcar [funk [x] [x + 10]] [κατάλογο 1 2 3 4 5]]
read> [ mapcar [ funk [ x ] [ + x 10 ] ] [ list 1 2 3 4 5 ] ] διαβάστε> [mapcar [funk [x] [x + 10]] [κατάλογο 1 2 3 4 5]]
out-> [ 11 12 13 14 15 ] out-> [11 12 13 14 15]


Here is how to concurrently filter every element in a list: Εδώ είναι πώς να φιλτράρετε ταυτόχρονα κάθε στοιχείο σε μια λίστα:


in--> [parcar [funk [x] [+ x 10]] [list 1 2 3 4 5]] in -> [parcar [funk [x] [x + 10]] [κατάλογο 1 2 3 4 5]]
read> [ parcar [ funk [ x ] [ + x 10 ] ] [ list 1 2 3 4 5 ] ] διαβάστε> [parcar [funk [x] [x + 10]] [κατάλογο 1 2 3 4 5]]
out-> [ 11 12 13 14 15 ] out-> [11 12 13 14 15]


The scheduler:global_scheduler variable in the global environment can be used as a reference to the global funk2 scheduler for the local machine. Το χρονοδιάγραμμα: global_scheduler μεταβλητή στο παγκόσμιο περιβάλλον μπορεί να χρησιμοποιηθεί ως σημείο αναφοράς για την παγκόσμια funk2 χρονοδιάγραμμα για το τοπικό μηχάνημα. Processor information available from "/dev/proc" during funk2 initial bootstrap compile is available for all machines currently logged into the grid. Processor διαθέσιμες πληροφορίες από το "/ dev / proc" κατά τη διάρκεια της αρχικής funk2 bootstrap καταρτίζουν είναι διαθέσιμο για όλα τα μηχανήματα στιγμή συνδεδεμένοι στο δίκτυο. Grid support is in development, this only shows this information for the local machine. Πλέγμα στήριξης είναι σε εξέλιξη, αυτό δείχνει μόνο την πληροφορία για το τοπικό μηχάνημα. Once support for multiple machines is available, this variable will change into a funktion that takes a machine-id as an argument and returns that machine's scheduler object. Μόλις υποστήριξη για πολλαπλά μηχανήματα είναι διαθέσιμα, αυτή η μεταβλητή θα αλλάζει σε ένα funktion ότι παίρνει μια μηχανή-id ως επιχείρημα ότι η μηχανή και επιστρέφει το χρονοδιάγραμμα αντικείμενο.


in--> scheduler:global_scheduler in -> χρονοδιάγραμμα: global_scheduler
read> scheduler:global_scheduler διαβάστε> χρονοδιάγραμμα: global_scheduler
out-> [ scheduler out-> [χρονοδιάγραμμα
:processors ( [ processor : μεταποιητές ([επεξεργαστή
:mutation_mutex [ mutex] : mutation_mutex [mutex]
:scheduler [ scheduler :processors * ] : χρονοδιάγραμμα [χρονοδιάγραμμα: μεταποιητές *]
:pthread #x40a00960 : pthread # x40a00960
:threads [ [ thread : νήματα [[thread
:program_counter * : program_counter *
:stack * : στοίβα *
:iter * : ITER, *
:env * : ENV *
:args * : args *
:return * : επιστροφή *
:value * : αξία *
:trace * : ίχνος *
:critics * : επικριτές *
:cause_reg * : cause_reg *
:keep_undead * : keep_undead *
:parent_thread * : parent_thread *
:parent_env * : parent_env *
:execute_mutex * : execute_mutex *
:last_executed_time * ] : last_executed_time *]
[ thread [Νήμα
:program_counter * : program_counter *
:stack * : στοίβα *
:iter * : ITER, *
:env * : ENV *
:args * : args *
:return * : επιστροφή *
:value * : αξία *
:trace * : ίχνος *
:critics * : επικριτές *
:cause_reg * : cause_reg *
:keep_undead * : keep_undead *
:parent_thread * : parent_thread *
:parent_env * : parent_env *
:execute_mutex * : execute_mutex *
:last_executed_time * ] : last_executed_time *]
[ thread [Νήμα
:program_counter * : program_counter *
:stack * : στοίβα *
:iter * : ITER, *
:env * : ENV *
:args * : args *
:return * : επιστροφή *
:value * : αξία *
:trace * : ίχνος *
:critics * : επικριτές *
:cause_reg * : cause_reg *
:keep_undead * : keep_undead *
:parent_thread * : parent_thread *
:parent_env * : parent_env *
:execute_mutex * : execute_mutex *
:last_executed_time * ] : last_executed_time *]
[ thread [Νήμα
:program_counter * : program_counter *
:stack * : στοίβα *
:iter * : ITER, *
:env * : ENV *
:args * : args *
:return * : επιστροφή *
:value * : αξία *
:trace * : ίχνος *
:critics * : επικριτές *
:cause_reg * : cause_reg *
:keep_undead * : keep_undead *
:parent_thread * : parent_thread *
:parent_env * : parent_env *
:execute_mutex * : execute_mutex *
:last_executed_time * ] : last_executed_time *]
[ thread [Νήμα
:program_counter * : program_counter *
:stack * : στοίβα *
:iter * : ITER, *
:env * : ENV *
:args * : args *
:return * : επιστροφή *
:value * : αξία *
:trace * : ίχνος *
:critics * : επικριτές *
:cause_reg * : cause_reg *
:keep_undead * : keep_undead *
:parent_thread * : parent_thread *
:parent_env * : parent_env *
:execute_mutex * : execute_mutex *
:last_executed_time * ] : last_executed_time *]
[ thread [Νήμα
:program_counter * : program_counter *
:stack * : στοίβα *
:iter * : ITER, *
:env * : ENV *
:args * : args *
:return * : επιστροφή *
:value * : αξία *
:trace * : ίχνος *
:critics * : επικριτές *
:cause_reg * : cause_reg *
:keep_undead * : keep_undead *
:parent_thread * : parent_thread *
:parent_env * : parent_env *
:execute_mutex * : execute_mutex *
:last_executed_time * ] : last_executed_time *]
[ thread [Νήμα
:program_counter * : program_counter *
:stack * : στοίβα *
:iter * : ITER, *
:env * : ENV *
:args * : args *
:return * : επιστροφή *
:value * : αξία *
:trace * : ίχνος *
:critics * : επικριτές *
:cause_reg * : cause_reg *
:keep_undead * : keep_undead *
:parent_thread * : parent_thread *
:parent_env * : parent_env *
:execute_mutex * : execute_mutex *
:last_executed_time * ] : last_executed_time *]
[ thread [Νήμα
:program_counter * : program_counter *
:stack * : στοίβα *
:iter * : ITER, *
:env * : ENV *
:args * : args *
:return * : επιστροφή *
:value * : αξία *
:trace * : ίχνος *
:critics * : επικριτές *
:cause_reg * : cause_reg *
:keep_undead * : keep_undead *
:parent_thread * : parent_thread *
:parent_env * : parent_env *
:execute_mutex * : execute_mutex *
:last_executed_time * ] : last_executed_time *]
[ thread [Νήμα
:program_counter * : program_counter *
:stack * : στοίβα *
:iter * : ITER, *
:env * : ENV *
:args * : args *
:return * : επιστροφή *
:value * : αξία *
:trace * : ίχνος *
:critics * : επικριτές *
:cause_reg * : cause_reg *
:keep_undead * : keep_undead *
:parent_thread * : parent_thread *
:parent_env * : parent_env *
:execute_mutex * : execute_mutex *
:last_executed_time * ] : last_executed_time *]
[ thread [Νήμα
:program_counter * : program_counter *
:stack * : στοίβα *
:iter * : ITER, *
:env * : ENV *
:args * : args *
:return * : επιστροφή *
:value * : αξία *
:trace