Okay, so basically no one even knows this site is here. However, I used to maintain the JBasic.net domain pointing to a private web page where I blogged about that I was doing... that got toasted when Apple removed their .Mac web page feature, and I never put it back properly until now.
So JBasic.net now redirects here to the SourceForge page where I'll continue to update what's going on.
For the last two years, I've continued to tinker with JBasic fixing rough edges and extending the documentation. The major features in this upcoming release are:... read more
JBasic 2.8 has taken longer than expected, but hopefully is worth the wait. Key new features in this release include:
* Socket programming in JBasic. A simple web server example is included.
* Structured table data types, allowing you to write code to handle subsetting, joining, and sorting tables of data quickly.
* A simple macro facility allows creation of program templates.
* New optional syntax for more readable programs.... read more
JBasic 2.6 adds major new support for Java object interactions. This means that you can create and manipulate Java objects directly from JBasic programs. You can script JBasic, or use JBasic as the scripting agent.
Additional updates with this release include support for named lock objects to coordinate multiple threads, the ability to execute arbitrary statements or programs as threads, and the ability to call programs as functions. And there are major performance upgrades in core functions like READ/DATA/REWIND.... read more
The JBasic 2.5 release is now available on the project download page. This includes significant performance gains (20% or more in many cases) as well as lots of bug fixes. New with this release are user-requested language features such as multi-line IF..THEN..ELSE constructs and SUB local subroutine definitions. This increases compatibility with other BASIC dialects. Also updated in this release are features for supporting more sophisticated BINARY file I/O so you can write JBasic programs to access most native data types available on your system.... read more
JBasic 2.4 reflects both bug fixes and new features - one of which was a request from a user! Here are some of the highlights:
* Assignments can now be more complex; the value on the left side of the equals sign can contain arbitrarily complex references to array subscripts, record members, etc.
* Extensions to the internal bytecode assembler mean you can use the COMPILE() function to compile arbitrary JBasic statements, and use the ASM USING() statement to re-assemble them into executable code.... read more
JBasic contains dozens of quality fixes, but the primary improvements are improvements in the design and implementation of multi-user (student/instructor) mode and the addition of XML support in JBasic. See the release notes for more details.
This release is tested with Java 1.6, which offers substantial performance gains over Java 1.5. The internal architecture of JBasic has been modified to take better use of Java exceptions which also improves performance and gives better error messaging in many cases.
The online documentation has also been updated to reflect new syntax constructs and generally improved readability.
As always, the "binary" distribution contains just the JAR and a PDF of the user's guide. The "source" distribution contains the full buildable Eclipse project for JBasic.
JBasic 2.1 is a "Fit and Finish" enhancement to the 2.0 release. Notable changes in this release include:
1. Bug fixes.
2. More control over variable and record field data types.
3. Optimizer enhancements give many programs 5-10% speedup
4. Make arrays and strings both supported by LEFT, RIGHT, etc.
5. Misc enhancements to multi-user support (see change log)
6. Updated users guide.... read more
In addition to many many bug fixes and performance tweaks, the biggest change in JBasic 2.0 is the support for multiuser mode. This is intended for a classroom or similar setting where a single instance of JBasic can be used to serve multiple users who connect via a Telnet protocol.
This is mostly a bug-fix release. See the change log for details. Major areas of bug-fixing include:
1. Improved error detection and reporting during compile
phase.
2. Recursive JBasic programs now work correctly.
3. FOR .. EACH syntax allows index to loop over a list of values
or array elements. FOR..DO allows one-line loops, even in
command line mode.
4. New data type declaration statements like INTEGER and
STRING make programs more self-documenting.... read more
JBasic 1.6-6 contains numerous bug fixes and updated an updated user's guide. Additionally, object support has been updated to handle subclassing more easily and allow object container hierarchies in addition to class hierarchies to make field references more useful.
PERFORMANCE
This release improves performance 10-20% over the previous release for typical programs by improving internal data structure management significantly.
FEATURES
A major element of this sub-release is continued support for GW-BASIC and related dialects. For example, the addition of the STOP and END statements, as well as CLOSE semantics that close all open files where added to aid in porting other programs, as well as numerous new runtime language functions.... read more
The newest release of JBasic features numerous bug fixes and a few new features, but the big news for users is the greater-than-25% performance improvement for nearly all JBasic programs.
This release includes the addition of initial thread support. JBasic programs can be factored such that any CALL to a procedure can run on a separate thread. A file type of QUEUE supports process-wide named message queues.
JBasic 1.6-2 adds the ability to use the OPEN statement to open a DATABASE file, and use the GET record semantics to read result sets from arbitrary SQL queries against that JDBC database.
The new JBasic 1.6 release commemorates the addition of a debugger to the runtime environment.
This debugger lets the program author single step programs, examine and change variables, display runtime data like call stacks, and set breakpoints.
This release has three main goals.
1. Improved compatability with other dialects of BASIC, particularly in file I/O statements and in function names
2. Improved optimizer behavior for integer-intensive programs. This includes constant folding and a few new bytecodes added to handle integer-specific cases of generalized instructions.
3. Numerious bug-fixes, targeted at preventing the user from making "rookie" mistakes.
Changes in low-level compiler elements means that JBasic programs now compile 15-20% faster than before. This means shorter startup-time and faster access to large JBasic programs.
The newest release of JBasic, 1.5-3, results in up to 2x performance improvement for many jobs, including the provided benchmark test which is floating-point intensive as well as making heavy use of the intra-program calling features.
This release also includes new "introspection" features that let a JBasic program examine the state of the running instance of a JBasic object, the programs in that instance, etc.... read more
This release represents a significant cleanup of the code base, another major round of bugfixing, and much better multi-instance support for programs using JBasic internally.
New language features include support for historical BASIC features like READ/DATA and PRINT USING, as well as enhanced control over the runtime environment (verb aliases, etc.) supported using arrays of records.
JBasic still intended to be used as a command-line BASIC interpreter, or embedded as a scripting language in your Java application... give it a try!... read more
Release 1.4-3 is now available. With this release, JBasic programs are fully compiled to bytecode representation, significantly improving performance, particularly in programs involving large iterations of looping.
Dozens of bug-fixes are also in this release, along with updated JavaDoc and online help.
JBasic 1.4_2 has just been released. This updates the bytecode compiler to be significantly faster. The online help is more complete and accurate as well.
I've been tinkering with JBasic for two years in an on-again, off-again fashion. After getting set up on SourceForge, I've finally gotten my private copy re-synched with the CVS version after quite a while off.
As such, it's time for an actual release. The source package contains everything, and it's meant to be imported into Eclipse, which is my main Java development environment (Version 3.1 as of this writing). ... read more