Hasty Briefsbeta

双语

Commodore 64 Basic for PostgreSQL

10 days ago
  • #Commodore 64
  • #Nostalgia
  • #PostgreSQL
  • PL/CBMBASIC允许PostgreSQL运行用Commodore 64 BASIC V2编写的函数,使用了编译成C语言的1982年原始解释器。
  • 其特点包括代码行号从10开始且必需,函数参数在第0至9行作为BASIC变量注入。
  • 包含一个强制C64 BASIC命名规则的验证器,防止变量名包含嵌入式关键字(例如,'TOTAL'包含'TO')。
  • OUT参数的处理方式是在程序执行后从模拟的RAM中读取BASIC变量表。
  • 设备8被映射到数据库,允许使用OPEN、INPUT#、PRINT#等命令来执行SQL语句和读取结果。
  • 错误通过解释器的ERROR向量捕获,提供PostgreSQL错误的同时附带原始BASIC错误代码。
  • 性能基准测试显示,它比PL/Python慢,但比原始硬件快,每次调用有15微秒的重置开销。
  • 限制包括仅支持大写字符串、255个字符的字符串长度限制、不支持NULL值,以及仅限超级用户使用的非受信任语言状态。