,THE ,,ALB ,TYPE,SCRIPT BACKEND ,,ALBW COMPILES ,ADA,LOGIC ,,BASIC INTO A SELF-CONTAINED ,TYPE,SCRIPT PROGRAM THAT RUNS IN ANY BROWSER OR UNDER ,NODE4JS4 ,IT IS THE BACKEND THAT MAKES AN ,,ALB GAME A WEB PAGE3 CANVAS GRAPHICS1 A REAL CONSOLE1 CHIPTUNE AUDIO1 FILES1 AND THE FULL LOGIC ENGINE ALL INSIDE A SINGLE EMITTED 4TS FILE4 ALBW GAME4ALB --BUILD WEB.-GAME_/GAME4TS TSC GAME4JS "6 INDEX4HTML "6 TSCONFIG4JSON ,THE PIPELINE ,UNLIKE THE STREAMING EMITTERS BEHIND ,,FASM AND ;,C1 ,,ALBW'S EMITTER TAKES THE WHOLE ,,AST IN ONE CALL ,COMPILE.-,TO.-,FILE "<,ROOT 3 ,,AST.-,NODE"> AND WALKS IT DIRECTLY3 IT OWNS A SYMBOL TABLE1 SCOPES NAMES "<,SAFE.-,,JS.-,NAME1 ,SCOPED.-,NAME">1 EVALUATES CONSTANTS AT EMIT TIME1 AND EMITS ,TYPE,SCRIPT SOURCE4 ,DIFFERENT ARCHITECTURE1 SAME LANGUAGE4 ,FLAG ,WHAT IT DOES -O @ ,OUTPUT 4TS PATH " --OUTDIR @ ,OUTPUT DIRECTORY --TSC ,ALSO RUN TSC 4TS 4JS --TARGET @ ,TYPE,SCRIPT TARGET3 ES#E1 ES#BJBJ "1 ESNEXT --BUILD1 -;B ,FULL BUILD3 TRANSPILE "6 TSC "6 INDEX4HTML SHELL --LIBRARY1 -;L ,SHARED MODULE BUILD NO ,,HTML SHELL " --METRICS1 -;M --WALKER1 -;W --QUIET1 -;Q ,METRICS ,,AST DUMP SILENCE ,A --BUILD FOLDER IS A COMPLETE1 OPENABLE WEBSITE3 THE EMITTED 4TS1 A GENERATED TSCONFIG4JSON "1 AND AN INDEX4HTML THAT LOADS THE SCRIPT AS A PLAIN SCRIPT OR AN ,,ES MODULE1 DEPENDING ON THE PROGRAM4 ,A COMPUTER INSIDE A FILE ,THE GENERATED FILE IS NOT A THIN TRANSLATION IT EMITS AN ENTIRE RUNTIME MACHINE1 EXPRESSED AS TYPED ARRAYS SO THE ,,JIT KEEPS IT FAST3 CONST ALB,KEYS "7 NEW ,UINT#H;,ARRAY"<#EAB">2 _/_/ KEYBOARD STATE CONST ALB,MOUSE,BUTTONS "7 NEW ,UINT#H;,ARRAY"<#H">2 CONST ALB,VAS "7 NEW ,INT#CB;,ARRAY"<#FEECF">2 _/_/ VIRTUAL ADDRESS SPACE CONST ALB,GC,ALIVE "7 NEW ,UINT#H;,ARRAY"<#AJBD">2 _/_/ OBJECT GRID1 ALIVE FLAGS CONST ALB,GC,REFS "7 NEW ,UINT#AF;,ARRAY"<#AJBD">2 _/_/ REFCOUNTS CONST ALB,GC,CHILD,A @& ALB,GC,CHILD,D _/_/ FOUR CHILD LINKS PER NODE ,IT IS THE SAME ARCHITECTURE AS THE ;,C AND ,,FASM#AF ,DUMPTRUCK SAME NODE GRID1 SAME REFCOUNT CONTRACT PORTED TO THE SUBSTRATE ,JAVA,SCRIPT GIVES YOU3 ,UINT#H;,ARRAY AND ,INT#CB;,ARRAY INSTEAD OF STRUCTS4 - ,SIZED INTEGERS1 EMULATED ALB,U#H_/ALB,U#AF_/ALB,U#CB MASK2 ALB,I#H_/ALB,I#AF_/ALB,I#CB SIGN-EXTEND4 ,,ALB'S SIZED TYPE SYSTEM BEHAVES CORRECTLY ON A LANGUAGE WITH ONLY NUMBER - ,,PURE1 PACKED INTO ONE F#FD ALB,PURE,PACK ENCODES AN EXACT RATIONAL " INTO A SINGLE ,JAVA,SCRIPT NUMBER - ,DIVISION SEMANTICS ALB,DIV_/ALB,MOD TRUNCATE LIKE INTEGER DIVISION SHOULD2 DIVIDE-BY-ZERO YIELDS #J RATHER THAN CRASHING A BROWSER TAB - ,INTEGER POWERS ALB,POW,INT DOES EXPONENTIATION BY SQUARING1 THE WAY YOU TEACH IT - ,A WORKING LOGIC ENGINE ALB,FACT FACT STORE PLUS ALB,REL RELATION TABLES AND ALB,RULE"9 RULE RECORDS WITH BODIES " ,PROLOG1 IN THE BROWSER ,THE CONSOLE OVERLAY ,,PRINT IN A BROWSER HAS NOWHERE TO GO SO ,,ALBW BUILDS ONE4 ,THE EMITTED RUNTIME INJECTS A CONSOLE3 A @ CONTAINING A @1 MONOSPACE ON _?#JEJEAA1 THAT PINS ITSELF TO THE BOTTOM #DJ.0 OF THE VIEWPORT WHEN A CANVAS IS ACTIVE "3 FUNCTION ALB,WRITE,TEXT" _< @& ALB,TEXT,ROWS. "7 PADDED4SLICE"<#J1 COL"> "6 CH "6 PADDED4SLICE" @& _> ,UNDERNEATH THE DIV IS A CHARACTER-GRID TEXT MODEL ALB,TEXT,ROWS1 AN X_/Y CURSOR1 PAD,END FOR SPARSE WRITES SO ,,LOCATE-STYLE TEXT BEHAVES LIKE A REAL TERMINAL1 NOT LIKE CONSOLE4LOG4 ,,,MODE NO CONSOLE,' OR THE --NO-CONSOLE PATH DISABLES IT FOR PROGRAMS THAT WANT ONLY GRAPHICS4 ,THE FRAME LOOP EVENTS ARE REAL ,,ALB'S EVENT-DRIVEN MODEL MAPS DIRECTLY ONTO THE BROWSER'S3 FUNCTION ,,ALB.-,RUN,FRAME" _< IF "<6ALB,RUNNING"> _< ,,ALB.-,PROGRAM,SHUTDOWN"<">2 RETURN2 _> REQUEST,ANIMATION,FRAME"<,,ALB.-,RUN,FRAME">2 IF " RETURN2 IF " RETURN2 TRY _< ,,ALB.-,,PREPARE.-,,FRAME"<">2 ,,ALB.-,,ON.-,,TICK"<">2 ,,ALB.-,,ON.-,,PAINT"<">2 _> CATCH " _< ,,ALB.-,,FATAL"2 _> _> REQUEST,ANIMATION,FRAME DRIVES THE LOOP2 ,,ON ,,TICK AND ,,ON ,,PAINT BECOME LITERAL EMITTED FUNCTIONS2 ,,DELAY IS A DEADLINE CHECK2 FRAME-RATE THROTTLING IS A COMPARISON4 ,A ,,BASIC EVENT LOOP AND A BROWSER EVENT LOOP TURN OUT TO BE THE SAME IDEA WEARING DIFFERENT CLOTHES4 ,GRAPHICS AND SOUND - ,CANVAS ,H,T,M,L,CANVAS,ELEMENT "6 ,CANVAS,RENDERING,CONTEXT#B;;,D1 BASE FRAMEBUFFER #CBJ#BJJ "1 SCALED TO THE WINDOW WITH CORRECT MOUSE-COORDINATE TRANSFORM1 AND A COLOR ,,LUT " - ,COLORS ALB,COLOR,TO,CSS UNPACKS A PACKED ,,RGBA U#CB INTO RGBA"<;R1;G1;B1A"> THE SAME #JX,A,A,B,B,G,G,R,R VALUE EVERY BACKEND UNDERSTANDS - ,,PC SPEAKER CHIPTUNE ALB,PC,SPEAKER,TONE DRIVES A ,WEB,AUDIO SQUARE-WAVE OSCILLATOR WITH AN ATTACK-HOLD-RELEASE GAIN ENVELOPE3 REAL RETRO BEEPS1 POLYPHONIC VIA ALB,ACTIVE,MUSIC,VOICES " PAIRS1 REAPED ON ENDED"> - ,MUSIC ,,ALB.-,,PLAY.-,,MUSIC.-,,FROM FETCHES AN ,,ALB SCORE FILE AND PLAYS IT THE NOTATION SURVIVES THE JOURNEY TO THE WEB ,FILES IN A BROWSER " ,BROWSERS CAN'T OPEN FILES SO THE BACKEND EMITS A VIRTUAL FILE TABLE3 #FD HANDLES " OVER A ALB,SAVE,STORE OBJECT1 WITH REAL ,,ALB.-,OPEN_/,READ_/,WRITE_/,SEEK_/,CLOSE SEMANTICS4 ,WRITES PERSIST INTO THE STORE ON CLOSE4 ,THEN THE CLEVER BIT THE SAME EMITTED FILE DETECTS ,NODE4JS3 CONST NODE,PROCESS "7 GLOBAL,THIS4PROCESS2 IF " BUF "7 EVAL"<'REQUIRE'">"<'FS'">4READ,FILE,SYNC"2 ,IN A BROWSER1 FILES ARE VIRTUAL4 ,UNDER NODE GAME4JS1 THEY'RE REAL ONE SOURCE1 TWO WORLDS1 LITERALLY4 ,THE SERIOUS MACHINERY "9"9,A CAPABILITY FIREWALL"9"9 .*ALB,FIREWALL,STACK.* WITH PER-FRAME READ_/WRITE ALLOW TABLES ON FILE NAMES2 "9"9A NETWORK SNIFFER"9"9 .*,,ALB.-,,SNIFFER.-,,DEFINE.* BUILDS LIVE OBJECTS WITH PROTOCOL1 PORT1 BUFFER SIZE1 AND AN ERROR CELL FOR .*,,AST.-,NETWORK.-,SNIFFER.-,DECL.*2 "9"9SOCKETS"9"9 CHANNEL KEYS LIKE .*,,ALB.-,,NET.-@.-@.*2 "9"9FETCH"<">"9"9 WIRED INTO THE RUNTIME2 "9"9.*ALB,PROMPT,CONTEXT.*"9"9 THE LAST #AH CONSOLE LINES ASSEMBLED AS CONTEXT FOR ,,AI-PROMPT FEATURES4 ,IT EVEN LEARNS ,THE LANGUAGE-LEVEL LEARNING STATEMENTS WORK HERE TOO3 ,,ALB.-,,NN.-,,CREATE1 ,,ALB.-,,NN.-,,SEED1 ,,ALB.-,,NN.-,,INFER1 ,,ALB.-,,NN.-,,TRAIN1 ,,ALB.-,,NN.-,,ACT1 AND ,,ALB.-,,MARKOV.-,,PREDICT ARE EMITTED AS ,TYPE,SCRIPT FUNCTIONS FOR ,,NEURAL ,,TOPOLOGY1 ,,TRAIN ,,NETWORK1 ,,INFER ,,NETWORK1 ,,MARKOV ,,MODEL1 AND ,,PREDICT ,,MARKOV4 ,DETERMINISTIC WEIGHT SEEDING MEANS A PROGRAM'S NET STARTS IDENTICALLY IN A TYPED-ARRAY BROWSER RUNTIME AS IT DOES IN THE X#HF-#FD ASM OR ;,C BUILDS TRAIN A MODEL ON THE DESKTOP1 DEPLOY IT TO A PAGE4 "<,ONE LEARNING FEATURE STAYS NATIVE3 ,,EMOTION IS ,,FASM-ONLY4"> ,MODES AND LIBRARY EXPORTS - ,,MODE ,,DOCUMENT IN THE SOURCE FLIPS THE GENERATED INDEX4HTML FROM THE DARK GAME SHELL TO A LIGHT DOCUMENT SHELL THE SAME LANGUAGE EMITS GAMES OR PAGES - ,,EXPORT.-,,ES _/ ,,EXPORT.-,,WASM WITH --LIBRARY EMIT A MODULE-AWARE BUILD " ,,ALB PROGRAMS COMPILED INTO IMPORTABLE WEB LIBRARIES2 THE FOREIGN-EXPORT TABLE IS SIZED TO MATCH ALBT'S ,MAX.-,FOREIGN.-,EXPORTS SO EVEN THE FULL-ENGINE LIBGAMEDECK FAADE FITS ONE WEAVE ,UNDER THE HOOD ,EMIT.-,NATIVE.-,TYPE,SCRIPT IS @9#G1JJJ LINES OF ,,SPARK-ANNOTATED ,ADA SECOND IN SIZE ONLY TO THE ,ADA EMITTER DRIVEN BY ALBW4ADB1 WHICH HANDLES FLAGS1 THE TSCONFIG WRITER1 THE ,,HTML SHELL WRITER1 AND THE TSC_/PACKAGE DANCE4 ,WHERE THE NATIVE BACKENDS STREAM TOKENS INTO BUFFERS1 THIS ONE IS AN ,,AST INTERPRETER THAT PRINTS ,TYPE,SCRIPT3 IT SEES THE WHOLE PROGRAM BEFORE IT WRITES A LINE4 ,SEE ALSO - ,ADA,LOGIC ,,BASIC THE LANGUAGE - ,,ALB ;,C BACKEND ,,ALB ,,FASM BACKEND ,,ALB ,,FASM#AF BACKEND THE NATIVE SIBLINGS - ,HISTORY OF ,PROGRAMMING ,JAVA,SCRIPT'S CHAPTER IN THE ARC - ,Z#C ,MANCHESTER ,BABY THE WEB PAGE AS A MACHINE1 THEN AND NOW ,REFERENCES #A4 ,,ALB ,HANDBOOK ALB-LANG4ORG_/HANDBOOK THE LANGUAGE REFERENCE FOR ALL BACKENDS4 #B4 ,,ALB ,TECHNOLOGY PAGE ALB-LANG4ORG_/TECHNOLOGY THE SIXTEEN-BACKEND MATRIX4 #C4 ,,ALB SOURCE GITHUB4COM_/ROCKYOLIVER#DED_/,ADA,LOGIC-,,BASIC-,,ALB-,PROGRAMMING-,LANGUAGE THE EMITTER SOURCES ARE ,APACHE #B4J4