METABYTE
Inapoi la articole

Extraordinary Ordinals: cum matematicienii au făcut compilatorul să numere până la infinit și să nu înnebunească

Încă un mod de a face compilatorul să muncească pentru tine — de data asta cu ajutorul ordinalelor, care arată mai mult ca o vrajă din D&D decât ca un cod.

14 mai 20262 min de citit
Extraordinary Ordinals: cum matematicienii au făcut compilatorul să numere până la infinit și să nu înnebunească

Când un programator obișnuit aude cuvântul „ordinal”, se gândește la ceva din matematica superioară pe care a uitat-o cu succes după facultate. Dar Marvin Borner a decis că e o ocazie perfectă să scrie un compilator care înțelege numere transfinitate. Spoiler: acum codul tău poate intra într-o recursivitate mai adâncă decât tabla ta JIRA.

Ce este mai exact?

Extraordinary Ordinals este un compilator experimental care operează cu numere ordinale (acelea care vin după infinit). Dacă limbajele obișnuite se opresc la int sau BigInt, aici poți declara o variabilă de tip ω (omega) și să o aduni liniștit cu ω+1. Sună a magie? De fapt, e doar un alt mod de a amâna erorile de runtime în faza de compilare.

De ce ar putea fi util?

Dezvoltatorii care au scris vreodată demonstrații de teoreme sau au lucrat cu tipuri dependente vor aprecia: ordinalele permit verificarea formală a programelor cu bucle infinite. Vrei să demonstrezi că while(true)-ul tău se va termina cândva? Specifică un ordinal ca și contor. Adevărul e că dacă greșești, compilatorul poate rămâne blocat încercând să calculeze ω^ω.

Comentariul echipei METABYTE

În timp ce lumea discută despre încă un framework JS, cineva scrie un compilator pentru infinit. Dacă proiectul tău necesită garanții stricte de terminare, te ajutăm — dar probabil că vom evita ordinalele, ca să nu fie nevoie să explici clientului de ce funcționalitatea lui „se blochează pe omega”.

URMATORUL PAS

Ti-a placut abordarea?

Aplicam aceleasi principii in proiectele clientilor: AI, automatizari, produse care nu se sting dupa lansare.