• Please review our updated Terms and Rules here

PLASMA 2.0

resman

Veteran Member
Joined
Jan 1, 2014
Messages
605
Location
Lake Tahoe
PLASMA (Proto Language ASeMbler for All) version 2.0 released

After plugging away at this for over 5 years, there needed to be a push to wrap up the remaining issues and release.

What is PLASMA?

PLASMA is a medium level programming language targeting the 8-bit 6502, with 16-bit support for the 65802/65816 processors. Historically, there were simple languages developed in the early years of computers that improved on the tedium of assembly language programming while still being low level enough for system coding. Languages like B, FORTH, and PLASMA fall into this category.

PLASMA is a combination of operating environment, virtual machine, just-in-time compiler and source-code compiler matched closely to the 6502 architecture. It is an attempt to satisfy a few challenges surrounding code size, efficient execution, small runtime and flexible code location. By architecting a unique bytecode that maps nearly one-to-one to the higher-level representation, the compiler can be very simple and execute quickly on the Apple II and /// for a self-hosted environment. There is a cross compiler for developing in modern unix-like environments. A modular approach provides for incremental development and code reuse. The syntax of the language is heavily influenced by assembly, Pascal, and C. The design philosophy was to be as simple as feasible while retaining flexibility and semantic clarity. You won't find any unnecessary or redundant syntax in PLASMA.

You can find all the code, documentation, and disk images on GitHub: https://github.com/dschmenk/PLASMA

More documentation about the VM and libraries on the Wiki: https://github.com/dschmenk/PLASMA/wiki

And a short video series for a simple introduction and demonstration of PLASMA:

Enjoy!
 
I guess you should have named it RESMAN 😛

How does the performance compare to other languages?
 
PLASMA is quite fast. Faster than any other interpreted implementation. It's byte code dispatch is much faster than Apple Pascal's p-code interpreter and faster than any of the figForth based Forth implementations. Assembly would be fastest. C code would depend on the type of code and quality of the compiler and if PLASMA's JIT compiler comes into play. Some test run by the PLASMA port to the BBC computer had it on-par with whatever C compiled they used. But PLASMA code is also highly compact, meaning you can get more functionality (or even possible) than other languages. And you get it in a self hosted tool (that's also faster than any other self hosted compiler).

Here is a comparison of the older version 1 of PLASMA alongside other languages. Version 2 is substantially faster than version 1: https://dwheeler.com/6502/

With the included libraries (usually combination of PLASMA and 6502 code), you can easily write hires video games:
 
Back
Top