Human vs Compiler: Πώς το plh10.exe με έκανε να γράψω τον δικό μου Interpreter

PUBLISHED: 2025-11-30

Current Session Stats

Panic Level: 95%
Caffeine
8 cups
⏱️
Time Spent
48 hours

Υπάρχει ένας άγραφος νόμος στο 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.

🚨Το Zero-sum Game του Φοιτητή
  • Θες Ψευδογλώσσα; Χάνεις την 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 για όλους τους συμφοιτητές που βαρέθηκαν να διαλέγουν ποια γλώσσα προγραμματισμού θα "θυσιάσουν" σήμερα για να κάνουν την εργασία τους.

ℹ️Δοκιμάστε το Live

🔗 Link: Ψευδογλώσσα Interpreter

Γιατί τελικά, το καλύτερο εργαλείο είναι αυτό που δεν χρειάζεται manual 50 σελίδων για να μην ανατινάξει το PC σου.