Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!mcnc!gatech!rutgers!husc6!bu-cs!bzs From: bzs@bu-cs.BU.EDU (Barry Shein) Newsgroups: comp.unix.questions,comp.edu,comp.lang.misc Subject: Re: Teaching Assembler on VAX (BSD 4.3) Message-ID: <7743@bu-cs.BU.EDU> Date: Mon, 18-May-87 02:57:17 EDT Article-I.D.: bu-cs.7743 Posted: Mon May 18 02:57:17 1987 Date-Received: Tue, 19-May-87 01:42:26 EDT References: <351@aucs.UUCP> <588@maccs.UUCP> <234@brandx.rutgers.edu> <593@maccs.UUCP> <6725@mimsy.UUCP> Organization: Boston U. Comp. Sci. Lines: 62 Xref: mnetor comp.unix.questions:2381 comp.edu:390 comp.lang.misc:401 In-reply-to: chris@mimsy.UUCP's message of 17 May 87 22:38:42 GMT Posting-Front-End: GNU Emacs 18.41.4 of Mon Mar 23 1987 on bu-cs (berkeley-unix) >So what is /bin/as missing, or what does it do wrong, that makes it >user-unfriendly? >-- >In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7690) I think a lot of the hand-wringing I see over assemblers come from people who were bred in old-fashioned O/S environments where most system code was written in assembler, such as OS/370 or VMS. In these environments extensive facilities exist (for their era) to support asm coding. IBM's ASMH is a monument to assembler coding with macro facilities supporting extensive string processing, arrays and other arcanum. Suffice it to say I once wrote a simple lisp compiler which took lisp statements in-line in asm code and turned it into machine code in ASMH AT ASSEMBLE-TIME, all the necessary facilities were there as far as I was concerned. Pretty wierd. You'll hear similar stories from MIDAS coders, interesting history. This is not to say that these tools were nearly as powerful as a C programmer gets on a Unix system, just relatively powerful. For example, nothing like Lint for the asm programmer, nor SCCS. You were lucky if you got directories to organize code into. This causes a lot of carry-over, such folks are astounded at the "weakness" of Unix assembler environments, they feel like a Unix programmer might on a Lisp machine (well, something like that.) Unfortunately there is a tendency for such folks, having left a place where ASM rules king, to mourn this loss and point an angry finger, often a machismo finger at a problem that just doesn't exist (lack of a powerful macro asm under Unix.) They rarely stop and ask themselves how come none of the people who do all this devpt work under Unix never seem bothered by the omission. I think what people (educators) need to ask themselves is; exactly what am I trying to accomplish with this ASM course? Teach how an assembler works? Teach machine language? Teach machine architecture? Teach large-scale software engineering using machine language? Torture undergraduates? Unfortunately many of them are, in fact, wishing to teach large-scale software engineering using machine language, perhaps under the guise of an architecture course. This is because this former environment was one with pleasant memories for them, all those wonderful neato keano macros which almost looked like high-level languages or generated in-line tables for state machines (gee, we could do everything YACC does in only 10 times the effort! but it looked kind of impressive...) They should, however, take a long deep breath and ask themselves whether it's just possible that their entire world has gone the way of the Edsel and the village blacksmith. Pleasant memories, perhaps, but worth re-creating in this day and age? This is not to say that teaching some machine language is not a good thing. I think it is. But teaching large-scale software projects in machine language (or the tools and techniques that were used to accomplish this) may be a dead subject. Sorry. -Barry Shein, Boston University