Καθοδήγηση


Αυτό το έγγραφο παρέχει οδηγίες για την υλοποίηση ενός αναλυτή.

Γενικά

  • Ανάλυσε όλα τα αρχεία που υποβάλλονται, εκτός από τα αρχεία tests/invalidator/editor/example/exemplar
  • Μην στοχεύεις στην 100% ορθότητα, που θα είναι σχεδόν αδύνατο να επιτευχθεί. Δεν πειράζει αν ο αναλυτής δεν μπορεί να βρει όλα τα προβλήματα ή δεν μπορεί να συμπεράνει ορισμένες ετικέτες.

Μεταγλώττιση

Αν η γλώσσα σου απαιτεί ένα βήμα μεταγλώττισης, λάβε υπόψη τα παρακάτω σημεία:

  • Η μεταγλώττιση της λύσης συνήθως επιτρέπει μεγαλύτερη ακρίβεια. Για παράδειγμα, ο οριστικός τύπος οποιασδήποτε τιμής είναι γνωστός μόνο μετά τη μεταγλώττιση. Να έχεις πάντως υπόψη σου τα υπέρ και τα κατά (π.χ. πιο αργή εκτέλεση και μεγαλύτερη χρήση μνήμης).
  • Σκέψου τη μεταγλώττιση στη μνήμη (αν είναι εφικτό), για καλύτερες επιδόσεις.

Δοκιμές

  • Να έχεις ένα εκτεταμένο σύνολο δοκιμών
  • Χρησιμοποίησε golden tests για να επαληθεύσεις τη συμπεριφορά του αναλυτή. Αυτές οι δοκιμές θα πρέπει να χρησιμοποιούν την εικόνα Docker που θα γίνει deploy για την επαλήθευση του αναλυτή.
  • Σκέψου να έχεις δοκιμές για κάθε προσέγγιση. Θέλεις ο αναλυτής να λειτουργεί καλά για αυτές τις λύσεις, και θα βοηθήσει αργότερα στην ανάθεση ετικετών στις προσεγγίσεις.