Human vs Compiler: Πώς το plh10.exe με έκανε να γράψω τον δικό μου Interpreter
Current Session Stats
Υπάρχει ένας άγραφος νόμος στο Software Engineering: "Αν κάτι δουλεύει, μην το αγγίζεις". Στο Ελληνικό Ανοικτό Πανεπιστήμιο (ΕΑΠ), όμως, ανακαλύψαμε ένα νέο corollary αυτού του νόμου: "Για να δουλέψει ο compiler της σχολής, πρέπει να σπάσεις οτιδήποτε άλλο λειτουργεί στο PC σου."
Καλωσήρθατε στον πόλεμο της Ψευδογλώσσας.
Το Boss Fight: plh10.exe και το Dependency Hell
Στα πλαίσια των σπουδών, έπρεπε να χρησιμοποιήσουμε τον επίσημο compiler/interpreter (plh10.exe). Στην αρχή νομίζαμε ότι ήταν απλά θέμα λειτουργικού. "Αν έχεις Linux/Mac, ξέχνα το", μας έλεγαν στο forum. Αλλά η αλήθεια ήταν πολύ πιο σκοτεινή.
Ακόμα και στα Windows, στο "φυσικό" του περιβάλλον, το εργαλείο ήταν... τοξικό. Η διαδικασία εγκατάστασης στο VSCode ήταν ένα επικίνδυνο ritual. Αν κατάφερνες (μετά από τάματα και πειράγματα στο System PATH) να κάνεις το plh10.exe να τρέξει Ψευδογλώσσα, ξαφνικά συνέβαινε το εξής μαγικό: Σταματούσε να δουλεύει η κανονική C.
- Θες Ψευδογλώσσα; Χάνεις την GCC/MinGW.
- Θες να γράψεις C για την επόμενη άσκηση; Χάνεις την Ψευδογλώσσα.
- Θες και τα δύο; Blue Screen of Death (ψυχολογικό).
Το configuration του VSCode settings.json γινόταν corrupted πιο γρήγορα και από save file σε Cyberpunk παιχνίδι την ημέρα κυκλοφορίας.
Η Εξίσωση της Λύτρωσης
Όταν η υπομονή ($P$) τείνει στο 0 και το Environment Pollution ($EP$) τείνει στο άπειρο, τότε η καινοτομία ($I$) είναι μονόδρομος.
I = \frac{Rage \cdot Coffee}{BrokenConfigs}
Εκείνη τη στιγμή, βλέποντας το VSCode μου να υποφέρει, είπα το ιστορικό: "Fine, I'll do it myself."
Enter: The Web-Based Savior
Αντί να παλεύω με conflicts, local paths και binaries του 1990 που μισούν το modern development, αποφάσισα να φτιάξω κάτι που να είναι sandboxed. Έτσι γεννήθηκε ο Ψευδογλώσσα Interpreter.
- public
- index.html
- src
- core
- tokenizer.js
- parser.js
- executor.js
- package.jsonΔεν χρειάζεται install. Δεν πειράζει το registry. Δεν διαλύει τον C compiler σου. Απλά ανοίγεις τον browser και γράφεις κώδικα. Είναι Web-based, lightweight και κυρίως ΔΕΝ ΕΙΝΑΙ ΤΟ plh10.exe.
Legacy vs The New Way
Αφού το πρόβλημα ήταν η C, ας δούμε τη διαφορά στη γλώσσα του πόνου. Δείτε πώς έτρεχε η ζωή μου πριν (Segmentation Fault) και μετά.
Πριν την αλλαγή, το terminal έδειχνε συχνά αυτό:
$ gcc main.c -o main
Error: 'gcc' is not recognized as an internal or external command.
PATH is currently pointing to: C:\EAP\PLH10\WHY_MEΚαι ιδού η λογική στον κώδικα:
#include <stdio.h>
#include <stdlib.h>
// #include <sanity.h> // Library not found in EAP
int main() {
int patience = 100;
// SCENARIO A: The Legacy Workflow
printf("Attempting to run plh10.exe...\n");
// Προσομοίωση καταστροφής
if (1) {
// Το dependency hell χτυπάει
patience = -2147483648; // Integer Overflow due to stress
// Καταστροφή του GCC environment
// free(gcc_path);
printf("Error: Segmentation fault. Your weekend is corrupted.\n");
return 1;
}
// SCENARIO B: The Web Solution
// Καμία παρέμβαση στο σύστημα. Κανένα malloc.
printf("Opening Web Interpreter...\n");
// system("start [https://eap-online-compiler.vercel.app/](https://eap-online-compiler.vercel.app/)");
printf("Success: Code running. Dev environment safe.\n");
return 0;
}Το project είναι live και open για όλους τους συμφοιτητές που βαρέθηκαν να διαλέγουν ποια γλώσσα προγραμματισμού θα "θυσιάσουν" σήμερα για να κάνουν την εργασία τους.
🔗 Link: Ψευδογλώσσα Interpreter
Γιατί τελικά, το καλύτερο εργαλείο είναι αυτό που δεν χρειάζεται manual 50 σελίδων για να μην ανατινάξει το PC σου.