Απαντήσεις σε συχνές ερωτήσεις

  1. Χρειάζεται τελικά δεύτερη φάση δημιουργίας κώδικα για τις μεταβλητές και τις συμβολοσειρές;
    Όχι, α) ο κώδικας για τις μεταβλητές δημιουργείται εκτός των εντολών αφού αυτές ορίζονται έξω από τις συναρτήσεις β) για τις συμβολοσειρές υπάρχει μέθοδος δημιουργίας κώδικα που δεν απαιτεί δεύτερο πέρασμα.
  2. Τι να κάνουμε με τα λάθη reduce/reduce του yacc.
    Ψάξτε στο αρχείο y.output για να δείτε τους κανόνες που δημιουργούν αυτά τα λάθη.
  3. Τι σημαίνει το λάθος X rules never reduced;
    Κάποια τερματικά σύμβολα έχουν οριστεί σε κανόνες, αλλά δεν έχουν χρησιμοποιηθεί σε κανέναν άλλο κανόνα. Ψάξτε στο αρχείο y.output (στο τέλος του) για να δείτε τα μη τερματικά σύμβολα που έχουν αυτό το πρόβλημα.
  4. Πως μπορούμε να βρούμε σφάλματα στο πρόγραμμά μας;
    Με τον απασφαλματωτή gdb.

    Εντολές

    break
    καθορίζει σημεία που θέλετε να σταματήσετε. π.χ. break main.c:22
    cont
    συνεχίζει την εκτέλεση μετά από break.
    step
    εκτελεί την επόμενη γραμμή κώδικα
    next
    εκτελεί την επόμενη γραμμή κώδικα χωρίς να μπαίνει μέσα στις συναρτήσεις
    where
    μετά από ένα segmentation fauls σας λέει σε ποιο σημείο έγινε.
    print expr
    τυπώνει την τιμή της έκφρασης expr
    help
    τυπώνει βοήθεια για τον gdb
    quit
    τερματίζει τη λειτουργία του gdb