Skip to content

Latest commit

 

History

History
182 lines (147 loc) · 5.76 KB

File metadata and controls

182 lines (147 loc) · 5.76 KB

Roadmap

Current Supported Language Family

  • Manual-backed Dartmouth BASIC profiles.

Current Rule

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.

Pre-1.0 Active Profiles

  • dartmouth-basic-1
  • dartmouth-basic-2
  • cardbasic
  • dartmouth-basic-4

See Dartmouth BASIC Profiles for profile boundaries and release stops.

Reserved Dartmouth Profiles

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-3
  • dartmouth-basic-5
  • dartmouth-basic-6
  • sbasic
  • dartmouth-basic-7
  • dartmouth-basic-ansi

Planned Standard BASIC Dialects

  • ansi-basic
  • ecma-basic-1
  • ecma-basic-2

ecma-basic is intentionally not listed as a public dialect because ECMA-116 defines separate BASIC-1 and BASIC-2 subsets.

Planned Textbook / Instructional BASIC Profiles

  • 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.

Planned Timesharing BASIC Dialects

  • 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.

Planned Early Microcomputer BASIC Profiles

  • altair-basic-1975
  • ibm-pc-basic-110
  • commodore-64-basic-v2
  • commodore-basic-70
  • atari-2600-basic-programming
  • atari-st-basic-enhanced
  • nec-n60-basic
  • nec-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.

Planned BASIC Compiler Profiles

  • 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.

Planned Microsoft BASIC Profiles

  • quickbasic-101
  • quickbasic-45
  • microsoft-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.

Future Dialects And Languages

  • 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

Implementation Rule

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.