[Oberon] Towards a syntax directed editor: IDE

eas lab lab.eas at gmail.com
Sat Dec 29 12:31:33 CET 2012

aka Old-paradigm rediscovered.

The new paradigm/illusion, about 50 years old now, is
commumicating via written memos, with little-man-in-box.

The original/valid view of computers is of a multi-dimensional
switch.  All this talk about "typing and fingers" is absurd.

The old railway-diagrams vividly emphasise that at all stages
the next valid token is one of only-a-few;  which is most
economically [in effort] just selected from a menu.

For new users, to see what few steps are needed: ----
Desktops.OpenDoc Find.Panel ~
use: reserved word    *.Text
=> gives: Oberon.Report.Text   'served words listed below.'
shows there are only 4*13+8=60 reserved words in Oberon.
--- end of 3-step-log-demo for new users---

AFAICS, the only time for typing-and-fingers is for the
special event of the user THOUGHTFULLY inventing a new
identifier.  Once invented, the identifier can belong to
the menu, which could/should also be 'scoped'.

Which seems to me to give a syntax-directed editor?

Imagine each new language just being entered into its
own data-file.  Syntax coloring by several editors already
are a step towards a syntax directed editor.

Perhaps this won't work for dirty languages like bash or
C++.  How do dirty-languages manage syntax coloring?
'lisp' would be boring?   Or perhaps not !

My simplest imagined input, for ETHO is that the token
at the cursor [not caret, which requires an exta clik] is
copied/appended to the source-text.
The caret is an extra dimension and has memory and
need not be wasted when the cursor will do.

Q. does any ETHO code, other than <placing the mark>,
use 'the cursor'?     I want to copy existing code.

Pet.Tool already gets close to this ability, with:
}  <shift> + space: select word at cursor
}  <ctrl> + '*': bold face word at cursor
In fact it needs the caret and not just the cursor.

I imagine:
 any-key-DOWN hi-lites the cursored-token,
   which can be viewed for confirmation before,
 that-key-released copies the token to the destination.
So Pet seems to be a good starting point to evolve test code.

But, LEO gives me only: System.Directory Pet.* == Pet.Obj
And then LNO gives me only Pet.ReadMe and my rather big
set of 357 *.Mod files in their separate partition of N-O
has no Pet.Mod

Q. was/is Pet.Mod available ?

Of course it would be extended to copying whole structures from,
the menu, corresponding to eg.
Statement =
[ Assignment | ProcedureCall | IfStatement | CaseStatement | \
WhileStatement | RepeatStatement |
ForStatement | LoopStatement | WithStatement | EXIT |\
 RETURN [Expression] ].

I find the railway-diagram-representation more intuitive.

Of course this whole idea is already CONFIRMED by ETHO:
you don't piano-play the keyboard like a journalist/novelist.
You select, visually recognised [bigger than keys] items and
assemble them. Let's just extend the good, proven method
of ETHO.

== TIA.

Please criticise my idea. Early abandonment saves wasted effort.

PS. LEO & presumable other ETHO has a nice
-> System.Directory Scheme*
which seems relevant to, programming via
<selecting from the language's initial builtin list,
and then from the evolving definitions>.
Q. Is Scheme*.Mod available?
How much ETHO source is hidden?
Is there any policy that contributors' code must be open
to be included in the distribution?
My thread about ARM:ETHO was not about hobby-size
micro-controllers, but about: can we escape the WinTel
monopoly and still have the magic of ETHO.
It's the proven HumanComputerInterface that's important.

More information about the Oberon mailing list