CECIL
CECIL is a low-level language designed to run on a simplified and simulated microcontroller, the "SIM20" (preceded by the KIM10). The aim is not to help our students to become assembly language programmers, but to provide a vehicle whereby they can learn about hardware design concepts through practical activity. It was first developed as a concept in the late 1980s, has been used at various times in at least 6 institutions, and is still in use in at least 4.

Out of interest, the name "CECIL" has nothing to do with my father being called Cecil. (Actually, he was named Woodfield Cecil. That's why most folk knew him as "Jim". Don't ask...) The name was derived from the fact that I was working in a "Computer Education Centre" at the time, so CECIL was the "Computer Education Centre Instructional Language". It also drew on my experiences as a schoolboy in the 1960s with ICL's CESIL - "Computer Education in Schools Instructional Language". The SIM20, the microcontroller on which CECIL runs, stands for "Simulated Instructional Machine, version 20" (no, there wasn't a version 19; again, don't ask). The SIP200 processor, which is at the heart of the SIM20, is so named because it is the "Simulated Instructional Processor, version 200" - no there isn't a SIM199...

In case you're wondering, there is a very tight definition of the CECIL language and of the SIM20 computer. This is part of the rationale; to be a Truly Useful Simulation, the learner needs to know that the design is consistent and well-developed (c.f. C.S.Lewis's comments on Tolkein and "The Lord of the Rings"). The simulation is so tightly defined that one of my "when I have time" projects is to get our fabrication unit to actually make a SIM20 and provide a CECIL programmer for it. You never know, it might happen one day!

D.A.Argles, 10mar07