On Thu, Oct 31, 2019 at 3:39 AM Fernando Jefferson
Really, "1" is the simplest program possible, if we disregard the null
From now on I will use your definition of simplest program.
Ah, mathematical background showing ;-> .
In fact the problem is probably defining program, and it will highly
depend on the environment, you could always develop a repl which pops
up space invaders, or a wordprocessor, when fed the empty string and
interpret it as 4k basic otherwise.
Glad you were also a CP/M user/hacker.
It was a great learning tool, one OS you could fully know.
At PUC-Rio we did reverse-engineering of CP/M 80, obtained a source
file, first in assembler and then in "C". And even we´ve developed a
CP/M 86, with the providential help of Roberto Ierusalimschy (my
colleague in the master's degree), who developed a genial interpreter
for the 8085 CPU, running on the Intel 8086. Mapping registradors from
one CPU to another!
Folklore says MSDOS .COM support was dessigned in a way where you
could take a CPM assembler program for the 8080, clean it up a bit,
apply a (simple) translator, and get a working program. Not sure if
anyone did that, in those times there was no www so it was all floppy
passing around and keeping up with these kind of things was really
The C one was synthetic, I assume. I played mainly with cpm 3, and a
bit of 2.2, on the amstrad CPC ( it was a really good combo, the
things the cpc managed with a z80 where amazing, it did even have
(floppy) disk cache. I had my own version, with patched floppy support
for some extra k and printer support for a hardware hack I did. And
IIRC, it was assemblear mainly. I played a bit with C there, but the
implementations where for 8080 and not too good, so I normally used
either turbopascal or just coded in masm ( with a huge set of macros /
libs I accumulated, and in Z80 mode, which allowed me to use the extra
regs as frame pointers for cleaner subroutines ).
But it was all in steam computing time. :-) :-) :-)
Yep. I remember then fondly, simpler times and being younger helps,
and the brain tends to forget the bad things, but not necessarily
Today I am managing the UpLua Project, which aims to boost the use of
Lua Language in the (but not only) areas of IoT and Artificial
Those are two broad areas, and I see Lua can fit well in lots of
One of the activities of this project is to teach Lua to people
the computer and technical area. Our audience: doctors, biologists,
psychologists, lawyers, audio visual producers, film and theater
directors and actors, literature, human resources, etc. And also high
It's simple enough to be grasped by any motivated student with those
The focus of the course is different from the traditional one when
teaching a programming language, where it is assumed that the student
already knows another programming language, or at least a good
background in math and logic.
The major problem I've stumbled upon when teaching someone with zero
programming has always been the concepts of variables, the a=1, b=2,
a=3. I've found one of the things for the (Pascal? getting old ! )
a:=1 notation was it is, in my limitted experience, much easier to
explain. Also I've found people with some math/logic background are
more amenable to think on decompossing problems in a way which lead to
algorithm/program development. As I say to anyone who wants to listen,
try to make your kids learn some of it, it "shapes" the mind in an
useful problem solving way.
Our course starts with "1 + 1 = 2", which is the only prerequisite (in
addition to basic English). See attached the poster (unfortunately in
Portuguese) and the testimony of some students.
Well, portuguese shouldn't be a problem, I'm spanish, languages are
similar and I've previously managed to read and follow instructions
when in Portugal.
... After reading it it seems either you found an english version to
post or somehow google autotranslated to english the image!.
I will send more information to this list about Up-Lua Project and
out if someone could help us in this challenging project.
We'll be waiting!