Εξέλιξη Κομματιού

Εισαγωγή στο Lua

  • Μικρή ιστορία
  • Στόχοι, χαρακτηριστικά και μη-στόχοι του Lua
  • Πόροι για την έγγραφο και τις εξεταστικές πλήρωμες του Lua
  • Εγκατάσταση του ερμηνέα Lua
  • Προσαρμογή και χρήση του LuaRocks

Βασική σύνταξη και σημασιολογία

  • Αναγνωριστικά
  • Σχόλια, μπλοκ σχόλια
  • Παγκόσμιες μεταβλητές και εφαρμογή αυστηρότητας
  • Τοπικές μεταβλητές
  • Ανεξάρτητα προγράμματα, όρισματα προγράμματος
  • Τμήματα κώδικα, τμήματα, έκφρασεις, αναχωρήσεις

Δομές δεδομένων και συναρτήσεις δεδομένων

  • Βασικά τύποι: nil, boolean, number, string
  • Τύποι αντικειμένων: function, userdata, thread, table
  • Αναφορές/αντικείμενα vs. βασικά τιμές

Εισαγωγή σε πίνακες και την ευελιξία τους

  • Πίνακες ως συνδυαστικές λίστες
  • Πίνακες ως αριθμητικές λίστες, ακολουθίες

Βασικά δομικά σχήματα έλεγχου

  • To if then elseif else end
  • To while loop
  • To repeat loop
  • To απλό for loop

Χειρισμός λαθών

  • Επιστρέφουσε τιμές vs. εξαιρέσεις
  • Μετατροπή μιας επιστρεφόμενης τιμής σε εξαίρεση
  • Μετατροπή εξαιρέσεων σε επιστρεφόμενες τιμές
  • Επίπεδα λαθών

Παραδείγματα προγραμμάτων

  • Αξιολόγηση πολυωνύμου
  • Αναζήτηση με επέκταση στο ύρωμα
  • Επιπλέον άσκησεις

Περισσότερα για τις συναρτήσεις

  • Ονομασμένα όρισματα
  • Κλήσεις αντικειμένων προς την οριοθέτηση
  • Κλείσιμα (closures)
  • Currying
  • Πυκνά κλήσεις (tail calls)
  • Πολλαπλή αναθέτηση και επιστροφή
  • Μεταβλητό πλήθος όρισμάτων (varargs)

Διακλαδωτές και συν-διαδικασίες

  • To γενικό for loop
  • Άμεσοι vs. μη άμεσοι διακλαδωτές
  • Διάφορες συσχέτισεις ανάμεσα σε διακλαδωτές και συν-διαδικασίες

Μεταπίνακες και μεθόδοι μετατροπής

  • To παράδειγμα του set
  • Η μέθοδος __tostring
  • Αριθμητικές μεθόδοι μετατροπής
  • Οι μεθόδοι __index, __newindex
  • Η μέθοδος __len

Μονάδες και πακέτα

  • Χρήση μονάδων
  • Δημιουργία μονάδων
  • Οργάνωση μονάδων σε πακέτα

Προηγμένοι πίνακες

  • Πίνακες για ουρές και στοίβες (queues and stacks)
  • Πίνακες για την περιγραφή γράφων
  • Ματρίσεις ως πίνακες
  • Συμβολοδοχεία (linked lists) ως πίνακες
  • Ταμπόρες συμβολοσειρών

Μεταπίνακες μέσω παραδειγμάτων

  • Προϊόντα (proxies)
  • Αναγνώριση σε διάστημα (readonly)
  • Μνήμη κεφαλίδων (memoization)
  • Δυναμική προγραμματισμός με υπομνήμη
  • To παράδειγμα του Fibonacci

Περιβάλλοντα

  • Σχέση ανάμεσα σε παγκόσμιες μεταβλητές και περιβάλλοντα
  • Ελεύθερες μεταβλητές (free variables)
  • Ο πίνακας _ENV και ο πίνακας _G

Περισσότερα για τις μονάδες

  • Διάφορες προσεγγίσεις στη δημιουργία μονάδων
  • Μονάδες που αλλάζουν τη συμπεριφορά
  • Αρχικοποίηση μονάδων και όρισματα
  • Χρήση περιβάλλοντος για τη δημιουργία ασφαλών μονάδων

Προηγμένοι διακλαδωτές και συν-διαδικασίες

  • Δημιουργός, καταναλωτής, φίλτρο
  • Περίβλεψη συν-διαδικασιών για να παράγει διακλαδωτές
  • Άμεσος διακλαδωτής για συμβολοδοχεία (linked lists)

Συνεισφορά στη διαθήκη

  • Μεταφόρτωση πακέτων στο MoonRocks

Η λειτουργία του κλειδικού χαρακτήρα (functional paradigm) στο Lua

  • Η συνάρτηση map
  • Η συνάρτηση reduce / fold

Προγραμματισμός προς την οριοθέτηση (object-oriented programming)

  • Διάφορες προσεγγίσεις στην OOP
  • Διάφορες προσεγγίσεις στην κληρονομικότητα (inheritance)
  • Παραδείγματα

Στοποδόχηση συνολικής εξέτασης των πρότυπων βιβλιοθηκών Lua

Μεταφορά κώδικα (compilation)

  • Μεταφορά
  • Eval
  • Σχέση με το περιβάλλον
  • Κυματογράμματα (binary chunks)

Περίπτωση ανακύκλωσης (garbage collection)

  • Αδύναμοι πίνακες
  • Τελικά, η μέθοδος __gc

Κώδικας Lua και υπολογιστή (bytecode and virtual machine)

  • Παραγωγή bytecode από πηγαίο κώδικα
  • Ανάγνωση και ανάλυση bytecode
  • Γρήγορη εξέταση του πηγαίου κώδικα του Lua VM

C μονάδες (C modules)

  • Κλήση C από Lua
  • Δρόμοι αναζήτησης και φόρτωση C μονάδων

Κλήση Lua από C

  • To stack (ιστογραφία)
  • Χειρισμός λαθών
  • Συνεχισμένες διαδικασίες (continuations)

Χειρισμός Lua τιμών και τύπων από C

  • Πίνακες
  • Συμβολοσειρές
  • Userdata
  • Μεταπίνακες
  • Κλήσεις αντικειμένων προς την οριοθέτηση (object-oriented calls)
  • Ελαφρά userdata

Διαχείριση μνήμης

  • Allocators
  • GC API

Ιδρύματα Lua (threads in Lua)

  • Συν-διαδικασίες vs ιδρύματα
  • Πραγματική πολυθρησκεία και Lua states

Απαιτήσεις

Εξοικείωση με τουλάχιστον μία άλλη γλώσσα προγραμματισμού. Programming εμπειρία. Προαιρετικά, εάν έχετε εξοικείωση με άλλες γλώσσες σεναρίου, αυτό θα διευκολύνει την κατανόηση του Lua.

 21 Ώρες

Αριθμός συμμετέχοντων


Τιμή ανά συμμετοχαστή

Εφεξής Μαθήματα

Σχετικές Κατηγορίες