Growing India News, world news, nation news, our news, people's news, grow news, entertainment, fashion, movies, tech, automobile and many more..
Wednesday, August 26, 2020
Show HN: PuffinBASIC – A cross-platform modern BASIC interpreter written in Java https://ift.tt/34tjVQM
Show HN: PuffinBASIC – A cross-platform modern BASIC interpreter written in Java GitHub: https://ift.tt/2EumcjJ BASIC (Beginners' All-purpose Symbolic Instruction Code) is a general-purpose high-level language from the 1960s. PuffinBASIC is an implementation of the BASIC language specification. PuffinBASIC conforms most closely to GWBASIC. The purpose of this implementation is to learn how to write interpreters and resurrect an old programming language to work in modern ecosystem. The interpreter is evolving fast and in near future, I wish to apply modern interpreter building techniques to it. How it works? 1. PuffinBASIC's grammar is defined using antlr4. 2. At runtime, the user source code is parsed using antlr4 lexer+parser. 3. After parsing, an intermediate representation (IR) of the source code is generated. A symbol table keeps track of variables, scalars, arrays, etc. objects. 4. A runtime, processes the IR instructions and executes them. Performance PuffinBASIC is an interpreter, and it should not be expected to have very good performance characteristics. Certain operations such as PRINT USING, INPUT, etc. are not optimized for performance. I have not benchmarked PuffinBASIC primitives. That being said, we have written games with graphics in PuffinBASIC is work very well. TESSEL - A 2D Tile Game written in PuffinBASIC Source: https://ift.tt/34yIM5W... Link to YouTube video demo: https://youtu.be/L8xkM-g3Zms Memory PuffinBASIC runs within a JVM and can use as much memory as available for the JVM process. Compatibility PuffinBASIC is mostly compatible with Microsoft's GWBASIC. Graphics is supported using Java 2D graphics. PuffinBASIC will not support assembly instructions. Data Types PuffinBASIC has extended BASIC types and supports Int32, Int4, Float32, Float64, and String. Reference: https://ift.tt/2EumcjJ August 25, 2020 at 02:24AM
Subscribe to:
Post Comments (Atom)
Show HN: Pocket2Linkding – Migrate from Mozilla Pocket to Linkding https://ift.tt/IwYJfju
Show HN: Pocket2Linkding – Migrate from Mozilla Pocket to Linkding With the Mozilla Pocket shutdown coming up in about two weeks, I thought ...
-
Show HN: An AI logo generator that can also generate SVG logos Hey everyone, I've spent the past 2 weeks building an AI logo generator, ...
-
Show HN: Snap Scope – Visualize Lens Focal Length Distribution from EXIF Data https://ift.tt/yrqHZtDShow HN: Snap Scope – Visualize Lens Focal Length Distribution from EXIF Data Hey HN, I built this tool because I wanted to understand which...
-
Show HN: Federated IndieAuth Server implemented as a notebook https://ift.tt/32IC633 April 27, 2021 at 04:37PM
No comments:
Post a Comment