[comp.lang.misc] C ?= Assembly

dant@tekla.tek.com (Dan Tilque;1893;92-789;LP=A;60jB) (12/12/86)

In article <385@unc.unc.UUCP> rentsch@unc.UUCP (Tim Rentsch) writes:
>
>In this regard I should point out that C is only barely a HLL, and
>should be nominated to replace FORTRAN as the world's most popular
>assembly language.
>

In another forum (comp.lang.c) C has been declared as the language in which
it is easiest to write portable code.  Does this make it the closest
thing to the Universal Assembly Language mentioned in the original
posting.


 Dan Tilque				dant@tekla.tek.com

 "OK, citizens.  Time for another update on the 1988 presidential-election
 campaign, now entering its sixth year and starting to really heat up."
						--Dave Barry

rb@cci632.UUCP (Rex Ballard) (12/20/86)

|(Dan Tilque) writes:
:-(Tim Rentsch) writes:

:-In this regard I should point out that C is only barely a HLL, and
:-should be nominated to replace FORTRAN as the world's most popular
:-assembly language.

|In another forum (comp.lang.c) C has been declared as the language in which
|it is easiest to write portable code.  Does this make it the closest
|thing to the Universal Assembly Language mentioned in the original
|posting?

According to a few of the "folk lore" stories,  C was actually intended
to be a "universal assembler" rather than an HLL.  This is one of the
reasons why "Lint" was not included in the compiler in such a way as
to make unlinted code bomb.  The nice flexible syntax, combined with
lack of strict typing, made it a good "generic assembler" for porting
UNIX among other things.

Remember, much of the "automatic typing" of B and BCPL were taken out of C.

About the only thing they forgot was "absolute addressing" and "pathalogical
calls" :-).

Rex B.

eager@amd.UUCP (mike eager) (12/26/86)

In article <784@cci632.UUCP>, rb@cci632.UUCP (Rex Ballard) writes:
> 
> According to a few of the "folk lore" stories,  C was actually intended
> to be a "universal assembler" rather than an HLL.  This is one of the
> reasons why "Lint" was not included in the compiler in such a way as
> to make unlinted code bomb.  The nice flexible syntax, combined with
> lack of strict typing, made it a good "generic assembler" for porting
> UNIX among other things.
> 

One should note that Lint does several things which are not done by the
C compiler, shouldn't be done by the compiler, and which are not strictly
related to the language.  One of these is verifing the matching of the
number of arguments between the caller and callee.  Other is reference/
lack of reference to globals.

There are several reasons to have this in a separate program, one of which
is the frequent large amount of cross reference required to identify
unreferenced variables or functions.  Another is that many of the situations
which Lint flags as questionable are not errors, and are in fact desired.

As for C being a universal assembler, have you folks written any assembler
lately?  Assembler requires much effort to do even such simple things
as a FOR loop, which all high-level languages do easily.  Except for the
strong type checking in the MS-DOS assembler (which is extraordinarily
awkward) assemblers do not implement type checking and conversion, which
C and other HLLs do.  If C is a "generic assembler" then the only high-
level language in existance must be Prolog :-).

-- Michael J. Eager