Talk:High Level Assembly

An Argument Against Deletion
I found this article useful, if for no other reason than it helped me understand what HLA is. If there's an argument against the use or validity of the language, it should be cogently written into the article. I'm a beginner programmer, trying to learn the basics from the bottom up -- I'm looking into buying some Randall Hyde books on programming in Assembly, so an article like this kinda helps me understand what I'm getting into with that author. It was DEFINITELY useful to learn that HLA is considered an "academic" and "offshoot" language. So, if that's the truth of it, someone who really is an expert ought to write that in. -- Oct. 25 2012, yellowcaprail@gmail.com — Preceding unsigned comment added by 76.164.21.9 (talk) 23:33, 25 October 2012 (UTC)

2004 POV issue
Maybe this article is better off deleted. After the first two sentences, it is POV hell...--Fangz 23:34, 17 Jun 2004 (UTC)


 * YES Belgian man 19:45, 4 Oct 2004 (UTC)

It's certainly improved over the last five years, but it still sounds like a marketing pitch to me. —Preceding unsigned comment added by 149.135.96.91 (talk) 15:25, 10 November 2009 (UTC)

is it a language or an assembler?
The Assembler article says HLA is an assembler, and that it's in the public domain. Can anyone comment on either of these statement? If it's in the public domain, can someone provide a link to it? Can anyone provide a link to any webpage which proves the existence of HLA? Is the program binary in the public domain (making it freeware) or is the program's source code in the public domain (making it free software)?? Thanks for any help. Gronky 19:42, 14 November 2005 (UTC)


 * It is one varient of Intel sytnax 80x86 assembly language which has at least one implementation (assembler) supporting it. You already posted a link since you posted the above the comment, so no need for response there. Both the implementation binary and its source, along with the source of the library are all in public domain. -- KTC 21:44, 3 January 2006 (UTC)

HLA stand for High Language Assembly


 * The homepage listed in the article says "High Level Assembler", not high language. RJFJR (talk) 13:59, 21 November 2007 (UTC)

It's High Level Assembly. I edited some of the text to be more readable, but the article definitely needs more work. It is both an implementation of an assembler and an offshoot, if you will, of x86 assembly language. The assembly language macros comprise the language aspect... reserved words that stand for other discrete chunks of code, combinations of which provide a useful manner in which to write asm code, much more expressively and intuitively than otherwise possible. Also, it should definitely not be deleted. There is enormous value in understanding and documenting this subject. (JRowe)


 * There is absolutely nothing 'new' about an assembler macro language being able to construct object-oriented programs (or ay other trendy paradigm for that matter). Assembler macros that existed in the early 1960's were exceedingly powerful and have increased in power ever since. The 'shock and awe' felt by the above writers concerning the possibility of the existence of an assembler generating OOP programs is simply that they are apparently unaware that computing did not start with PC's in the 80's. The article should definitely stay as it confirms my beleif that current programmers need to realize that current dogma concerning the superiority of this or that language or paradigm is simply that - there are, and will always be, alternatives that are still validken (talk) 06:20, 23 March 2009 (UTC).


 * Having grown up with the mainframe assemblers of the 60's and 70's, I can assure you that HLA's macro capabilities are a bit more powerful than the macro capabilities that existed back then. As for *generating* OOP programs, that's never been a big deal in assembly language, but having classes and direct support built into the assembly language is fairly rare. I don't remember anything like this in System 360/370 macro (or even IBM's HLASM). TASM had this in the 1990s. I'd be interested in a reference for an assembler that had classes and support for object-oriented programming *built into the language* prior to this. 66.215.181.186 (talk) 21:59, 30 May 2010 (UTC)rhyde

