-
C is the most efficient programming language
From
Nightfox@VERT/DIGDIST to
All on Tuesday, November 02, 2021 09:45:49
-
From
Digital Man@VERT to
Nightfox on Tuesday, November 02, 2021 17:04:13
Re: C is the most efficient programming language
By: Nightfox to All on Tue Nov 02 2021 09:45 am
> I haven't done much programming in pure C, but I thought this article was
> interesting. It says C is the most efficient programming language as far as
> power consumption, speed, and memory usage:
They actually have Python over C in regards to memory usage. (!?!)
Assembly language could beat C in those same categories, but it's not a serious contender for similar reasons that C is not a serious contender for a lot of software development tasks - because there are other very important factors such as development time, verification and validation, extensibility and maintenance.
I like and use C a lot, but it's not "the most efficient programming language" for all forms of efficiency. Depending on the job, some other forms of efficiency matter more than eeking out that extra 1% of performance or resource optimization.
--
digital man
Sling Blade quote #2:
Karl (re: killing Doyle): I hit him two good whacks in the head with it.
Norco, CA WX: 69.5øF, 58.0% humidity, 8 mph NW wind, 0.00 inches rain/24hrs
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Nightfox@VERT/DIGDIST to
Digital Man on Tuesday, November 02, 2021 18:39:33
Re: C is the most efficient programming language
By: Digital Man to Nightfox on Tue Nov 02 2021 05:04 pm
DM> They actually have Python over C in regards to memory usage. (!?!)
? C is #3 on their memory list, and Python is #12 on the list for memory usage.
DM> serious contender for similar reasons that C is not a serious contender
DM> for a lot of software development tasks - because there are other very
DM> important factors such as development time, verification and validation,
DM> extensibility and maintenance.
DM> I like and use C a lot, but it's not "the most efficient programming
DM> language" for all forms of efficiency. Depending on the job, some other
DM> forms of efficiency matter more than eeking out that extra 1% of
DM> performance or resource optimization.
I agree. I think the article meant it as efficient for energy use, C, and memory use. But there are other languages that are better for productivity.
Nightfox
---
þ Synchronet þ Digital Distortion: digitaldistortionbbs.com
-
From
Digital Man@VERT to
Nightfox on Wednesday, November 03, 2021 13:30:18
Re: C is the most efficient programming language
By: Nightfox to Digital Man on Tue Nov 02 2021 06:39 pm
> Re: C is the most efficient programming language
> By: Digital Man to Nightfox on Tue Nov 02 2021 05:04 pm
>
> DM> They actually have Python over C in regards to memory usage. (!?!)
>
> ? C is #3 on their memory list, and Python is #12 on the list for memory
> usage.
Sorry, Pascal - the *other* 'P' language. :-)
--
digital man
Sling Blade quote #24:
Karl: Kaiser blade. I hit my mother upside the head with it. Mmm... Killed her.
Norco, CA WX: 80.5øF, 42.0% humidity, 5 mph NNW wind, 0.00 inches rain/24hrs
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Ksource@VERT/MUTINY to
Nightfox on Saturday, November 06, 2021 02:00:39
Re: C is the most efficient programming language
By: Nightfox to All on Tue Nov 02 2021 09:45:49
> I haven't done much programming in pure C, but I thought this article was
> interesting. It says C is the most efficient programming language as far as
> power consumption, speed, and memory usage:
I mean it's not a huge surprise. They didn't have assembly on there, so you have your low-level/systems languages at the top (C,
C++, Rust) where the specific ordering between them doesn't matter too much. The thing about these cross-language benchmarks is it
all comes down to how the benchmark code was written. I'm surprised to see Fortran do so poorly. Maybe there haven't been any old
geezers writing good Fortran code for the CLBG (which was their source pool).
Also, good job whoever wrote the Python code for CLBG! Ha!
I guess what's new is that this paper puts a new green spin on things. Since we're more energy-conscious these days, we can
describe languages as "energy-efficient" instead of just "efficient". Can I get a carbon tax credit for writing more C code?
---
þ Synchronet þ Mutiny BBS - mutinybbs.com - telnet:2332 - ssh:2232
-
From
Boraxman@VERT/MSRDBBS to
Digital Man on Saturday, November 06, 2021 19:33:00
-=> Digital Man wrote to Nightfox <=-
DM> @MSGID: <6181D1FD.5354.dove-prg@vert.synchro.net>
DM> @REPLY: <61816B3D.3316.dove_dove-prg@digitaldistortionbbs.com>
DM> Re: C is the most efficient programming
DM> language
DM> By: Nightfox to All on Tue
DM> Nov 02 2021 09:45 am
> I haven't done much programming in pure C, but I thought this article was
> interesting. It says C is the most efficient programming language as far as
> power consumption, speed, and memory usage:
DM> They actually have Python over C in regards to memory usage. (!?!)
DM> Assembly language could beat C in those same categories, but it's not a
DM> serious contender for similar reasons that C is not a serious contender
DM> for a lot of software development tasks - because there are other very
DM> important factors such as development time, verification and
DM> validation, extensibility and maintenance.
DM> I like and use C a lot, but it's not "the most efficient programming
DM> language" for all forms of efficiency. Depending on the job, some other
DM> forms of efficiency matter more than eeking out that extra 1% of
DM> performance or resource optimization. --
DM> digital man
I wouldn't call Assembly a Language. There isn't really a language per so,
just mnemonics and instructions to the assembler itself. It is more a system
to assembly machine code, and the efficiency of assembly is heavily dependent
on the ability of the programmer.
... MultiMail, the new multi-platform, multi-format offline reader!
--- MultiMail/Linux v0.52
þ Synchronet þ MS & RD BBs - bbs.mozysswamp.org
-
From
Digital Man@VERT to
Boraxman on Saturday, November 06, 2021 11:58:02
Re: C is the most efficient p
By: Boraxman to Digital Man on Sat Nov 06 2021 07:33 pm
> I wouldn't call Assembly a Language. There isn't really a language per so,
> just mnemonics and instructions to the assembler itself. It is more a
> system to assembly machine code, and the efficiency of assembly is heavily
> dependent on the ability of the programmer.
Agreed, except, the different assemblers do have their own "language". They're unique and non-standard, but still a language of sorts.
--
digital man
Rush quote #54:
He'd love to spend the night in Zion, he's been a long, long while in Babylon
Norco, CA WX: 62.8øF, 90.0% humidity, 2 mph W wind, 0.00 inches rain/24hrs
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Nightfox@VERT/DIGDIST to
Boraxman on Saturday, November 06, 2021 11:37:00
Re: C is the most efficient p
By: Boraxman to Digital Man on Sat Nov 06 2021 07:33 pm
Bo> I wouldn't call Assembly a Language. There isn't really a language per so,
Bo> just mnemonics and instructions to the assembler itself. It is more a
Bo> system to assembly machine code, and the efficiency of assembly is heavily
Bo> dependent on the ability of the programmer.
I always thought assembly was a language, in that it consists of statements you can use to control logic and program flow. Assembly has a 'vocabulary' of keywords (or instructions) that make up the language. But every CPU has its own assembly.
Nightfox
---
þ Synchronet þ Digital Distortion: digitaldistortionbbs.com
-
From
Boraxman@VERT/MSRDBBS to
Nightfox on Friday, December 24, 2021 22:17:00
-=> Nightfox wrote to Boraxman <=-
Ni> @MSGID: <6186CB4C.3331.dove_dove-prg@digitaldistortionbbs.com>
Ni> @REPLY: <61863E0B.2745.dove-prg@bbs.mozysswamp.org>
Ni> Re: C is the most efficient p
Ni> By: Boraxman to Digital Man on
Ni> Sat Nov 06 2021 07:33 pm
Bo> I wouldn't call Assembly a Language. There isn't really a language per so,
Bo> just mnemonics and instructions to the assembler itself. It is more a
Bo> system to assembly machine code, and the efficiency of assembly is heavily
Bo> dependent on the ability of the programmer.
Ni> I always thought assembly was a language, in that it consists of
Ni> statements you can use to control logic and program flow. Assembly has
Ni> a 'vocabulary' of keywords (or instructions) that make up the language.
Ni> But every CPU has its own assembly.
Ni> Nightfox
Ni>
Ni> ---
Ni> = Synchronet = Digital Distortion: digitaldistortionbbs.com
True, but with C, something like
for (int x = 0; x < 100; ++x) {
a*=x;
}
That code is defined by a language, a specification. What "for" and "int" mean
are defined by the language. The structure of the code is defined by the
language. That is to say, C is actually a set of rules, a formal language that
then gets converted to machine code.
But with Assembler, there is not formal Assembler specification, no Assembly
keywords, etc, they are all implementation specific.
... MultiMail, the new multi-platform, multi-format offline reader!
--- MultiMail/Linux v0.52
þ Synchronet þ MS & RD BBs - bbs.mozysswamp.org
-
From
Nightfox@VERT/DIGDIST to
Boraxman on Friday, December 24, 2021 09:57:34
Re: C is the most efficient p
By: Boraxman to Nightfox on Fri Dec 24 2021 10:17 pm
Bo> That code is defined by a language, a specification. What "for" and "int"
Bo> mean are defined by the language. The structure of the code is defined by
Bo> the language. That is to say, C is actually a set of rules, a formal
Bo> language that then gets converted to machine code.
Bo> But with Assembler, there is not formal Assembler specification, no
Bo> Assembly keywords, etc, they are all implementation specific.
But still, assembler for each processor is defined by the operations that the processor understands, and there is a specific syntax for each operation.
Nightfox
---
þ Synchronet þ Digital Distortion: digitaldistortionbbs.com
-
From
Boraxman@VERT/MSRDBBS to
Nightfox on Saturday, December 25, 2021 09:12:00
-=> Nightfox wrote to Boraxman <=-
Ni> @MSGID: <61C60A0E.3336.dove_dove-prg@digitaldistortionbbs.com>
Ni> @REPLY: <61C5AF39.2749.dove-prg@bbs.mozysswamp.org>
Ni> Re: C is the most efficient p
Ni> By: Boraxman to Nightfox on
Ni> Fri Dec 24 2021 10:17 pm
Bo> That code is defined by a language, a specification. What "for" and "int"
Bo> mean are defined by the language. The structure of the code is defined by
Bo> the language. That is to say, C is actually a set of rules, a formal
Bo> language that then gets converted to machine code.
Bo> But with Assembler, there is not formal Assembler specification, no
Bo> Assembly keywords, etc, they are all implementation specific.
Ni> But still, assembler for each processor is defined by the operations
Ni> that the processor understands, and there is a specific syntax for each
Ni> operation.
Ni> Nightfox
Ni>
Ni> ---
Ni> = Synchronet = Digital Distortion: digitaldistortionbbs.com
Have you ever used AT&T syntax?
... MultiMail, the new multi-platform, multi-format offline reader!
--- MultiMail/Linux v0.52
þ Synchronet þ MS & RD BBs - bbs.mozysswamp.org
-
From
Nightfox@VERT/DIGDIST to
Boraxman on Friday, December 24, 2021 22:40:54
Re: C is the most efficient p
By: Boraxman to Nightfox on Sat Dec 25 2021 09:12 am
Ni>> But still, assembler for each processor is defined by the operations
Ni>> that the processor understands, and there is a specific syntax for
Ni>> each operation.
Bo> Have you ever used AT&T syntax?
I haven't.
Nightfox
---
þ Synchronet þ Digital Distortion: digitaldistortionbbs.com
-
From
Boraxman@VERT/MSRDBBS to
Nightfox on Sunday, December 26, 2021 21:27:00
-=> Nightfox wrote to Boraxman <=-
Ni> @MSGID: <61C6BCF6.3338.dove_dove-prg@digitaldistortionbbs.com>
Ni> @REPLY: <61C649CF.2751.dove-prg@bbs.mozysswamp.org>
Ni> Re: C is the most efficient p
Ni> By: Boraxman to Nightfox on
Ni> Sat Dec 25 2021 09:12 am
Ni>> But still, assembler for each processor is defined by the operations
Ni>> that the processor understands, and there is a specific syntax for
Ni>> each operation.
Bo> Have you ever used AT&T syntax?
Ni> I haven't.
It's an alternative syntax for assembler, used by GAS and I guess other
assemblers for Unix too.
An example from a program I wrote is below
movl %eax, BRK_Start
movl %eax, BRK_End
movl (%esp), %ecx
cmp $1, %ecx
je clifail
cmp $3, %ecx
jg clifail
movl 8(%esp), %ebx
jl success
movb (%ebx), %al
As you can see, the syntax is familiar, but different. Source and destination
are the other way around for MOV commands, the offset notation is different,
immediate values are prefixed with a $.
... MultiMail, the new multi-platform, multi-format offline reader!
--- MultiMail/Linux v0.52
þ Synchronet þ MS & RD BBs - bbs.mozysswamp.org
-
From
Digital Man@VERT to
Boraxman on Sunday, December 26, 2021 08:53:51
Re: C is the most efficient p
By: Boraxman to Nightfox on Sun Dec 26 2021 09:27 pm
> -=> Nightfox wrote to Boraxman <=-
>
> Ni> @MSGID: <61C6BCF6.3338.dove_dove-prg@digitaldistortionbbs.com>
> Ni> @REPLY: <61C649CF.2751.dove-prg@bbs.mozysswamp.org>
> Ni> Re: C is the most efficient p
> Ni> By: Boraxman to Nightfox on
> Ni> Sat Dec 25 2021 09:12 am
>
> Ni>> But still, assembler for each processor is defined by the operations
> Ni>> that the processor understands, and there is a specific syntax for
> Ni>> each operation.
>
> Bo> Have you ever used AT&T syntax?
>
> Ni> I haven't.
>
> It's an alternative syntax for assembler, used by GAS and I guess other
> assemblers for Unix too.
>
> An example from a program I wrote is below
>
> movl %eax, BRK_Start
> movl %eax, BRK_End
> movl (%esp), %ecx
> cmp $1, %ecx
> je clifail
> cmp $3, %ecx
> jg clifail
> movl 8(%esp), %ebx
> jl success
> movb (%ebx), %al
>
>
> As you can see, the syntax is familiar, but different. Source and
> destination are the other way around for MOV commands, the offset notation
> is different, immediate values are prefixed with a $.
Motorola 68K assemblers used the "move source, destination" as well (opposite of Intel/x86 assemblers).
Basically, there's no real "standard" when it comes to assembly languages.
--
digital man (rob)
This Is Spinal Tap quote #38:
Artie Fufkin: I'm not asking, I'm telling with this. Kick my ass.
Norco, CA WX: 48.9øF, 79.0% humidity, 3 mph NW wind, 0.23 inches rain/24hrs
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Boraxman@VERT/MSRDBBS to
Digital Man on Wednesday, December 29, 2021 15:30:00
-=> Digital Man wrote to Boraxman <=-
DM> @MSGID: <61C89E1F.5377.dove-prg@vert.synchro.net>
DM> @REPLY: <61C84490.2753.dove-prg@bbs.mozysswamp.org>
DM> Re: C is the most efficient p
DM> By: Boraxman to Nightfox on
DM> Sun Dec 26 2021 09:27 pm
> -=> Nightfox wrote to Boraxman <=-
>
> Ni> @MSGID: <61C6BCF6.3338.dove_dove-prg@digitaldistortionbbs.com>
> Ni> @REPLY: <61C649CF.2751.dove-prg@bbs.mozysswamp.org>
> Ni> Re: C is the most efficient p
> Ni> By: Boraxman to Nightfox on
> Ni> Sat Dec 25 2021 09:12 am
>
> Ni>> But still, assembler for each processor is defined by the operations
> Ni>> that the processor understands, and there is a specific syntax for
> Ni>> each operation.
>
> Bo> Have you ever used AT&T syntax?
>
> Ni> I haven't.
>
> It's an alternative syntax for assembler, used by GAS and I guess other
> assemblers for Unix too.
>
> An example from a program I wrote is below
>
> movl %eax, BRK_Start
> movl %eax, BRK_End
> movl (%esp), %ecx
> cmp $1, %ecx
> je clifail
> cmp $3, %ecx
> jg clifail
> movl 8(%esp), %ebx
> jl success
> movb (%ebx), %al
>
>
> As you can see, the syntax is familiar, but different. Source and
> destination are the other way around for MOV commands, the offset notation
> is different, immediate values are prefixed with a $.
DM> Motorola 68K assemblers used the "move source, destination" as well
DM> (opposite of Intel/x86 assemblers).
DM> Basically, there's no real "standard" when it comes to assembly
DM> languages. --
Exactly, which is why I don't consider a language, because there isn't actually
a standard to construct a language. Each author of an assembler can make up
whatever they like. FASM is a language. MASM is a language, AT&T Intel is a
language, NASM is a language, etc etc
... MultiMail, the new multi-platform, multi-format offline reader!
--- MultiMail/Linux v0.52
þ Synchronet þ MS & RD BBs - bbs.mozysswamp.org
-
From
Nightfox@VERT/DIGDIST to
Boraxman on Wednesday, December 29, 2021 08:59:29
Re: C is the most efficient p
By: Boraxman to Digital Man on Wed Dec 29 2021 03:30 pm
Bo> Exactly, which is why I don't consider a language, because there isn't
Bo> actually a standard to construct a language. Each author of an assembler
Bo> can make up whatever they like. FASM is a language. MASM is a language,
Bo> AT&T Intel is a language, NASM is a language, etc etc
I see what you mean about assembler. But I'd think you could also argue that each processor's assembler is its own language, even though there is no standard for assembler.
Nightfox
---
þ Synchronet þ Digital Distortion: digitaldistortionbbs.com
-
From
Dr. What@VERT/DMINE to
Nightfox on Thursday, December 30, 2021 08:27:00
-=> Nightfox wrote to Boraxman <=-
Ni> I see what you mean about assembler. But I'd think you could also
Ni> argue that each processor's assembler is its own language, even though
Ni> there is no standard for assembler.
There sort of is. Back in the 80's they had macro assemblers.
Think of these as in between something like C and assembler. It looked like
assembly language, but it was "generic" (to a point). The compiler (that's
what it was) would convert your generic assembler into the specific assembly
code for your procssor.
So, in theory, you could write one set of code for a family of processors
(Intel 80x or Z80) that could be compiled across all the processors in the
family.
I don't know if they had one that would let you write for something like the
Z80 and the 6502, though.
... Lead me not into temptation, I can find my own way
--- MultiMail/Linux v0.52
þ Synchronet þ Diamond Mine Online BBS - bbs.dmine.net:24 - Fredericksburg, VA USA
-
From
Boraxman@VERT/MSRDBBS to
Dr. What on Friday, December 31, 2021 10:22:00
-=> Dr. What wrote to Nightfox <=-
DW> @MSGID: <61CDB562.2970.dove-program@dmine.net>
DW> @REPLY: <61CC93F1.3342.dove_dove-prg@digitaldistortionbbs.com>
-=> Nightfox wrote to Boraxman <=-
Ni> I see what you mean about assembler. But I'd think you could also
Ni> argue that each processor's assembler is its own language, even though
Ni> there is no standard for assembler.
DW> There sort of is. Back in the 80's they had macro assemblers.
DW> Think of these as in between something like C and assembler. It looked
DW> like assembly language, but it was "generic" (to a point). The
DW> compiler (that's what it was) would convert your generic assembler into
DW> the specific assembly code for your procssor.
DW> So, in theory, you could write one set of code for a family of
DW> processors (Intel 80x or Z80) that could be compiled across all the
DW> processors in the family.
DW> I don't know if they had one that would let you write for something
DW> like the Z80 and the 6502, though.
Was HLA (High Level Assembly) one of those? I did look into it, but I always
preferred to be explicit about the instructions I used. When I use assembler,
it is because I am targetting an explicit instruction set and want to make the
decisions about which instructions to use myself. The one time I thought a
"generic" solution would be useful is when I want assembler that runs on both
32bit and 64bit Intel natively.
Otherwise, I just use C as my generic assembler, with intrinsics where need be.
... Overtly resist change
--- MultiMail/Linux v0.52
þ Synchronet þ MS & RD BBs - bbs.mozysswamp.org
-
From
Dr. What@VERT/DMINE to
Boraxman on Friday, December 31, 2021 08:32:00
-=> Boraxman wrote to Dr. What <=-
Bo> Was HLA (High Level Assembly) one of those? I did look into it, but I
Bo> always preferred to be explicit about the instructions I used. When I
Bo> use assembler, it is because I am targetting an explicit instruction
Bo> set and want to make the decisions about which instructions to use
Bo> myself. The one time I thought a "generic" solution would be useful is
Bo> when I want assembler that runs on both 32bit and 64bit Intel natively.
I never really got into assembly language other than to know it was there.
I've learned much more as I've been doing more research into the history of
PCs.
I went from BASIC as a kid, straight to FORTRAN, Pascal, LISP, C and more.
I think I did one class in Univac assembly in college. But it was mainly to
know what was happening "under the hood" when we worked in the higher level
languages.
I did work on some FORTRAN programs for GM 20+ years ago that used an assembly
language subprogram that was self-modifying. The computer had a fancy
instruction they needed to use, but the assembler didn't support it, so they
wrote their subprogram to modify itself to use the fancy instruction the first
time it was called.
Assembler was mostly frowned upon in my work because of the time and resources
it took to use it. People time was more expsensive than computer time.
... I'm spending a year dead for tax purposes.
--- MultiMail/Linux v0.52
þ Synchronet þ Diamond Mine Online BBS - bbs.dmine.net:24 - Fredericksburg, VA USA
-
From
Boraxman@VERT/HZBBS to
Dr. What on Saturday, January 01, 2022 12:39:00
-=> Dr. What wrote to Boraxman <=-
-=> Boraxman wrote to Dr. What <=-
Bo> Was HLA (High Level Assembly) one of those? I did look into it, but I
Bo> always preferred to be explicit about the instructions I used. When I
Bo> use assembler, it is because I am targetting an explicit instruction
Bo> set and want to make the decisions about which instructions to use
Bo> myself. The one time I thought a "generic" solution would be useful is
Bo> when I want assembler that runs on both 32bit and 64bit Intel natively.
DW> I never really got into assembly language other than to know it was
DW> there. I've learned much more as I've been doing more research into the
DW> history of PCs.
DW> I went from BASIC as a kid, straight to FORTRAN, Pascal, LISP, C and
DW> more.
DW> I think I did one class in Univac assembly in college. But it was
DW> mainly to know what was happening "under the hood" when we worked in
DW> the higher level languages.
DW> I did work on some FORTRAN programs for GM 20+ years ago that used an
DW> assembly language subprogram that was self-modifying. The computer had
DW> a fancy instruction they needed to use, but the assembler didn't
DW> support it, so they wrote their subprogram to modify itself to use the
DW> fancy instruction the first time it was called.
DW> Assembler was mostly frowned upon in my work because of the time and
DW> resources it took to use it. People time was more expsensive than
DW> computer time.
I went straight from Basic to Assembler. Mostly because I wanted to write
'machine code' for a while, and at the time, that is what I got, an assembler.
Didn't have a C compiler or anything like that. It was slow going to develop
stuff, especially when it was so easy to hard lock the computer, and this was
on a machine without a reset button. So I would have to turn it off and on to
reset.
But it IS fun, and even recently I've enjoying doing some simply assembler
stuff for Linux, the Vic 20 and for DOS. Something satisfying about having
complete control of the hardware, playing with hardware interrupts, being able
to account for every byte, self modifiable code.
... MultiMail, the new multi-platform, multi-format offline reader!
--- MultiMail/Linux v0.52
þ Synchronet þ The Horizon bbs - bbs.horizonbbs.org