This dates back the period 1988-1992, and basically, it was the topic
of my PhD in computer science (defended on Jan 17th, 1991, at the
University of Lille).
At that glorious time, supercomputers were vector, pipelined, multi-processors (Cray Y-MP, Cray-2, Nec SX3, and the like). Pentium was not existing yet... We had in mind to design a language in which one could express vector operations (instead of writing loops along vector elements), that would be structured, and that could be compiled on many supercomputers, as well as on workstations on which debugging would be done, and that would generate efficient code (as efficient as dedicated Fortran compilers). In this work, I have focussed on the intermediate language level, and the code generation for various targets (scalar workstation, and Cray Y-MP). I designed and implemented the code generation for the Y-MP while during my post-doctoral at the SCRI at the Florida State University, from April to September 1991. I was pretty happy to be able to generate code that was as efficient as the one generated by the Cray Fortran Compiler; this involved a thorough study of the architecture of the Cray processor, on which I had only a very, unthorough, documentation; so I had to write some code chuncks in assembly language (CAL), measure the execution times of various chuncks, and figure out why this chunck was faster than this other one to finally end up with a strategy to implement in my compiler on how to generate the best machine code.