Skip to main content

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 01:54AM

Comments

Popular posts from this blog

Show HN: AI Generated Short Video https://ift.tt/3iS1sRE

Show HN: AI Generated Short Video Hey everyone, I have always wanted to content. I enjoy creating videos and watching other's creations! Being a programmer, I decided to create an AI pipeline which can create textual scripts and churn out thousands of videos / blogs on a daily basis given any topic. This is my first video and I would appreciate any comments and suggestions regarding it but I am particularly interested in hearing about tips and tricks / content format which can be followed to make the such video more fun and intuitive to watch. Also looking for advice if this can be monetised maybe saas or ads or something completely different. I would also want to know if anyone of you would be interested in such an AI tool. The Video: https://www.youtube.com/watch?v=1J_DOIPGKsw Specifically, what I wanted to ask: What are the specific things you liked and what you didn't. Would there have been a better format for me to have made this video to deliver the message more effective...

Show HN: AWS-Powered Rube Goldberg Machine https://ift.tt/2UId1C2

Show HN: AWS-Powered Rube Goldberg Machine AWS has so many services—like more than most of us can name. What are some creative ways you can stitch them together to accomplish simple tasks in the most roundabout of ways? Get creative! This isn't about being practical! Here's a theoretical example of how to create a GIF! (Steps 4 through 998 are left as an exercise for creative readers!) 1. Add a new AWS IAM user, gif-creator, where each frame that will be part of the final GIF is base64 encoded and included as tag to the IAM user. 2. This triggers a CloudTrail event to be logged and published to Simple Notification Service. 3. Upon receiving this event, a lambda gets triggered that builds a Docker container that simply scans your domain for new DNS records. Additionally, the lambda spins up an entire Elastic Kubernetes Service (EKS) cluster with that Docker container. . . . 999. You now have a GIF in your inbox! April 6, 2020 at 02:10AM