sysh
translated means speak-listen or language
human-speakable-programming-language
*********
contents be
*********
directory structure
install on linux
install on windows
user-info
roadmap
developer-info
acknowledgments
review
**************
directory structure
********************
0/ readme
1/ source
2/ binaries and scripts
3/ changelogs
4/ roadmap
5/ docs
6/ screenshots
7/ translations
8/ website
B/ articles
D/ licence and policies
*************
install on linux
******************
requires bash (bourne-again shell)
nasm assembler http://www.nasm.us/ ,
binutils (ld) and linux kernel calls
with x86 instruction set (intel/amd processor or emulator).
for api generation grep and pcregrep required.
cd sysh/2/bin
./make.sh will compile and take you into interperter
executable is bin/sysh
try out some of the commands listed in the Demo Preview section of this readme
*******************
install on windows
*******************
get linux emulator like cygwin http://www.cygwin.com/ ,
and follow linux instructions
***********
user-info
***********
grammar structure.
Since subject-object-verb is more common,
and is easier to make programing code for.
sysh currently uses post-positional syntax.
So instead of "from the Earth", it's "Earth the from".
grammar vocabulary
Sysh uses an isolating case-grammar,
so there is a word for each grammatical case.
where a grammatical case is a word like "to", "of", "for", "by".
English uses many case-grammar words,
but uses place-grammar for subject and object.
In Sysh the word for subject is "su" and for object is "bo".
For example, "we go to the store", is "we su store the bo go be"
Running the program.
you type in a command,
the computer as self answers.
in a terminal shell in this directory type
./make.sh
---------------
Demo Preview
--------------
to test basic helo and exit do
hello be ya
bye be do
to test basic output
hello bo say be do
to test addition
note that numbers run from right to left,
and have the word nu following them to designate as numbers.
c nu bo 04 nu to add be do
to test compare
love bo love to compare be word by do
11 nu bo 7 nu to compare be number by do
to write to (emulated 32-bit) register
helo nu bo 0 re to write be do
to say from (emulated) register
0 re from say be do
to see bytes in numeric form
0 re bo convert be number to do
to say from memory
00B8408 nu from say be do
to find address of recent word in book
test bo what be do
to test writing to file
you yo hello world! :-) bo filename.txt file to write be do
me yo hello world! :-) bo filename.txt file to write be hello world! :-) so ya
the file created is in bin/ in this case it is bin/filename.txt with the contents demonstrated by so
to test saying or reading from file
test.txt file from say be do
to test loving or compiling from file
test.txt file from love be do
to test factorial label example
factorial.txt file from love be do
to test conditional statements.
love bo love to compare be do
equal if compare works bo say be do
can do switch/case statments by
happy bo compare be do
sad if :-( bo say be do
happy if :-) bo say be do
to see contents of memory or book catalog
catalog book from say be do
to see contents of user history
user book from say be do
to make a label
name su label be ya
to get pointer or po of label
name la bo say be do
to test label jump
name su label be ya
name la bo say be do
end be do
name la to jump be do
to test variables
something su 33 nu bo var be do
something va bo say be do
something va bo 4 nu to add be do
to convert a number to a string variable
44 nu bo word to convert be do
resultnum su 44 nu bo var be do
resultword su var be do
resultnum va bo word to convert be resultword va so do
to set quiet mode, where only say outputs to screen
voice bo quiet to mode be do
to return to verbose or debugging mode
voice bo verbose to mode be do
to start a new book
book name su book be do
to forget a book
book name book bo forget be do
they are then marked as "free" insead of "book" in the catalog
to extend a book
book name book bo 0002 nu till extend be do
note 0002 is equivalent to 0x2000 bytes, and can be any number
a note on quotes:
The kind of quotes implemented is the lojban foreign language quotes style.
It's interesting as it's actually an infinite quoting mechanism,
since you can literally make new quotes with it.
an example quo contents quo te is a quote, containing the word contents,
the quote_word is quo in this case, though " contents " te can work just as easily as any combination.
instead of having escape sequences, can simply have quotes comprised of glyphs
which are not found in the text as solitary words.
********
roadmap
********
see roadmap.txt
**************
developer info
***************
to debug requires gdb can use ./debug.sh in 2/bin to start it up
grammar-structure
because of subject-object-verb,
the initial words are helpful descriptors,
the last word in a noun-group is the most important,
typically indicating the underlying process or result.
In example "spaceClear" clears, "spaceFind", finds.
source files are in src/
the main one is sysh.asm
then interpret.asm
can compile new version with ./2/bin/run.sh in base directory
the executable or binary shall be ./2/bin/sysh
can go into gnu debbugging mode with ./2/bin/debug.sh in base directory
Porting Guide
if to other operating system, the kernel is lin_io.asm and lin_sys.asm,
if to other processing bits, cpu.asm
Grammar
Scanner is lower level, getting the word kinda stuff
Parser is mid level, operating with the word
*****************
acknowledgements
*****************
authored by Andrii Zvorygin
jonesforth is the initial code example
supported by #forth and #asm irc channels from irc.freenode.net network.
consulted by father Igor Zvorygin about computer-programming.
inspired by Ben Goertzel AGI academic guru and part-time mentor.
***************************
review
***********************
what have you learned?
how do you feel about speakable programming?
Are you inspired by new vocabulary?
How about grammar conventions?
and of course,
using a command line,
on linux or an emulator.
perhaps you'd like to delve a little deeper,
and look at and improve the code to suit we with you?
rememeber to learn from those who have come before,
as they have the knowledge to give of what they have achieved.
review for building your knowledge, skills and abilities.