bluejack/Zn
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
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 :
: https://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