Lambda the Ultimate

inactiveTopic High-Level Assembly Language
started 5/8/2002; 4:46:15 AM - last post 5/14/2002; 2:45:41 AM
Noel Welsh - High-Level Assembly Language  blueArrow
5/8/2002; 4:46:15 AM (reads: 822, responses: 3)
High-Level Assembly Language
The name seems an oxymoron but HLA does appear to be a nice way to get into assembly. You can start off writing fairly Pascal-ish programs with function definitions and so on and then move into lower level stuff if you desire. Defintely worth a look if you want to go back to the good old days of core dumps or random reboots (depending on your OS) or if, like me, you want a gentle slope into assembly.

If you knock a few bits off the URL you'll get to the "Art of Assembly Language Programming" by the same author. This is a downloadable book (PDF) that introduces assembly language programming using HLA.
Posted to general by Noel Welsh on 5/9/02; 12:10:58 AM

scruzia - Re: High-Level Assembly Language  blueArrow
5/8/2002; 11:06:31 PM (reads: 825, responses: 0)
And the PC industry keeps reinventing things that have been used in larger systems for ... over 30 years. This one looks *so* much like Niklaus Wirth's PL/360, reincarnated, that it's hard to believe that the HLA pages don't pay homage to him, except to mention "Pascal-like". See

http://www.csr.uvic.ca/~wg24/history.html

and

http://ref.cern.ch/CERN/CNL/2001/001/programming/

for a little perspective.

I still think it's a great idea, if you have to work on low-level code on a platform that has no C compiler.

Also note that for the past decade or more, assembly-like languages for DSP chips have often been defined with this kind of syntax instead of the more traditional line-at-a-time, one-instruction-at-a-time syntax.

Chris Rathman - Re: High-Level Assembly Language  blueArrow
5/13/2002; 9:57:09 PM (reads: 697, responses: 1)
In fairness to the author, he does discuss the influence of PL/360 in the documentation - and where he believes HLA represents an improvement.

As for the language itself, it's interesting. It does everything from raw Ix86 instructions to OO Classes. The biggest hassle with the higher order constructs, though, is that you still have to do a bunch of stuff with registers - allocation via the esi register, returning function values via the data registers, and moving. Although the higher order facilities are nice when you are coming from the ASM direction, they can be a pain when you're trying to think of more abstract constructions.

Noel Welsh - Re: High-Level Assembly Language  blueArrow
5/14/2002; 2:45:41 AM (reads: 715, responses: 0)
> The biggest hassle with the higher order constructs, though, is that > you still have to do a bunch of stuff with registers

Well you have to draw the line somewhere if you're going to call it an assembler! :) I do find the name high-level assembler slightly amusing as what is the history of programming languages about if not progress to more abstract assemblers? A purely functional language is equivalent to the SSA form used in the backend of an optimising compiler!