Μηχανικός Βασικού Λογισμικού
Δημιουργήστε μια εφαρμογή σε C++ που θα εκτελεί τα παρεχόμενα προγράμματα EsetVm2
Είσοδος: binary αρχεία κωδικοποιημένα σε ειδικό format, που ονομάζεται EsetVm2 (EVM2), ο σκοπός των οποίων είναι να ερμηνεύονται και εκτελούνται από τον κώδικα που πρόκειται να δημιουργήσετε.
Έξοδος: κάθε αρχείο είναι ένα ξεχωριστό πρόγραμμα EVM2, επομένως το αποτέλεσμα που δημιουργείται εξαρτάται αυστηρά από τον κώδικα του προγράμματος. Ο διερμηνέας σας θα πρέπει να υποστηρίζει την εκτύπωση της εξόδου στην κονσόλα και να παρέχει τη δυνατότητα του προγράμματος EVM2 για ανάγνωση και εγγραφή δεδομένων στο δίσκο. Θα σας δοθεί περιγραφή της μορφής του αρχείου EVM2, η περιγραφή bytecode, δείγματα προγραμμάτων και ένας μεταγλωττιστής για αυτά.
Τι θα αξιολογήσουμε
Με βάση τη λύση που θα μας στείλετε θα προσπαθήσουμε να αξιολογήσουμε τις προγραμματιστικές σας δεξιότητες. Θα συζητήσουμε επίσης τη λύση σας κατά τη διάρκεια της συνέντευξής μας μαζί σας. Αφιερώστε χρόνο όταν σχεδιάζετε και γράφετε τον κώδικα – όσο καλύτερος είναι, τόσο υψηλότερη μπορεί να είναι η θέση που θα διεκδικήσετε.
Ο πηγαίος κώδικας σας πρέπει να δείχνει:
- γνώση ασφαλούς προγραμματισμού (π.χ. ποτέ μην κάνετε διακοπή παραπομπής δείκτη null),
- το στυλ του προγραμματισμού σας,
- χρήση αντικειμενοστραφούς προγραμματισμού,
- βέλτιστες πρακτικές προγραμματισμού C++,
- συστηματική χρήση συμβάσεων ονομασίας,
- χρήση των σωστών σχολίων στο σωστό μέρος,
- καλή δομή κώδικα,
- χειρισμό καταστάσεων σφαλμάτων και εξαιρέσεων,
- αποφυγή επικίνδυνων ή επιρρεπών σε σφάλματα δομών,
- την κατανόησή σας για τις "εσωτερικές λειτουργίες" της C++ και τυπικών λειτουργιών (π.χ.: σπατάλη μνήμης ή περιττές (σιωπηρές/εσωτερικές) λειτουργίες αντιγραφής συμβολοσειράς/μνήμης).
Στείλτε την ανάλυσή σας στο challenge@eset.com
Αποδεχόμενοι αυτή την πρόκληση, αποδέχεστε τους Όρους και τις Προϋποθέσεις της ESET και αναγνωρίζετε την Πολιτική Απορρήτου της ESET