> Live languages go beyond dynamic languages with more
> programmer-centric features. A live language supports
> live programming that provides programmers with responsive
> and continuous feedback about how their edits affect
> program execution. A live language is also based on
> declarative programming constructs such as rules or
> data-flow connections so that programmers can write less code.
> A live language should also provide programmers with
> responsive semantic feedback to enable time-saving services
> such as code completion.
>
Would a spreadsheet be a 'Live language' ?
Why/how 'based on declarative programming constructs' ?
I propose going beyond code completion, to a syntax
directed editor. Which is old-hat and rejected by the
industry? It seems that what's wanted, is subjective.
I dream of a system where instead of picking from the
keyboard, I can select from syntactically valid choices.
Which system[s] reportedly already exist and have been
rejected. Similarly I can't live without linux's mc,
but most users don't like/use it ?!
Live systems are good because they provide early
feedback; which facilitates correction/improvement.
Re. feedback: I'm using this new to me mail-list via
my new to me [not favoured] gmail facility, via a non
standard [but snappy] browser sometimes; and I don't
get feedback to know if my posts succeed. With other
mail-lists I get a self-copy too as a member.
Because algorithms & CS-concepts are published 'with
a multitude' of languages -- eg. with examples -- one
needs either to retain a mental fluency of all the
langauges, which is absurd, or rather, have access to
a 'multi language dictionary'.
Since the imperative languages need only a few
constructs: alternative [IF, CASE], repetition
[WHILE..], factoring [Proc/Funct]; it would be nice
if the 'minimum construct, spread-sheet-like
algorithm-builder & tester', could be extended to
translate a set of existing [and future] languages
to it's minimal syntax.
eg. the forth & C++ ...etc. equivalent of:
" FOR i := 0 to 9 DO .."
would be translated - incrementally.
This for human consumption, not to run.
So when there's no exact/direct translation, the
heuristic is still of value.
I'm hoping/speculating that there's a one-to-one
mapping between the minimal constructs [above]
and the concatanative-langs, and that cat-lang
algoritms are able to be formally analysed/proved.
So therefore a system could be built which allows
easier formal proof. Ie. although 'Algol/Pascal
format' is the most natural for humans to
understand; that a [hopefully live] mapping to
an equivalent cat-syntax can be used to prove
semantic correctness.
Syntactic correctness should be automagic ?!
When I go out of my door, I don't need to
burden my mind about which of 4 directions
is syntactically valid. The 'environment'
provides the menu and enforces a valid choice.
== Chris Glur.