It's called attaining divinity

alphacyberranger@sh.itjust.works to Programmer Humor@programming.dev – 534 points –
78

You are viewing a single comment

I once knew somebody who supposedly thought that ASM was high level.

ASM is high level. Real programmers use punch cards

Real programmers use a magnetized needle and a steady hand.

Once met a man who said he loved assembly language because it was so much nicer than punch cards and FORTRAN, but C was OK too.

This was last year. In his defense though, he's been retired for years, used to work as a professor.

Wait until you learn about micro ops and processor internals. That somebody isn't as wrong as you think.

There is no way ASM is high level

It's a matter of perspective. To someone who's job is to write the system which interprets ASM, ASM is high level

Exactly. For every level of abstraction, the abstractor is the high level and the abstractee is the lower level. Those aren't real words perhaps, but you get what I'm saying. It's all relative along the chain of abstraction.

Is it a chain though? I think it's more of a branching network that (almost?) always is stopped at quantum physics and it's theories or some form philosophy.

My mental model of it is a chain, yes. But you can define it however you like. It's just steps in some direction.

Maybe a cake would suit someone the best.

It's higher than machine code. It's degrees of highness. Any abstraction technically makes it high level.

It's not really abstraction though. It is more like syntactic sugar. In stead of 1000111011 you say ADD, but it is still the exact same thing. There is no functional, prgrammatical benefit of one over the other. It's just that asm is readable by humans.

At least thats as far as I understand asm. I haven't gone beyond NandToTetris

I would argue they don't know what that means really. Assembly is pretty much a mapping of words to machine code. It's just a way to make machine code easier to read. It doesn't actually change how it works.

A compiler re-arranges and modifies things so what you write isn't the same as the final program that is created. With assembly it is. It's not really an abstraction, but a translation. It doesn't move you further from the machine, it only makes it so you're speaking the same language.