From: Howard Brazee on
On Fri, 12 Dec 2008 11:01:50 +0000 (UTC), docdwarf(a)panix.com () wrote:

>Really? I thought that using a language which is assembled into object
>languange with a one-to-one statement correlation 'is like using assembley
>language', while using a language which gets a single statement compiled
>into one or more object language ('machine code') statements isn't.

I had a macro-assembler for the Atari 800 in which I could write what
looked like Basic, and then assemble it. It was kind of fun, but
not as much fun as Action! or Forth which I had for the same computer.

--
"In no part of the constitution is more wisdom to be found,
than in the clause which confides the question of war or peace
to the legislature, and not to the executive department."

- James Madison
From: Richard on
On Dec 13, 12:01 am, docdw...(a)panix.com () wrote:
> In article <d9d518da-09d2-48d5-8382-81f0f3fe9...(a)i18g2000prf.googlegroups..com>,
>
> Richard  <rip...(a)Azonic.co.nz> wrote:
> >On Dec 12, 5:04 am, "Paul H" <NoSpamphobergNoS...(a)att.net> wrote:
>
> [snip]
>
> >> Isn't using C or Java like
> >> coding in assembly language?  
>
> >No. Using GOTO or not using scope terminators in Cobol is "like using
> >assembly language".
>
> Really?  I thought that using a language which is assembled into object
> languange with a one-to-one statement correlation 'is like using assembley
> language',

No, that _IS_ using assembly language.

A GOTO has a one-to-one statement correlation and is _LIKE_ using
assembley language',

> while using a language which gets a single statement compiled
> into one or more object language ('machine code') statements isn't.
>
> Perhaps someone dropped the differentiation between first-, second- and
> third-generation languages out of some curricula... or someone else forgot
> that 'a good programmer can write FORTRAN in any language'.
>
> DD

From: Michael Wojcik on
Robert wrote:
> On Thu, 11 Dec 2008 10:04:02 -0600, "Paul H" <NoSpamphobergNoSpam(a)att.net> wrote:
>
>> But your alternatives mostly intimidate me. Isn't using C or Java like
>> coding in assembly language?
>
> No, C is like Cobol, not assembly language.

At any rate, C is closer to COBOL than it is to most assembly
languages. (The "C is portable assembly language" cliche started as a
hyperbolic metaphor for C's combination of some portability and
low-level operations; by now it's just silly.)

> But Pete said C#, which is like Java.

Certainly closer to Java than to C. Though it's gotten pretty far from
its Java roots, particularly when you take frameworks into account.

Robert's correct that Java and C# are relatively high-level languages
with decent abstraction and expressiveness. Both are available free of
charge (other than your own costs for downloading and learning them,
of course), and there are various tutorials available online that
could give you a taste.

--
Michael Wojcik
Micro Focus
Rhetoric & Writing, Michigan State University
From: Michael Wojcik on
docdwarf(a)panix.com wrote:
>
> the first resonates; as I recall it Ritchie designed C at Bell Labs (back
> when it was Bell Labs, early 1970s) as a replacement for Assembley
> mnemonics.

Compiled languages in general were designed as a replacement for
assembly programming. That doesn't make them "like assembly".

> It is a compiled language, true, but still provides low-level
> system/memory/device access in an Assembley-like manner.

No, it doesn't. Some C implementations may extend the language to
provide direct access to memory and devices (whatever that may mean on
the platform), but that's not part of the C language.

--
Michael Wojcik
Micro Focus
Rhetoric & Writing, Michigan State University
From: Michael Wojcik on
Howard Brazee wrote:
> On Fri, 12 Dec 2008 11:01:50 +0000 (UTC), docdwarf(a)panix.com () wrote:
>
>> Really? I thought that using a language which is assembled into object
>> languange with a one-to-one statement correlation 'is like using assembley
>> language', while using a language which gets a single statement compiled
>> into one or more object language ('machine code') statements isn't.
>
> I had a macro-assembler for the Atari 800 in which I could write what
> looked like Basic, and then assemble it. It was kind of fun, but
> not as much fun as Action! or Forth which I had for the same computer.

The distinction between assembled and compiled languages is vague at best.

The iSeries (nee AS/400) has an "MI" ("Machine Instruction") language
that looks like assembly. It's what iSeries compilers produce, or at
least what they used to produce back when I did a lot of AS/400 work.
But what it generates are not machine instructions for the POWER/AS
CPUs that those machines run. MI is a CISC language and POWER/AS is a
RISC chip with an instruction set that doesn't look anything like MI;
and because the iSeries is a capability architecture, you don't really
want people generating arbitrary object code anyway.

There's a .NET CLI "assembler" that lets you create programs from the
low-level CLI instructions. Those aren't the instruction set of the
actual physical CPU; it's a virtual assembly language.

Run an emulator such as Hercules and assemble and run a program under
it. Those instructions aren't "machine code" for the physical CPU
running them either.

The "esoteric" (aka "evil") language Brainfuck is a low-level language
where each "statement" corresponds to a single instruction of the
virtual machine. It's a very primitive and bizarrely arbitrary virtual
machine, but there's a one-to-one mapping.

The even more esoteric language Unlambda is rather low-level too, and
all of its builtins are primitive operations. Of course, they're
operations like the s-combinator and k-combinator, but the each have a
concise formal definition and do a single thing.

Which of those is assembly language?

--
Michael Wojcik
Micro Focus
Rhetoric & Writing, Michigan State University