Zen Logo

Demos of Zen technology prototypes

Demo #1: DOM editor Demo #2: Introduction to Zen sequential web app programming Demo #3: Visual program editor Demo #4: Financial blog Demo #5: Tab container Demo #6: Gambit Scheme Other experimental code About the Zen web app framework and these demos

Demo #3: Zen visual
program editor

This demo shows a broken and very incomplete prototype of the Zen visual program editor. It is here in its present broken state so that it can be shared for comment. To try it out, drag blocks from the table of buttons into the light gray buffer to form a program. At least it is possible to drag the '=' (equals) button there. Some forms should take arguments. The equals (=) predicate form should take two or more arguments, but presently it will accept only one or two. Each button represents a Scheme language form or datum. Different forms take different numbers of arguments. Many forms take a variable number of arguments. #t and #f are datums (true and false in Scheme language). Click 'Run your program' to run the program. Any output will be shown in the JavaScript console. To understand what the Zen visual program editor is doing and how it will be developed, please refer to the embedded code, written in Scheme for the Biwascheme implementation of the Scheme programming language.

The eventual development goal of the Zen visual program editor is to allow even a beginning programmer to create useful web applications by adding and interacting with program blocks. There were two inspirations for this:

  • the form diagramming of jsScheme, and
  • the Snap! programming language for kids and adults.
In jsScheme, a function that just prints its argument is diagrammed like this:
Snap! programming language example
Here is an example program in Snap!:
Snap! programming language example
Please refer to Biwascheme.org.
Run your program
Your program:
Drag some of these forms and datums into your program:
define function begin with-handlers let* set!
#t #f
not and or if case while
equal? eq? eqv? = <= >=
< >
alert getchar


Copyright © 2020, 2021, Thomas Elam, Mashweb.Club. All rights reserved.