Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.


JBasic / News: Recent posts

JBasic 2.8 adds structured store, 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

Posted by Tom Cole 2010-12-08

JBasic 2.6 adds Java object support

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

Posted by Tom Cole 2009-04-07

Better Performance, New Features in JBasic 2.5

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

Posted by Tom Cole 2009-02-07

JBasic 2.4 bug fix and feature release

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

Posted by Tom Cole 2008-12-01

JBasic 2.3 updates multi-user mode, XML

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.

Posted by Tom Cole 2008-06-28

JBasic 2.2 offers new bug fixes, performance improvements.

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.

Posted by Tom Cole 2008-05-12

JBasic 2.1 improves quality and performance

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

Posted by Tom Cole 2008-01-24

JBasic 2.0 - the Multiuser Release

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.

Posted by Tom Cole 2007-11-02

JBasic 1.7-1 offers bug fixes, new syntax elements

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

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

Posted by Tom Cole 2007-08-29

JBasic 1.6-6 updates object support

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.

Posted by Tom Cole 2007-03-29

JBasic 1.6-5 introduces incremental improvements


This release improves performance 10-20% over the previous release for typical programs by improving internal data structure management significantly.


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

Posted by Tom Cole 2007-01-30

JBasic 1.6-4 increases performance 25%

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.

Posted by Tom Cole 2006-11-07

JBasic 1.6-3 adds support for mutiple threads

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.

Posted by Tom Cole 2006-10-15

JBasic 1.6-2 adds initial JDBC support

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.

Posted by Tom Cole 2006-09-29

JBasic 1.6 adds runtime debugger

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.

Posted by Tom Cole 2006-09-05

JBasic 1.5-6 Release

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.

Posted by Tom Cole 2006-08-31

JBasic 1.5-5 speeds compile time up to 20%

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.

Posted by Tom Cole 2006-07-13

Jbasic 1.5-3 Results in 2X performance gains

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

Posted by Tom Cole 2006-05-23

JBasic 1.5 Released

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

Posted by Tom Cole 2006-03-26

1.4-3 release brings full bytecode support

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.

Posted by Tom Cole 2006-02-13

Significant performance improvements.

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.

Posted by Tom Cole 2006-02-04

First public release

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

Posted by Tom Cole 2006-01-20