From Slashdot: Randall Hyde has developed a programming language called High Level Assembly (HLA). It is a great way for new programmers to develop applications for both Windows and Linux. It works with a variety of assemblers, including Gas, Fasm, Masm and others.
I saw this ages ago.
You might as well learn C.
Else do what I did, learn a real assembly language, it’s infinitely more useful and frustrating 😉
Randall Hyde is a professor. I think HLA is great for a 2nd year CS course. The one often called ‘Computer Organization’ or something like that. In this course they cover ASM and circuit logic flip-flop and the like. The students have had one year of an HLL like Pascal or C++.
If you start the course with HLA they can start working in the first week. Slowly removing the macros until they are at a more true ASM. Then they will have built-up the knowledge to understand the circuits.
This is much better in my opinion than starting with the hardware and working up to ASM. All the student know are HLLs and top down programming. Also it is rare that the ASM you learn in college will be the exact same one you will use in the workplace. So covering concepts with a useful teaching tool is better than teaching the oddities of an implementation most will never use.
I just completed Computer Organization. I don’t know yet if i’ll have to retake it ;-). I will say based on my small stabs at disassembly that the smattering of ASM i learned isn’t very helpful here. Especially in win32 programs there is a lot of compiler stuff that boggles the novice ASM student’s mind. We jumped right into ASM though, actual circuit diagrams and stuff came much later. I’m not sure if that’s the backward way of doing it but i know ASM was a struggle for a lot of students that are used to OOP.
It’s an old idea as the docs say. I was working on PL68K the same way YEARS back. It’s pretty simple, instead of
add.l (a0)+,d0
you treat the registers as variables and write
d0 += *a0++;
Many people find the C syntax easier to decypher. I grew up on assembly, so it doesn’t get to me like some folks.
Randall Hyde was my ASM professor at UC Riverside – http://www.ucr.edu . I took the course before he introduced HLA, but he did a great job teaching us x86 assembly. Really helped me appreciate whats going on behind the scenes when you are writing code.
Not to lower the praise of this little toy, but we did almost the same about 10 years ago by applying simple ASM macros. You can build up a pseudo-language from well designed macros and I guess this is very similar.
“Not to lower the praise of this little toy, but we did almost the same about 10 years ago by applying simple ASM macros. You can build up a pseudo-language from well designed macros and I guess this is very similar.”
Tao’s VP language started that way.
High Level Assembly is indeed not a bad idea. It would be a very poor world indeed if only C and Java existed, just as it’d be a shame if Windows and Linux were the only OSes around.
i have 20+ years experience in programming, including asm on the z80 (spectrum) at ~`86. then 8051, x86, 68000, and more. yet, i mostly program in higher level languages (c/c++/php/javascript/etc). i once worked on some video postprocessing for the xvid project. my prototype was written in c, optimized in c, but then i wanted to quickly optimize some loops in asm (specifically, mmx/sse/3dnow). since i don’t program in asm daily, and my x86 asm skill were rusty (to say the least) i was looking for guides, etc, and then i found out about HLA. i read the guides for few hours, read some stuff about mmx/3dnow, and within a day or so i had an mmx optimized version of my filter, compiled into xvid using HLA, and performed noticably better than the c version.
so it definately has merit. at least it had for me.
my $0.02
avih