- Manual-backed Dartmouth BASIC profiles.
Manuals drive the BASIC roadmap. When a manual or standard is found, map it to one explicit compiler dialect, add it to BASIC Manual Map, and only mark it complete after manual-backed fixtures pass.
The first stable release should complete the Dartmouth profiles with local
manual evidence that is already available: First Edition, October 1964 / Second
Edition with CARDBASIC, and Fourth Edition. Missing Dartmouth editions stay
reserved for post-1.0.0 compatibility releases instead of blocking 1.0.0.
dartmouth-basic-1dartmouth-basic-2cardbasicdartmouth-basic-4
See Dartmouth BASIC Profiles for profile boundaries and release stops.
These names are reserved for the known Dartmouth line, but they are not
1.0.0 release requirements. If primary manuals are found, they should be
mapped and scheduled as later compatibility releases unless the project
explicitly reopens the first-stable boundary:
dartmouth-basic-3dartmouth-basic-5dartmouth-basic-6sbasicdartmouth-basic-7dartmouth-basic-ansi
ansi-basicecma-basic-1ecma-basic-2
ecma-basic is intentionally not listed as a public dialect because ECMA-116
defines separate BASIC-1 and BASIC-2 subsets.
structured-basic-pc-trs80
This profile is based on the 1989 South-Western Structured BASIC textbook for
IBM PC compatibles and TRS-80 Models III/4. It is not Dartmouth sbasic.
cdc-basic-v2
This profile is based on Control Data BASIC Language Version 2 for CYBER 170, CYBER 70, and 6000 systems. It needs separate handling for SCOPE, KRONOS, and NOS operating-environment behavior.
altair-basic-1975ibm-pc-basic-110commodore-64-basic-v2commodore-basic-70atari-2600-basic-programmingatari-st-basic-enhancednec-n60-basicnec-n82-basic
These profiles are based on early microcomputer BASIC manuals. Altair BASIC should stay separate from later Microsoft BASIC profiles; 4K, 8K, and Extended BASIC subprofiles need a dedicated compatibility decision. IBM PC BASIC 1.10 should stay separate from QuickBASIC and may later split into Cassette BASIC, Disk BASIC, and Advanced BASIC / BASICA selectors. Commodore 128 BASIC 7.0 should stay separate from Commodore 64 BASIC V2 and generic Commodore BASIC, and needs a vendor reference manual before completion. Commodore 64 BASIC V2 should stay separate from Commodore PET BASIC and Commodore 128 BASIC 7.0, and also needs a vendor reference before completion. Atari 2600 BASIC PROGRAMMING is a constrained cartridge environment and should stay separate from Atari 8-bit BASIC. Enhanced Atari ST BASIC should stay separate from both Atari 8-bit BASIC and Atari 2600 BASIC PROGRAMMING. The SYBEX and Data Becker / Abacus books help with tutorial coverage, GEM usage, graphics, disk handling, command lists, reserved words, and error lists, but the profile still needs the ST BASIC Sourcebook and Tutorial before completion. NEC N60-BASIC is a Japanese NEC PC-6001 profile and needs explicit character-set, source-encoding, keyboard/input, kana/graphics, and machine-specific diagnostics decisions before public compiler support. NEC N82-BASIC is an NEC PC-8300 portable profile and should stay separate from N60-BASIC and N88-BASIC; its LCD, TEXT/TELCOM, memory-bank file, graphics, sound, and machine-specific behavior need explicit support boundaries.
zbasic-1987
This profile is based on the Zedcor ZBasic Interactive BASIC Compiler fourth-edition manual. It should stay separate from Microsoft QuickBASIC, Microsoft BASIC-80, and generic compiled BASIC profiles. The platform appendices for MS-DOS, Apple DOS 3.3, Apple ProDOS, Macintosh, CP/M/Z80, and TRS-80 need an explicit subprofile decision.
quickbasic-101quickbasic-45microsoft-basic-80-50
These profiles are based on distinct Microsoft BASIC-family manuals.
microsoft-basic-80-50 is the BASIC-80 / MBASIC release 5.0-and-later profile
and should stay separate from Altair BASIC, IBM PC BASIC, QuickBASIC, and
generic Microsoft BASIC aliases. quickbasic-101, quickbasic-45, and QBasic
remain separate compatibility profiles.
- Tiny BASIC
- Control Data BASIC
- Altair BASIC
- IBM PC BASIC
- Microsoft BASIC
- Microsoft BASIC-80 / MBASIC
- Structured BASIC PC/TRS-80
- Applesoft BASIC
- Commodore 64 BASIC V2
- Commodore 128 BASIC 7.0
- Atari BASIC
- Atari 2600 BASIC PROGRAMMING
- Enhanced Atari ST BASIC
- NEC N60-BASIC
- NEC N82-BASIC
- Sinclair BASIC
- Commodore BASIC
- BBC BASIC
- TI-BASIC
- Casio BASIC
- Family BASIC
- QB64
- FreeBASIC
- Liberty BASIC
- PowerBASIC
- ZBasic
- QuickBASIC 1.01
- QuickBASIC 4.5
- QBasic
- YABASIC
- Visual Basic (classic)
- COMAL
- Pascal
- Logo
- Forth
- AMOS & Blitz BASIC
- REXX
- Algol 60
- Algol 68
- Modula-2
- Ada
- Delphi / Object Pascal
- COBOL
- Fortran
- dBASE / Clipper / FoxPro
- PL/M
Each dialect frontend should start as its own Rust source file inside
crates/elderheim-parsers/src/languages/. If a frontend grows large, split it
into a language folder with focused files for lexing, parsing, lowering,
diagnostics, and compatibility behavior.
Profiles inside one language family may share files when that keeps the implementation smaller and clearer, but profile-specific behavior must remain explicit and testable.
See Language Release Plan for the planned version track.