Showing posts with label compiler. Show all posts
Showing posts with label compiler. Show all posts

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.