Personally I do not see a problem with the article. HLA has been around for a long time. It provides a nice framework for assembly language programming and is freely available on the web. Google knows where it is as usual (try http://webster.cs.ucr.edu/AsmTools/HLA/index.html for starters). It seems to be available for Win, OS X, and Linux. I agree with the comment below that macro assemblers have been in use for decades, and that is what this really is. Certain file access, looping, and conditional primitives are invoked as macros and the core computations are done in explicit assembly codes allowing detailed management of the registers, ports, and low level processor features. IBM High Level Assembler, and Microsoft Macro Assembler have long had various constructs resembling those in HLA described here. Could be that it needs a little beefing up in the macro descriptions. Pseudopigraphia (talk) 01:59, 28 April 2010 (UTC)

NPOV concerns
This article seems to push for inclusion of HLA in college or university courses, rather than being a neutral article on the language. It talks extensively about the advantages of a student learning curve, while neglecting to talk specifics about the language itself -- for example, what's the support for OO programming like, or how the sophisticated macro stdout.put operates. From reading the article, I don't get much feel for the language at all, rather a feeling that I've just been told why I should visit the webpage of the assembler. I do believe it sounds like an advertisement at this time. (sorry if these aren't more specific, but I'm very busy these days and unable to write a more detailed summary of problems). nneonneo talk 19:25, 24 June 2008 (UTC)
 * Hm... I'm not taking one side or another, but I think that while discussing this, it's important to keep in mind that the language was designed specifically for pedagogic purposes. --Storkk (talk) 09:23, 5 July 2008 (UTC)

Recompile
Why is a recompile needed to port a program between Windows and Linux? It's all x86. Doesn't the toolchain form this language support the same object file format on Windows and Linux? If the code is just calling the HLA standard library, shouldn't just the same compiled object files need to be relinked against the different implementation of the standard library? -- 01:37, 22 January 2009 (UTC) —Preceding unsigned comment added by 192.139.122.66 (talk)
 * Well Linux uses ELF most commonly whereas Windows uses the PE format. So they are not binary equivalent, that's one of the issues of porting between OS's and has nothing to do with the HLA language 220.142.132.251 (talk) 10:17, 7 February 2009 (UTC)


 * There are a couple of issues wrt to "recompilation" comment. First of all, as already noted, PE/COFF, ELF and Mach-O object file formats are completely different. You cannot link a COFF file produced under Windows against an ELF or Mach-O file produced on Linux, FreeBSD, or Mac OS X. Second, the comment is describing complete *applications*, not small library functions that you link with C/C++ or other HLL programs. Between the HLA Standard Library and the HLA language itself, there are many OS-dependent issues abstracted away. You need to recompile the program to take advantage of these abstractions on different platforms.  Given that no other multi-platform assembler (e.g., NASM or Gas) can achieve this without a large amount of conditional assembly, this is actually an impressive feature for an assembly language. 66.215.181.186 (talk) 21:51, 30 May 2010 (UTC)rhyde.

Wikipedia is for discussing the article itself, not what it's talking about. Karjam, AKA KarjamP (talk) 16:49, 27 May 2012 (UTC)

HLA Adventure (non-education example)
A game using HLA has gotten some coverage. This would be an example to pull in outside the education domain if someone wants to add it: http://www.linuxjournal.com/article/8396#mpart3 Jodi.a.schneider (talk) 19:49, 12 February 2010 (UTC)
 * Added, thanks. Pcap ping  07:09, 28 April 2010 (UTC)

High Level Assembly language vs. High Level Assembler
This article is too confusing as to whether it is about a particular assembly language (High Level Assembly language) or the tool that translates this particular assembly language into machine code (High Level Assember). The title is "High Level Assembly" (the language), but the first sentence that should define what it is starts out as "High Level Assembler (HLA) is an front-end for several x86 assemblers ..." (the tool).

I think it should be much more clear whether this article is about one or the other. There is, after all, only one title. E.g. "High Level Assembly (programming language)" or "High Level Assember".

If it is about the tool then there could be a section about the language and vice versa. There could also be two separate articles, one for the tool and one for the language.

What do you think?

--Mortense (talk) 12:03, 26 May 2010 (UTC)


 * I didn't write the article (though I have corrected several misconceptions and things that have changed over the past decade). However, I do have a couple of comments:


 * HLA is both a language and an implementation of a language. It will remain that way until another version of the HLA compiler is written, so choosing one (tool vs language) over the other is premature at this point. OTOH, if anyone *really* cares about the distinction, the article should cover the language (as it mainly does) rather than the tool.
 * "front-end" is gone. HLA is a stand-alone assembler (since v2.0). It still has the ability to translate HLA source code amongst assemblers and this should be mentioned in the article. Maybe if I have some more time someday...
 * HLA actually stands for "High Level Assembler", not "High Level Assembly". Given the fact, however, that "High Level Assembly" is a very generic term that applies to many other products, I am satisfied with the title "High Level Assembly" and the cross links between this topic and the "High Level Assembler" topic.

66.215.181.186 (talk) 22:08, 30 May 2010 (UTC)rhyde


 * The site and the book(s) refer to it in different places as both "HLA (High-Level Assembly)" and "HLA (High-Level Assembler)." The reference manual overview starts out with "HLA, the High Level Assembler, is a vast improvement over traditional assembly languages." Not very helpful. MFNickster (talk) 08:10, 6 March 2011 (UTC)

removing POV tag with no active discussion per Template:POV
I've removed an old neutrality tag from this page that appears to have no active discussion per the instructions at Template:POV:
 * This template is not meant to be a permanent resident on any article. Remove this template whenever:
 * There is consensus on the talkpage or the NPOV Noticeboard that the issue has been resolved
 * It is not clear what the neutrality issue is, and no satisfactory explanation has been given
 * In the absence of any discussion, or if the discussion has become dormant.

Since there's no evidence of ongoing discussion, I'm removing the tag for now. If discussion is continuing and I've failed to see it, however, please feel free to restore the template and continue to address the issues. Thanks to everybody working on this one! -- Khazar2 (talk) 12:32, 14 June 2013 (UTC)

Advert and other issues
I have flagged the page as an advert, going by its wording and style that, to me, lacks neutrality, and looks more like it's trying to sell people on HLA. This has been brought up earlier as a breach of NPoV but was eventually abandoned. There are several other issues on the page which I'll point out (such as baseless absumptions). I'll plan a rewrite of the page myself if needed.

"Most students taking an assembly language programming course have already been introduced to high-level control flow structures, such as IF, WHILE, FOR, etc. HLA allows students to immediately apply that programming knowledge to assembly language coding early in their course, allowing them to master other prerequisite subjects in assembly before learning how to code low-level forms of these control structures. The book The Art of Assembly Language Programming by Randall Hyde uses HLA for this purpose."

This is not necessarily true. The paragraph ends with a very evident and palpable promotion of Randall's book. Even if it wasn't, the fact that a certain book teaches you how to use a certain programming language in a specific way is not encyclopedically relevant.

"Unlike most other assembler tools, the HLA compiler includes a Standard Library with thousands of functions, procedures, and macros that can be used to create full applications with the ease of a high-level language. While assembly language libraries are not new, a language that includes a large standardized library makes programmers far more likely to use such library code rather than simply writing their own library functions."

The second statement is not necessarily true in all cases. The elephant in the room, however, is the first sentence, which is specifically worded in such a way that it appears to me like it's trying to sell people on HLA. A much better sentence would say that HLA has a standard library [without specifiying the number of functionalities; "large" suffices] to speed up development, rather than specifically counting "thousands" of "functions, procedures and macros" that let you create "full" applications "with the ease of a high-level language".

"It is also possible to write high-level programs using HLA, avoiding much of the tedium of low-level assembly language programming."

Low-level assembly programming is not factually "tedious". Work is only tedious if you think it is, and even then, that applies only to yourself.

"Some assembly language programmers reject HLA out of hand, because it allows programmers to do this."

While completely factually correct (see Reddit posts about HLA for examples of such purists), this is not encyclopedically relevant.

"However, supporting both high-level and low-level programming gives any language an expanded range of applicability. If one must do only low-level-only coding, that is possible. If one must write more readable code, using higher-level statements is an option."

The first sentence is also largely subjective. Its presence in this specific article essentially promotes HLA for having this trait, even if implicit or unintentional. The second and third sentences also feel like something right out of a promotion.

"Distinguishing features"

"Distinguishing" is not necessary, and instead implies language uniqueness. For neutrality's sake, it should just be "Features".

"its powerful macro system (compile-time language) and the HLA Standard Library."

Maybe I'm just nitpicking at this point, but is it really necessary (and neutral) to describe HLA's macro system as explicitly "powerful"?

"HLA's compile-time language allows extending the language with ease, even to creating small domain-specific languages to help easily solve common programming problems."

What is easy for us isn't necessarily easy for others. Once again, the specific wording feels as if it's trying to get people excited for HLA.

"Most assemblers provide some sort of macro ability: the advantage that HLA offers over other assemblers is that it can process macro arguments like r:10:2 using HLA's extensive compile-time string functions, and HLA's macro facilities can infer the types of variables and use that information to direct macro expansion."

This sentence paints off HLA as a more convenient and competent tool than other assemblers. Wikipedia is an encyclopedia; it is not our job to tell people which software has advantages over others. At the very least, such articles should make mention of disadvantages or limitations. This articles mentions neither.

"The HLA Standard Library is an extensive set of prewritten routines and macros (like the stdout.put macro described above) that make life easier for programmers, saving them from reinventing the wheel every time they write a new application. Perhaps just as important, the HLA Standard Library allows programmers to write portable applications that run under Windows or Linux with nothing more than recompiling the source code. Like the C standard library for the programming language C, the HLA Standard Library allows abstracting away low-level operating system (OS) calls, so the same set of OS application programming interfaces (APIs) can serve for all operating systems that HLA supports. While an assembly language allows making any needed OS calls, where programs use the HLA Standard Library API set, writing OS-portable programs is easy."

This entire sentence is clearly also an advert, especially when taking the phrasing in account. I've marked some of the worst offenders in bold.

The following list of procedures is overly long and makes no effort to elaborate. It yet again feels as if it's trying to look impressive enough for people to want to checkout HLA.

Like nneonneo pointed out here, the article doesn't actually explain how HLA works in detail, or show syntax, both of which are generally expected from programming / assembly language pages; it only shows off the "cool features". This article essentially boils down to a promotion effort. I believe its stay on Wikipedia is warranted, but it needs to be rewritten. Feel free to discuss. LVDP01 (talk) 19:23, 29 July 2022 (UTC)