Joseph G. Weissman

- Java/C/C++ Interface Engineer -

Exa

leave a comment »

 

Exa: notes for a new programming language

introduction

The goal of the Exa language is to provide support for tightly controlled metaprogramming. It will likely take shape as an interpreted programming language, related to LISP and perhaps distantly to MODULA-1. 

The most fundamental distinction in the Exa language is between names and values. A value can be any valid Exa expression which resolves to a valid data type (i.e., a pure, a numeric, a user-created object — even a name, a program, etc.) A name represents an alias to a value; multiple names can point to the same value/object.

data types

pure — by default carries no value, but can be assigned any value whatsoever (even a function, program, etc.) 

numeric — a flexible int/float class; by default has int precision but will smoothly rearrange itself to accept float values

literal — a string class, consisting of a list of valid characters terminated by the null character “~”

lexeme — a lexical element for inline language construction

syntagm — a syntactical element for generational grammars

language — a multipurpose object for for formal language specification and procedural generation

name– the first meta-type; carries an alias or name of a variable in memory 

datatype– another kind of metatype: a type objects carries a data type. (all variables have a type() method which returns their type as a type object)

expression — a formula expressed mathematically. all valid lines of Exa code are expressions. within a constructed expression, variables  can be embedded using square brackets, e.g: “[a]^2 + [b]^2 > [c]^2” ; “[e] = [m][c]^2”; etc. 

method — a sequence of valid Exa expressions 

object – a user-created data structure, consisting of an arbitrary collection of any data types

program – a collection of Exa objects and/or methods 

package– a collection of related valid Exa programs
Read the rest of this entry »

Written by Joseph Weissman

January 14, 2009 at 4:06 am

Worlds

leave a comment »

picture-2

I have recently undertaken the creation of a 3-d graphics extension to the Processing core. I intend it to be general purpose, but for now it will likely be tailored to the presentation of a new game I’m working on based loosely on Galaxy Wars.

 

It is called Worlds, and you can follow its development here.

Written by Joseph Weissman

December 21, 2008 at 9:28 pm

Posted in java, processing, video games

Tagged with , ,

DotWars Preview

with one comment

 

Coming soon!

Written by Joseph Weissman

July 8, 2008 at 4:56 am

SimRPG

leave a comment »

 

 

More soon..

Written by Joseph Weissman

June 30, 2008 at 4:16 am

Asteroid Wars

leave a comment »

An asteroids-style space shooter.

If you’d like to play, you can download the Windows executable (hosted at MediaFire.)

(Built in Java with Processing.)

Written by Joseph Weissman

May 30, 2008 at 3:47 pm

Galaxy Wars

leave a comment »

An arcade-style space-conquest merging RTS with RPG elements.

Midway through a fierce interstellar battle:

An early version:

(Click for larger screenshots)

Written by Joseph Weissman

May 29, 2008 at 10:44 pm

Cosmic RPG

leave a comment »

Concept

The basic idea here is to procedurally generate an RPG universe complete with locations, stories and characters. Every time you play it produces a completely new “cosmos” with new stars, planets, cities, neighborhoods, buildings and people.

Below are several random level one characters and a few examples of the UI (with procedurally-generated flavor text describing the location.)

User Interface

Sample Character

Name: Joe
Class: Rogue (lvl 1)

Alignment: Modern Lawful Evil

Current Weapon: Rose Bow
Current Armor: Light Armor

Intelligence: 5 Strength: 2 Constitution: 4
Dexterity: 3 Wisdom: 4 Charisma: 4

Savvy: 5 Charm: 2 Intimidation: 5
Intuition: 2 Instincts: 4
Kindness: 3 Cruelty: 4

Hair: Dark Red Eyes: Dark Brown Complexion: Dark Brown
Height: 5 ft., 7 in. Weight: 213 lbs

Wealth: 4 (3200)

How about this character (y/n)

Read the rest of this entry »

Written by Joseph Weissman

May 29, 2008 at 2:26 pm