Sunday, March 1, 2009

First pass at the Plato Language...

What is it?  Plato is a computer language, like perl, C, and Java.  It's a strongly typed language, but is flexible enough to handle low-level & high level software without compromising either.

Some interesting ideas I have designed into the language are:
  1. Everything is defaulted to a secure type.
  2. Unlike Java (which ignores pointers), I have pointers as a full-blown type. Unlike C, you can't point into arbitrary memory.  Pointers must point to an existing type and are deterministic.
  3. Multi-thread safe.  All lists and structures are "lockless locking" (if possible).  All other accesses are defined through a transaction, which signals the compiler to modify a sequence of variables safely.
  4. Garbage collection memory management
  5. The base types are:
  • Numbers: signed/unsigned int, char, short, float, double, boolean
  • Buffers: string, buffer, memmap
  • Storage: class, structure, enumerator, array(as a type modifier)
  • Lists: vector, list, stack, hash map
  • Threads: thread, rwlock, mutex, transaction
That's about it for now.

No comments:

Post a Comment