Skip to content
/ Zn Public

The Zn language compiler, runtime, and interactive console.

Notifications You must be signed in to change notification settings

bluejack/Zn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

                              ~ The Zn Language ~
                                     v0.02          

---                 Copyright (c) 2010-2014, Blunt Jackson                   ---

Welcome. Zn is a personal effort at language design and a learning experience in
compiler construction and extensible runtime development. Zn (pronounces 'zinc')
is intended to support Task Oriented Application Development (TOAD): Objects and
Tasks are both first class language structures. While Zn is a pragmatic language
in the imperative style, it draws inspiration from Erlang in attempting to bring
simple, intuitive, robust, and efficient solutions to parallel processing by the
use of a message-passing architecture and immutable shared objects.

:  Want to read the code? Follow the trail. Begin at the beginning, with main  :
:          http://github.com/bluejack/zn/blob/master/src/apps/zn/zn.c          :

--------------------------------------------------------------------------------

                                    STATUS

--------------------------------------------------------------------------------

Overall:  Skeleton functionality

Shell:    Primitive command execution in place.
Runtime:  Skeleton with output only, interactive mode only
Compiler: Skeleton with single keyword only, no actual compilation yet.

Current:  Compiler->Basic Parser Scaffolding

--------------------------------------------------------------------------------

Usage:

$ zn            <-- Shell Mode
$ zn file.zn    <-- Interpret and execute file.zn
$ zn -c file.zn <-- Compile file.zn to application 'file'

--------------------------------------------------------------------------------

Shell:

     ( ) Input to child processes
     ( ) Wildcard expansion
     ( ) User identification & permissions management
     ( ) Chaining programs
     ( ) Redirecting stdin/stdout

Runtime:
          
     ( ) Basic state management
     (.) Symbol table, first draft
         [x] Hash Table Primitive available!
     ( ) Establish standalone mode for file interpretation
     ( ) Hello World (standalone)

Compiler:
     ( ) Hello world -> C

--------------------------------------------------------------------------------
: Plans are only good intentions unless they immediately degenerate into hard  :
: work.                                                      -- Peter Drucker  :
--------------------------------------------------------------------------------

Completed

    (X) [26.12.2010] Command history
    (X) [26.12.2010] Left/Right arrows, ctrl-a, ctrl-e
    (X) [26.12.2010] Detach from shell command
    (X) [26.12.2010] Replace ncurses w/ termios terminal access
    (X) [26.12.2010] Research Termios/Termcap alternatives to ncurses
    (X) [26.12.2010] Hello World (interactive)
    (X) [26.12.2010] Connect to shell display
    (X) [26.12.2010] Connect to Zn runtime
    (x) [18.12.2010] Basic parser scaffolding
    (x) [18.12.2010] Test linking a second parser
    (x) [18.12.2010] Connect to runtime
    (X) [13.12.2010] Basic unit test support in framework
    (X) [11.12.2010] Scrolling window
    (X) [11.12.2010] Correct command execution w/ stdout pass through
    (X) [11.12.2010] Experiment with ncurses display
    (X) [10.12.2010] Assign environment variables (overwrite, append)
    (X) [10.12.2010] Multiple commands per line
    (X) [10.12.2010] Adopt & pass on environment
    (X) [10.12.2010] Shell parser scaffolding

About

The Zn language compiler, runtime, and interactive console.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published