Mailinglist Archive: opensuse-programming (51 mails)

< Previous Next >
Re: [suse-programming-e] threads and file descriptors
  • From: Jerry Feldman <gaf@xxxxxxx>
  • Date: Wed, 10 May 2006 09:11:35 -0400
  • Message-id: <200605100911.36373.gaf@xxxxxxx>
Just one more assembler vs. high level language war story.
A number of years ago while workign at a large back, we had a Personal Trust
system that had been written in IBM 360 assembler. Our bank was primarily a
Burroughs (Unisys) shop. The vendor, a major accounting firm, had ported
the code to Burroughs COBOL. The Burroughs programmers really hated the
code as there were a lot of cases such as:

pa.
alter r5return to goto pb.
goto code.
pb.
...

code.
...
goto r5return.

r5return.
goto.

I was the only person on the team who knew IBM assembler. The first time I
saw that sequence, my comment was "this is nothing but a "balr" instruction
using register 5 as the subroutine return register. (Note that the IBM
mainframes were not stack machines).

But, my point about C++ and assembler is missed.
While a well written and commented assembler program can be highly
maintainable, a program PROPERLY written in a higher level language should
be more maintainable and more portable. However, the assembler code should
perform better. In terms of maintainability, assembler is generally no
taught in most schools where C++, C and Java are. In the case of the
programming staff at the bank, I was probably the only programmer analyst
who knew IBM assembler (a couple of the systems programmers did).
Burroughs COBOL had a nice feature (similar to the C asm() function):
Procedure Division.
par.
...
enter symbolic
assembler code
...
enter cobol.

The Burroughs system did not have a linkage editor, so your code had to be
monolithic. They did have an efficient way to spawn a child process,
though.


--
Jerry Feldman <gaf@xxxxxxx>
Boston Linux and Unix user group
http://www.blu.org PGP key id:C5061EA9
PGP Key fingerprint:053C 73EC 3AC1 5C44 3E14 9245 FB00 3ED5 C506 1EA9

< Previous Next >
List Navigation
Follow Ups