Slashdot Mirror


High Level Assembly

dunric writes "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. The website for Randy's HLA is located at: http://webster.cs.ucr.edu/"

14 of 53 comments (clear)

  1. I'll pass by niff · · Score: 5, Funny

    i'm waiting for Microsoft ASM.NET

  2. High Level Assembly (HLA) by Red+Pointy+Tail · · Score: 5, Funny

    ...also known as C.

    1. Re:High Level Assembly (HLA) by Tobias+Luetke · · Score: 4, Insightful

      I think this should be modded as Insightful not Funny....

      With modern C compiles in place its all but impossible to write an entire project with faster code then the same program in C.
      ASM is good to optimize some sections, but even that is questionable nowadays because its probably less expensive to get a faster computer then having a coder with great insight into ASM optimize a section of the code for a week.

      Also C code can run on a cluster or super computer if required.

  3. FAQ by Fulkkari · · Score: 3, Informative

    ...is something you should probably read. Link here.

    Interesting project, but quite useless for us that prefer portability.

    --
    I demand the Cone of Silence!
  4. Relax, it's a teaching tool... by Cragen · · Score: 3, Informative
    HLA was created to help make teaching assembly language easy (for both instructors and students). This paper describes the features of HLA that make it suitable for teaching assembly language programming.

    Kinda like MIPS/SPim. Assembly: The Anti-Java language. (Haven't decided if that is a comment or compliment...)

    Oldbie.

    1. Re:Relax, it's a teaching tool... by Anonymous Coward · · Score: 3, Interesting
      Exactly like SAL (Simple Assembly Language). MIPS/Spim is a processor/assembly language (MIPS) and an assembler and emulator (Spim). Spim is a great tool in itself. SAL was added onto Spim as a teaching tool.

      We (Goodman, et al) designed SAL back in 1990 when the CS354 Computer Organization and Programming was moved from VAX. I was a TA at the time and added the SAL code onto Spim.

  5. Wow that's gross by p3d0 · · Score: 4, Informative

    Take a look at the sample programs.

    --
    Patrick Doyle
    I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
  6. Teaching? Yes. Applications? Er.. why? by EnglishTim · · Score: 4, Insightful

    I'm sure it's a great teaching tool for learning assembler, and if you need to do a bit of assembler for some reason, cool.

    However, using it to teach new programmers how to program applications? Why?

    It's

    a) Harder to learn than a High Level Language.
    b) Takes a lot more work to get anything done when compared to High Level Languages.
    c) Is much less use in a working envronment than knowledge of a High Level language is.

    1. Re:Teaching? Yes. Applications? Er.. why? by Monkelectric · · Score: 3, Interesting
      That's the question nobody can answer. I have quite alot of experience with the author, Randall Hyde, and can tell you in no uncertain terms he beyond a brilliant programmer. He also suffers from some kind of pathology such as megalomania or manic depressive disorder.

      Nobody can answer the question -- why do you need a language that has none of the advantadges of assembley, AND none of the advantadges of a higher level language?

      --

      Religion is a gateway psychosis. -- Dave Foley

    2. Re:Teaching? Yes. Applications? Er.. why? by Anonymous Coward · · Score: 4, Insightful

      I'm sure it's a great teaching tool for learning assembler, and if you need to do a bit of assembler for some reason, cool.

      However, using it to teach new programmers how to program applications? Why?


      For the same reason it's valuable for programmers to know any language other than the one their company uses. Because teaching someone to write applications isn't the same as teaching them to program.

      This language is basically like C but more so: nobody in their right minds would consider using it for a major project, but it's very useful to have some idea of how this stuff really works.

      I assure you, the moment I discovered what a 'for' loop compiled to, that was like a lightbulb going on in my head: suddenly programming made sense instead of just being about typing mystical formulae. Since then, sure, I've never touched ASM again, and these days I work almost entirely in functional languages that end up being a million miles away from the hardware, but I don't think I wasted my time when I did learn ASM.

  7. HLA and Art of Assembly by Dayflowers · · Score: 4, Informative

    This is hardly news to anyone. If my memory doesn't fail me, that has been around for at least two years. And if you were ever into assembly or even just curious, you were bound to stumble uppon the Art of Assembly (his book, a must read when learning assembly) and his site. Its not like HLA was any secret of even hidden in some obscure webpage...

    --
    I am a speak english. Do you not? - Saroto
  8. Randall Hyde's long-term project ... by Chromodromic · · Score: 5, Informative

    Actually, HLA ain't nothing new, and if you've been doing any hanging out on comp.lang.asm then you've seen his name popping up on posts about every single day, several times per day, promoting HLA and helping newbies for years now.

    I downloaded his book, "Art of Assembly Language" (avail. at No Starch, http://www.nostarch.com/) a couple of years ago before it had been published by No Starch and it's well written, still available for free either HTML , or PDF.

    If you're using Windoze then it's definitely worth checking out the excellent RadASM assembly language IDE for Windows, which is itself written in assembly, and also supports HLA. Randall Hyde devotes a chapter somewhere, either in his book or on his site, I can't remember, to configuring and using RadASM.

    One of the posts has questioned the value of teaching assembly to newbies, but I think there's a huge value for serious students. It's hard to appreciate garbage collection, for one, until you've had to pick up your own memory trash. But more importantly, most compilers out there output to some intermediary assembly language, and understanding the inner workings of your processor, your compiler and your own programs is one essential difference between being, well, a hack and being really, really good. There are other differences, to be sure, but that's one.

    I haven't been a huge fan of HLA myself for various, and admittedly completely arbitrary reasons. But Randall Hyde has put megatons of work into his stuff, doing some extremely impressive things, and he's always ready and willing to be helpful on the newsgroups, so if you have an interest then I would probably go to his site and to comp.lang.asm before I went anywhere else. Anyone stands to learn a ton.

    --
    Chr0m0Dr0m!C
  9. Structured assembly language not new by waterbear · · Score: 3, Interesting

    HLA looks like a complex programming environment.

    Assuming a common role of assembler, to fine-tune a critical smallish bit of code, I can see the convenience of having a higher level than normal of language constructs. It can make the flow of logic more transparent, (e.g. nestable conditional blocks, loops with readable criteria, repeat-until, do-while, switch/case structure, etc).

    On the other hand, providing this kind of pseudo-high level language structure in assembler programs has been around a long time, and can be done more simply. I still have an assembler macro library around that in its original version (circulated on 80s bbs networks) did this for at least some early versions of MASM and TASM.

    (Most of the identifiers would probably have to be changed for compatibility with newer assemblers because it used non-standard initial characters to enable constructs looking a bit like (ignore the 1--- 's, they just adjust formatting in the Slashdot editor)

    1---- .if (test)

    1---- .orif (another test)

    1------ (whatever code)

    1---- .else

    1-------- .while (yet another test)

    1----------- (whatever other code)

    1-------- .endwhile

    1---- .endif

    and suchlike constructs).

    As I first read it, it was a macro library carrying a by-line from 'Jim Holtman, 1982'. It was not very big, the whole thing (even after some more macros for other logic-extensions were added)came to an include-file size of no more than about 10 kb.

    Maybe it's not clear why anything bigger would be needed.

    -wb-

  10. High Level Assembler for JVM use by astrojetsonjr · · Score: 3, Informative

    If you are looking for a High Level Assmebler that generates Java Byte Code look at Jamaica. It allows Java control structures around the byte code. It is simple to use and has some very good documentation. Jamaica (on the Judoscript site)