[GoScript - Go 코드를 TypeScript로 변환하는 트랜스파일러
GoScript는 Go 코드를 TypeScript로 변환하는 AST 기반 트랜스파일러로, Go의 주요 기능들을 TypeScript 문법으로 매핑하여 백엔드와 프론트엔드 간 코드 재사용을 지원합니다. Goroutine은 async/await 기반 비동기 처리 로 변환되어 브라우저 환경에서도 실행 가능하며, VarRef 시스템을 통해 포인터 참조와 값 전달을 구현합니다. Generics, Reflection, Closure 등 고급 언어 기능도 지원하며, CLI와 API를 통해 변환이 가능합니다.
@akkartik Since #Forth is just so great for super concise code, allow me to add another example, here to transpile (a subset of) Forth into GLSL for livecoding shaders. This one is using my old 2015 CharlieVM and you can find all the example source snippets in the readme here:
https://github.com/thi-ng/charlie
The REPL itself live at:
https://forth.thi.ng/
The attached screen capture shows 4 shader examples (longest one is 12 lines of code)
Transpiler, a Meaningless Word (2023)
https://people.csail.mit.edu/rachit/post/transpiler/
#HackerNews #Transpiler #Meaningless #Word #2023 #Tech #News #Programming
Working across various domains and having to switch programming languages for all of them, reimplement features, has become too much of a mental task. I am seriously considering creating a custom language or at least a transpiler with multiple backends.
Hacker News 的底層換掉了...
#arc #common #forum #hacker #lisp #news #transcompiler #transpiler
Narratika l’antispacc per creare le novelle!
Oggi, ecco un nuovo mio progetto, immaginato al volo e ancor più velocemente iniziato, per motivazioni che rientrano nella logica del sesto corollario alla legge fondamentale di Murphy… Un linguaggio di marcatura (e non “di scripting”!), pensato per creare visual novel, perché ho riflettuto che, volendo tentare di iniziare a crearne qualcuna anche piccolina perché tipo onestamente semplicemente voglio, una delle cose che mi fa incazzare è come i vari linguaggi di scripting incidentalmente rendono tedioso l’effettivo scrivere la storia. 💔
Fortunatamente, a differenza di qualche altra cosa che sto praticamente trascinando da mesi nonostante forse non richieda così tanto lavoro, gli spiriti identificati e classificati da Murphy non si sono eccessivamente accaniti su di me in questo caso, visto che almeno a rilasciare questa prima versione, pur se ancora work-in-progress, ci sono arrivata, giusto con questo fine settimana. (Purtroppo, oramai la mia vita va avanti a suon di “non ci si può mettere a far qualcosa senza che qualcos’altro non vada fatto prima“.) 🥳
L’ho chiamato #Narratika (il nome più decente suggerito da ChatGPT), e ovviamente sta già tutto su https://gitlab.com/octospacc/Narratika o https://github.com/octospacc/Narratika, altrimenti starei a raccontare stronzate ipotetiche; ma no, le cose che faccio io sono fin troppo reali… 😈A livello tecnico, il linguaggio è implementato sotto forma di transpiler, che leggono file con quella sintassi e sputano fuori altro a seconda del caso. Per ora ho implementato quindi due transpiler: uno in Python, che sputa fuori file con la sintassi di Ren’Py da andare poi a mano a mettere nella cartella del gioco che si sviluppa (…non ho ancora capito come potrei fare ad integrarlo come libreria, anziché lasciarlo come programma CLI); e poi uno in JavaScript, pensato invece per Monogatari, un altro motore, che si aggiunge banalmente come libreria. 🗿
Tralasciando come faccia molto ridere il fatto che me ne esco pubblicando ben 2 transpiler proprio stamattina, che sarebbe il Trans Day of Visibility, il punto chiave di questo linguaggio non è niente di complesso, ma è anzi qualcosa di talmente stupido da lasciarmi negativamente stupita del fatto che nessuno ci abbia mai pensato prima: poter scrivere visual novel senza le torture varie che escono puntualmente fuori, quando si ha da scrivere tanto testo così strutturato facendo la lotta contro la sintassi dettata da un linguaggio di programmazione… 🤥
Detto in breve, qui non si bestemmia mai. Il testo dei dialoghi, o della narrazione, non si deve scrivere dentro virgolette, ma si scrive e basta (seguito solo dal prefisso con il simbolo adeguato, che indica chi parla). Visto che non ci sono di mezzo simboli normalmente usati nel parlato a racchiudere il parlato, giustamente non si deve smattare con il farne eventuale escaping. E poi, si può assumere che qualsiasi riga del file che non inizia con uno di quei simboli speciali sia implicitamente dell’ultimo tipo esplicitato, e quindi dividere il testo in battute e paragrafi è immediato quanto scrivere un qualunque documento umano. Infine, visto che, oltre a tutto questo, nemmeno l’indentazione è obbligatoria (e francamente non è necessaria per mantenere la leggibilità), diventa facilissimo scrivere gli script pure da mobile! 🗡️
Stavolta penso si possa godere tutti, insomma. Per gli approfondimenti rimando ovviamente al README, ma già nella foto qui si vede un po’ la sintassi del linguaggio (attenzione attenzione lavori in corso…), e un esempio di come questa viene convertita al formato di Ren’Py per l’esecuzione, rimanendo comunque perfettamente leggibile e modificabile. Penso che la prima visual novel che scriverò e rilascerò con questo affare, in realtà, sarà proprio una di demo per il linguaggio… 🤫
These are our cats, #OpheTheLoaf and #MayalaranTheCat. Ophelia was originally my partner's, we live together full time now, and are an integrated family Fun facts about Ophelia: * She is missing a tooth, so her lip sometimes gets stuck open in a cute way * She has an "activation noise" that sounds kinda like a pigeon * She will often do 10/10 loafs, hence the nickname Some facts about Maya: * Her favorite hobby is judging the neighbors * She is very anxious * She has an incredibly dainty play style * She has a series of increasingly ridiculous nicknames: Mayalaran -> Maya -> Mayo -> Aioli -> Au Jus (Follow the hashtags if you want just my cats) #CatsOfMastodon #CatsOfFedi (📎8)
The Dark Magic of .NET: Exploring Harmony Library in 2025
https://www.jocheojeda.com/2025/01/13/the-dark-magic-of-net-exploring-harmony-library-in-2025/
#dotNET #Csharp #Harmony #Metaprogramming #Reflection #RuntimePatching #MethodPatching #PerformanceMonitoring #LegacySystems #ILCode #Transpiler #PrefixPatches #PostfixPatches #SoftwareDevelopment #CodeModification #Debugging #SystemMonitoring #TechnicalBlog #ProgrammingTutorial #DarkMagic #CodeEnhancement #DeveloperTools #LOBApplications #SoftwareArchitecture #MethodInterception #CodeMagic