Linked by Thom Holwerda on Thu 30th Jun 2005 12:26 UTC
General Development For Linux users, HLA is a strong programming tool that allows them to create powerful programs on a variety of different levels. As HLA becomes more feature-rich, additional applications will be written using HLA under Linux. With HLA and Linux, programmers can develop new and exciting applications anyone can use. Read more.
Permalink for comment
To read all comments associated with this story, please click here.
RE: "Toy Language"
by Randall Hyde on Fri 1st Jul 2005 05:22 UTC

Anonymous wrote:>>>>>>>>>>>
Thanks for the toy language. Real developers will stick to something productive like masm, instead of a pathetic sales pitch for your lego masterpiece.
<<<<<<<<<<<<<<<<<&l t;<<<<<<<<<
Are you refering to HLA here?

From http://webster.cs.ucr.edu/AsmTools/HLA/HLADoc/HTMLDoc/WhatIsHLA.htm...


Design Goals and Decisions

HLA was originally conceived as a tool to teach assembly language programming. In early 1996 I decided to do a Windows version of my electronic text "the Art of Assembly Language Programming" (AoA). After an attempt to develop a new version of the "UCR Standard Library for 80x86 Programmers" (a mainstay of AoA), I came to the conclusion that MASM just wasn't powerful enough to make learning assembly language really easy. I decided to develop an assembler with sufficient power, providing the tools for a good standard library as well as satisify some other requirements. The High Level Assembler was the result of this.

HLA's high-level control structures were based on the same concepts found in MASM (which also supports IFs, WHILEs, HLL-like procedure calls, and the like). Like MASM, HLA fully supports complex data structures like records and unions (and goes one better and support object-oriented programming with classes). Fundamentally, the big difference between HLA and MASM is the "compile-time language" (known in other assemblers as the "macro language" or "preprocessor"). As I pointed out in the paper "What is HLA?", what I needed was an assembly language that was quite a bit *more* powerful than MASM to do the job I needed done for my classes. Unless HLA was going to offer a substantial gain over MASM, there would have been no need to write it, as I'd been using MASM in my courses for about six years at that point (using the 16-bit edition of AoA).

No doubt, MASM users will continue sticking to MASM, just as NASM users will continue sticking to NASM and FASM users will stick to FASM, etc. Usually, this has nothing to do with the "power" of the assembler, but the fact that people are unwilling to learn the syntax of a new language when they're reasonably happy with the one they already know. And, in my experience, *few* assembly language programmers exploit the macro processing facilities to the same level I did when I first decided to write HLA, so they don't have the motivation to go and learn a more powerful assembler.

OTOH, HLA has proven extremely successful at teaching new assembly programmers how to code in assembly language. As they aren't carrying around the baggage of already knowing an assembly language syntax, and they're most interested in learning assembly as efficiently as possible, HLA works out real well for them.

As for MASM, it does have one serious drawback -- it's really only a Win32 product (yeah, I realize it's also DOS and OS/2, but get real about those OSes). If someone decides to move on to Linux (or some other OS), they have to kiss MASM goodbye. You'll note that the original article was published in Linux World. Guess what? No matter how much that "real developer" you're talking about would like to do it, they won't be able to use MASM to develop Linux code.
Cheers,
Randy Hyde