But I wonder if Artificial Intelligence could, after
being fed with numerous instruction sets, take a
block of binary, and analyse its source without
any prior knowledge of the instruction set?
Thinking back to my first job, nearly 50 years ago now,
when I had to dis-assemble DEC's paper tape BASIC
interpreter in order to enhance it, I guess that
dis-assemblers and decompilers must now be ten-a-penny,
especially for programs running under Windows where
the structure of Windows programs is well-known with
an assumption that C was the source language?
But I wonder if Artificial Intelligence could, after
being fed with numerous instruction sets, take a
block of binary, and analyse its source without
any prior knowledge of the instruction set?
I am particularly interested in the Binary Blob
provided for Raspberry Pi computers, with a view to
getting detailed knowledge of the video processors
employed therein.
Thinking back to my first job, nearly 50 years ago now,
when I had to dis-assemble DEC's paper tape BASIC
interpreter in order to enhance it, I guess that
dis-assemblers and decompilers must now be ten-a-penny,
especially for programs running under Windows where
the structure of Windows programs is well-known with
an assumption that C was the source language?
On Mon, 4 Jan 2021 11:00:29 +0000, gareth evans <headstone255@yahoo.com> declaimed the following:
Thinking back to my first job, nearly 50 years ago now,Actually, I think the use of disassemblers et al has fallen away. Modern processors have so many peephole optimizations and out-of-order execution streams that converting an executable back to assembly source
when I had to dis-assemble DEC's paper tape BASIC interpreter in order
to enhance it, I guess that dis-assemblers and decompilers must now be >>ten-a-penny,
especially for programs running under Windows where the structure of >>Windows programs is well-known with an assumption that C was the source >>language?
is almost meaningless -- and getting back to a high-level language is
near impossible. One would have to be an expert at the assembly for a processor to have any chance of understanding the result.
Actually, I think the use of disassemblers et al has fallen away. Modern processors have so many peephole optimizations and out-of-order execution streams that converting an executable back to assembly source is almost meaningless -- and getting back to a high-level language is near impossible. One would have to be an expert at the assembly for a processor
to have any chance of understanding the result.
On Mon, 04 Jan 2021 11:05:55 -0500, Dennis Lee Bieber wrote:
On Mon, 4 Jan 2021 11:00:29 +0000, gareth evans <headstone255@yahoo.com>
declaimed the following:
Thinking back to my first job, nearly 50 years ago now,Actually, I think the use of disassemblers et al has fallen away.
when I had to dis-assemble DEC's paper tape BASIC interpreter in order
to enhance it, I guess that dis-assemblers and decompilers must now be >>>ten-a-penny,
especially for programs running under Windows where the structure of >>>Windows programs is well-known with an assumption that C was the source >>>language?
Modern processors have so many peephole optimizations and out-of-order
execution streams that converting an executable back to assembly source
is almost meaningless -- and getting back to a high-level language is
near impossible. One would have to be an expert at the assembly for a
processor to have any chance of understanding the result.
The retro-computing guys - those who are fans of the MC6800 and MC6809 >microprocessors anyway, anyway, seem to be getting a rather good semi- >interactive disassembler up and running.
On 04/01/2021 11:00, gareth evans wrote:
Thinking back to my first job, nearly 50 years ago now,I think a lot of the problem is defining the question.
when I had to dis-assemble DEC's paper tape BASIC
interpreter in order to enhance it, I guess that
dis-assemblers and decompilers must now be ten-a-penny,
especially for programs running under Windows where
the structure of Windows programs is well-known with
an assumption that C was the source language?
But I wonder if Artificial Intelligence could, after
being fed with numerous instruction sets, take a
block of binary, and analyse its source without
any prior knowledge of the instruction set?
I am particularly interested in the Binary Blob
provided for Raspberry Pi computers, with a view to
getting detailed knowledge of the video processors
employed therein.
What do you want it to do?
On Mon, 4 Jan 2021 11:00:29 +0000, gareth evans <headstone255@yahoo.com> declaimed the following:
Thinking back to my first job, nearly 50 years ago now,Actually, I think the use of disassemblers et al has fallen away. Modern processors have so many peephole optimizations and out-of-order execution streams that converting an executable back to assembly source is almost meaningless -- and getting back to a high-level language is near impossible. One would have to be an expert at the assembly for a processor
when I had to dis-assemble DEC's paper tape BASIC
interpreter in order to enhance it, I guess that
dis-assemblers and decompilers must now be ten-a-penny,
especially for programs running under Windows where
the structure of Windows programs is well-known with
an assumption that C was the source language?
to have any chance of understanding the result.
But I wonder if Artificial Intelligence could, after
being fed with numerous instruction sets, take a
block of binary, and analyse its source without
any prior knowledge of the instruction set?
I am particularly interested in the Binary Blob
provided for Raspberry Pi computers, with a view to
getting detailed knowledge of the video processors
employed therein.
On 04/01/2021 13:08, Pancho wrote:
On 04/01/2021 11:00, gareth evans wrote:
Thinking back to my first job, nearly 50 years ago now,I think a lot of the problem is defining the question.
when I had to dis-assemble DEC's paper tape BASIC
interpreter in order to enhance it, I guess that
dis-assemblers and decompilers must now be ten-a-penny,
especially for programs running under Windows where
the structure of Windows programs is well-known with
an assumption that C was the source language?
But I wonder if Artificial Intelligence could, after
being fed with numerous instruction sets, take a
block of binary, and analyse its source without
any prior knowledge of the instruction set?
I am particularly interested in the Binary Blob
provided for Raspberry Pi computers, with a view to
getting detailed knowledge of the video processors
employed therein.
What do you want it to do?
I don't want it to do anything. I want to play at a low level
with the thing ... large oaks from little acorns grow.
On 04/01/2021 17:51, gareth evans wrote:
On 04/01/2021 13:08, Pancho wrote:
On 04/01/2021 11:00, gareth evans wrote:I don't want it to do anything. I want to play at a low level
Thinking back to my first job, nearly 50 years ago now,I think a lot of the problem is defining the question.
when I had to dis-assemble DEC's paper tape BASIC
interpreter in order to enhance it, I guess that
dis-assemblers and decompilers must now be ten-a-penny,
especially for programs running under Windows where
the structure of Windows programs is well-known with
an assumption that C was the source language?
But I wonder if Artificial Intelligence could, after
being fed with numerous instruction sets, take a
block of binary, and analyse its source without
any prior knowledge of the instruction set?
I am particularly interested in the Binary Blob
provided for Raspberry Pi computers, with a view to
getting detailed knowledge of the video processors
employed therein.
What do you want it to do?
with the thing ... large oaks from little acorns grow.
Play with what thing? What is an instruction set, what is the Binary
Blob? Why do you need an AI?
Most compilers leave fingerprints on executables you don't need an AI
to detect them. I remember decompiling in the early 80's but complex
modern code can often be a challenge to naively reverse engineer a
high level understanding from even if you do have source code. Take
away sensible variable and function names and you are stuffed.
On 04/01/2021 17:51, gareth evans wrote:
On 04/01/2021 13:08, Pancho wrote:
On 04/01/2021 11:00, gareth evans wrote:
Thinking back to my first job, nearly 50 years ago now,I think a lot of the problem is defining the question.
when I had to dis-assemble DEC's paper tape BASIC
interpreter in order to enhance it, I guess that
dis-assemblers and decompilers must now be ten-a-penny,
especially for programs running under Windows where
the structure of Windows programs is well-known with
an assumption that C was the source language?
But I wonder if Artificial Intelligence could, after
being fed with numerous instruction sets, take a
block of binary, and analyse its source without
any prior knowledge of the instruction set?
I am particularly interested in the Binary Blob
provided for Raspberry Pi computers, with a view to
getting detailed knowledge of the video processors
employed therein.
What do you want it to do?
I don't want it to do anything. I want to play at a low level
with the thing ... large oaks from little acorns grow.
Play with what thing? What is an instruction set, what is the Binary
Blob? Why do you need an AI?
Most compilers leave fingerprints on executables you don't need an AI to detect them. I remember decompiling in the early 80's but complex modern
code can often be a challenge to naively reverse engineer a high level understanding from even if you do have source code. Take away sensible variable and function names and you are stuffed.
Actually, I think the use of disassemblers et al has fallen away. Modern processors have so many peephole optimizations and out-of-order execution streams that converting an executable back to assembly source is almost meaningless -- and getting back to a high-level language is near impossible. One would have to be an expert at the assembly for a processor
to have any chance of understanding the result.
Pancho <Pancho.Dontmaileme@outlook.com> writes:
On 04/01/2021 17:51, gareth evans wrote:
On 04/01/2021 13:08, Pancho wrote:
On 04/01/2021 11:00, gareth evans wrote:I don't want it to do anything. I want to play at a low level
Thinking back to my first job, nearly 50 years ago now,I think a lot of the problem is defining the question.
when I had to dis-assemble DEC's paper tape BASIC
interpreter in order to enhance it, I guess that
dis-assemblers and decompilers must now be ten-a-penny,
especially for programs running under Windows where
the structure of Windows programs is well-known with
an assumption that C was the source language?
But I wonder if Artificial Intelligence could, after
being fed with numerous instruction sets, take a
block of binary, and analyse its source without
any prior knowledge of the instruction set?
I am particularly interested in the Binary Blob
provided for Raspberry Pi computers, with a view to
getting detailed knowledge of the video processors
employed therein.
What do you want it to do?
with the thing ... large oaks from little acorns grow.
Play with what thing? What is an instruction set, what is the Binary
Blob? Why do you need an AI?
Most compilers leave fingerprints on executables you don't need an AI
to detect them. I remember decompiling in the early 80's but complex
modern code can often be a challenge to naively reverse engineer a
high level understanding from even if you do have source code. Take
away sensible variable and function names and you are stuffed.
I've had more than one experience in putting those meaningful variable
names right back. It's actually pretty easy, a somewhat rote process.
Find the read input instruction. Since you know the layout of the input record, you now have labels to many of the references to that input
area.
I think you can work out how to proceed.
Somehow I think that we're not singing from the same hymn sheet.
Dennis Lee Bieber <wlfraed@ix.netcom.com> writes:
On Mon, 4 Jan 2021 11:00:29 +0000, gareth evans <headstone255@yahoo.com>
declaimed the following:
Thinking back to my first job, nearly 50 years ago now,Actually, I think the use of disassemblers et al has fallen away.
when I had to dis-assemble DEC's paper tape BASIC
interpreter in order to enhance it, I guess that
dis-assemblers and decompilers must now be ten-a-penny,
especially for programs running under Windows where
the structure of Windows programs is well-known with
an assumption that C was the source language?
Modern processors have so many peephole optimizations and out-of-order
execution streams that converting an executable back to assembly source is >> almost meaningless -- and getting back to a high-level language is near
impossible. One would have to be an expert at the assembly for a processor >> to have any chance of understanding the result.
Well, in my last job I often used disassemblers.
IBM z/OS.
Very useful for understanding IBM code.
I can't see what out of order execution has to do with a disassembler.
You disassemble executables.
Since I understand Assembler, I certainly got meaning out of it
even if the original was an optimized HLL. You can see what services
are being called.
On 04/01/2021 22:50, Dan Espen wrote:
Pancho <Pancho.Dontmaileme@outlook.com> writes:Without the source how do you know any meaningful variable names in the
On 04/01/2021 17:51, gareth evans wrote:
On 04/01/2021 13:08, Pancho wrote:
On 04/01/2021 11:00, gareth evans wrote:I don't want it to do anything. I want to play at a low level
Thinking back to my first job, nearly 50 years ago now,I think a lot of the problem is defining the question.
when I had to dis-assemble DEC's paper tape BASIC
interpreter in order to enhance it, I guess that
dis-assemblers and decompilers must now be ten-a-penny,
especially for programs running under Windows where
the structure of Windows programs is well-known with
an assumption that C was the source language?
But I wonder if Artificial Intelligence could, after
being fed with numerous instruction sets, take a
block of binary, and analyse its source without
any prior knowledge of the instruction set?
I am particularly interested in the Binary Blob
provided for Raspberry Pi computers, with a view to
getting detailed knowledge of the video processors
employed therein.
What do you want it to do?
with the thing ... large oaks from little acorns grow.
Play with what thing? What is an instruction set, what is the Binary
Blob? Why do you need an AI?
Most compilers leave fingerprints on executables you don't need an AI
to detect them. I remember decompiling in the early 80's but complex
modern code can often be a challenge to naively reverse engineer a
high level understanding from even if you do have source code. Take
away sensible variable and function names and you are stuffed.
I've had more than one experience in putting those meaningful variable
names right back. It's actually pretty easy, a somewhat rote process.
Find the read input instruction. Since you know the layout of the input
record, you now have labels to many of the references to that input
area.
I think you can work out how to proceed.
first place?
On 04/01/2021 22:50, Dan Espen wrote:
Pancho <Pancho.Dontmaileme@outlook.com> writes:Without the source how do you know any meaningful variable names in the
On 04/01/2021 17:51, gareth evans wrote:
On 04/01/2021 13:08, Pancho wrote:
On 04/01/2021 11:00, gareth evans wrote:I don't want it to do anything. I want to play at a low level
Thinking back to my first job, nearly 50 years ago now,I think a lot of the problem is defining the question.
when I had to dis-assemble DEC's paper tape BASIC
interpreter in order to enhance it, I guess that
dis-assemblers and decompilers must now be ten-a-penny,
especially for programs running under Windows where
the structure of Windows programs is well-known with
an assumption that C was the source language?
But I wonder if Artificial Intelligence could, after
being fed with numerous instruction sets, take a
block of binary, and analyse its source without
any prior knowledge of the instruction set?
I am particularly interested in the Binary Blob
provided for Raspberry Pi computers, with a view to
getting detailed knowledge of the video processors
employed therein.
What do you want it to do?
with the thing ... large oaks from little acorns grow.
Play with what thing? What is an instruction set, what is the Binary
Blob? Why do you need an AI?
Most compilers leave fingerprints on executables you don't need an AI
to detect them. I remember decompiling in the early 80's but complex
modern code can often be a challenge to naively reverse engineer a
high level understanding from even if you do have source code. Take
away sensible variable and function names and you are stuffed.
I've had more than one experience in putting those meaningful variable
names right back. It's actually pretty easy, a somewhat rote process.
Find the read input instruction. Since you know the layout of the input
record, you now have labels to many of the references to that input
area.
I think you can work out how to proceed.
first place?
On 04/01/2021 17:51, gareth evans wrote:
On 04/01/2021 13:08, Pancho wrote:
On 04/01/2021 11:00, gareth evans wrote:
Thinking back to my first job, nearly 50 years ago now,I think a lot of the problem is defining the question.
when I had to dis-assemble DEC's paper tape BASIC
interpreter in order to enhance it, I guess that
dis-assemblers and decompilers must now be ten-a-penny,
especially for programs running under Windows where
the structure of Windows programs is well-known with
an assumption that C was the source language?
But I wonder if Artificial Intelligence could, after
being fed with numerous instruction sets, take a
block of binary, and analyse its source without
any prior knowledge of the instruction set?
I am particularly interested in the Binary Blob
provided for Raspberry Pi computers, with a view to
getting detailed knowledge of the video processors
employed therein.
What do you want it to do?
I don't want it to do anything. I want to play at a low level
with the thing ... large oaks from little acorns grow.
Play with what thing?
What is an instruction set,
what is the Binary Blob?
Why do you need an AI?
Most compilers leave fingerprints on executables you don't need an AI to >detect them. I remember decompiling in the early 80's but complex modern
code can often be a challenge to naively reverse engineer a high level >understanding from even if you do have source code. Take away sensible >variable and function names and you are stuffed.
On 04/01/2021 22:50, Dan Espen wrote:
Pancho <Pancho.Dontmaileme@outlook.com> writes:Without the source how do you know any meaningful variable names in
On 04/01/2021 17:51, gareth evans wrote:I've had more than one experience in putting those meaningful
On 04/01/2021 13:08, Pancho wrote:
On 04/01/2021 11:00, gareth evans wrote:I don't want it to do anything. I want to play at a low level
Thinking back to my first job, nearly 50 years ago now,I think a lot of the problem is defining the question.
when I had to dis-assemble DEC's paper tape BASIC
interpreter in order to enhance it, I guess that
dis-assemblers and decompilers must now be ten-a-penny,
especially for programs running under Windows where
the structure of Windows programs is well-known with
an assumption that C was the source language?
But I wonder if Artificial Intelligence could, after
being fed with numerous instruction sets, take a
block of binary, and analyse its source without
any prior knowledge of the instruction set?
I am particularly interested in the Binary Blob
provided for Raspberry Pi computers, with a view to
getting detailed knowledge of the video processors
employed therein.
What do you want it to do?
with the thing ... large oaks from little acorns grow.
Play with what thing? What is an instruction set, what is the Binary
Blob? Why do you need an AI?
Most compilers leave fingerprints on executables you don't need an AI
to detect them. I remember decompiling in the early 80's but complex
modern code can often be a challenge to naively reverse engineer a
high level understanding from even if you do have source code. Take
away sensible variable and function names and you are stuffed.
variable
names right back. It's actually pretty easy, a somewhat rote process.
Find the read input instruction. Since you know the layout of the input
record, you now have labels to many of the references to that input
area.
I think you can work out how to proceed.
the first place?
On Mon, 4 Jan 2021 23:00:54 +0000, Pancho
<Pancho.Dontmaileme@outlook.com> wrote:
On 04/01/2021 22:50, Dan Espen wrote:
Pancho <Pancho.Dontmaileme@outlook.com> writes:Without the source how do you know any meaningful variable names in the >>first place?
On 04/01/2021 17:51, gareth evans wrote:
On 04/01/2021 13:08, Pancho wrote:
On 04/01/2021 11:00, gareth evans wrote:I don't want it to do anything. I want to play at a low level
Thinking back to my first job, nearly 50 years ago now,I think a lot of the problem is defining the question.
when I had to dis-assemble DEC's paper tape BASIC
interpreter in order to enhance it, I guess that
dis-assemblers and decompilers must now be ten-a-penny,
especially for programs running under Windows where
the structure of Windows programs is well-known with
an assumption that C was the source language?
But I wonder if Artificial Intelligence could, after
being fed with numerous instruction sets, take a
block of binary, and analyse its source without
any prior knowledge of the instruction set?
I am particularly interested in the Binary Blob
provided for Raspberry Pi computers, with a view to
getting detailed knowledge of the video processors
employed therein.
What do you want it to do?
with the thing ... large oaks from little acorns grow.
Play with what thing? What is an instruction set, what is the Binary
Blob? Why do you need an AI?
Most compilers leave fingerprints on executables you don't need an AI
to detect them. I remember decompiling in the early 80's but complex
modern code can often be a challenge to naively reverse engineer a
high level understanding from even if you do have source code. Take
away sensible variable and function names and you are stuffed.
I've had more than one experience in putting those meaningful variable
names right back. It's actually pretty easy, a somewhat rote process.
Find the read input instruction. Since you know the layout of the input >>> record, you now have labels to many of the references to that input
area.
I think you can work out how to proceed.
You start with the inputs and outputs and work into the algorithms and eventually maybe you can make sense of it.
Thinking back to my first job, nearly 50 years ago now,
when I had to dis-assemble DEC's paper tape BASIC
interpreter in order to enhance it, I guess that
dis-assemblers and decompilers must now be ten-a-penny,
especially for programs running under Windows where
the structure of Windows programs is well-known with
an assumption that C was the source language?
But I wonder if Artificial Intelligence could, after
being fed with numerous instruction sets, take a
block of binary, and analyse its source without
any prior knowledge of the instruction set?
I am particularly interested in the Binary Blob
provided for Raspberry Pi computers, with a view to
getting detailed knowledge of the video processors
employed therein.
gareth evans <headstone255@yahoo.com> writes:
I am particularly interested in the Binary Blob
provided for Raspberry Pi computers, with a view to
getting detailed knowledge of the video processors
employed therein.
Why would you do that instead of reading a reference manual for the
target architecture?
Most compilers leave fingerprints on executables you don't need an AI to detect them. I remember decompiling in the early 80's but complex modern+1001
code can often be a challenge to naively reverse engineer a high level understanding from even if you do have source code. Take away sensible variable and function names and you are stuffed.
Martin Gregorie <martin@mydomain.invalid> writes:
On Mon, 04 Jan 2021 11:05:55 -0500, Dennis Lee Bieber wrote:
On Mon, 4 Jan 2021 11:00:29 +0000, gareth evans <headstone255@yahoo.com> >>> declaimed the following:
Thinking back to my first job, nearly 50 years ago now,Actually, I think the use of disassemblers et al has fallen away.
when I had to dis-assemble DEC's paper tape BASIC interpreter in order >>>> to enhance it, I guess that dis-assemblers and decompilers must now be >>>> ten-a-penny,
especially for programs running under Windows where the structure of
Windows programs is well-known with an assumption that C was the source >>>> language?
Modern processors have so many peephole optimizations and out-of-order
execution streams that converting an executable back to assembly source
is almost meaningless -- and getting back to a high-level language is
near impossible. One would have to be an expert at the assembly for a
processor to have any chance of understanding the result.
The retro-computing guys - those who are fans of the MC6800 and MC6809
microprocessors anyway, anyway, seem to be getting a rather good semi-
interactive disassembler up and running.
Security experts have several very powerful disassemblers and decompilers they use for Intel/AMD/ARM processors.
https://en.wikibooks.org/wiki/X86_Disassembly/Disassemblers_and_Decompilers
Richard Kettlewell <invalid@invalid.invalid> wrote:
gareth evans <headstone255@yahoo.com> writes:
I am particularly interested in the Binary Blob
provided for Raspberry Pi computers, with a view to
getting detailed knowledge of the video processors
employed therein.
Why would you do that instead of reading a reference manual for the
target architecture?
The documentation for the GPU on the RPi has not been published,
he seeks to reverse engineer it from the binary code that implements a published API on it.
On 04/01/2021 22:50, Dan Espen wrote:
Pancho <Pancho.Dontmaileme@outlook.com> writes:Without the source how do you know any meaningful variable names in the
On 04/01/2021 17:51, gareth evans wrote:
On 04/01/2021 13:08, Pancho wrote:
On 04/01/2021 11:00, gareth evans wrote:I don't want it to do anything. I want to play at a low level
Thinking back to my first job, nearly 50 years ago now,I think a lot of the problem is defining the question.
when I had to dis-assemble DEC's paper tape BASIC
interpreter in order to enhance it, I guess that
dis-assemblers and decompilers must now be ten-a-penny,
especially for programs running under Windows where
the structure of Windows programs is well-known with
an assumption that C was the source language?
But I wonder if Artificial Intelligence could, after
being fed with numerous instruction sets, take a
block of binary, and analyse its source without
any prior knowledge of the instruction set?
I am particularly interested in the Binary Blob
provided for Raspberry Pi computers, with a view to
getting detailed knowledge of the video processors
employed therein.
What do you want it to do?
with the thing ... large oaks from little acorns grow.
Play with what thing? What is an instruction set, what is the Binary
Blob? Why do you need an AI?
Most compilers leave fingerprints on executables you don't need an AI
to detect them. I remember decompiling in the early 80's but complex
modern code can often be a challenge to naively reverse engineer a
high level understanding from even if you do have source code. Take
away sensible variable and function names and you are stuffed.
I've had more than one experience in putting those meaningful variable
names right back. It's actually pretty easy, a somewhat rote process.
Find the read input instruction. Since you know the layout of the input
record, you now have labels to many of the references to that input
area.
I think you can work out how to proceed.
first place?
Pancho <Pancho.Dontmaileme@outlook.com> writes:
On 04/01/2021 22:50, Dan Espen wrote:
Pancho <Pancho.Dontmaileme@outlook.com> writes:Without the source how do you know any meaningful variable names in
On 04/01/2021 17:51, gareth evans wrote:I've had more than one experience in putting those meaningful
On 04/01/2021 13:08, Pancho wrote:
On 04/01/2021 11:00, gareth evans wrote:I don't want it to do anything. I want to play at a low level
Thinking back to my first job, nearly 50 years ago now,I think a lot of the problem is defining the question.
when I had to dis-assemble DEC's paper tape BASIC
interpreter in order to enhance it, I guess that
dis-assemblers and decompilers must now be ten-a-penny,
especially for programs running under Windows where
the structure of Windows programs is well-known with
an assumption that C was the source language?
But I wonder if Artificial Intelligence could, after
being fed with numerous instruction sets, take a
block of binary, and analyse its source without
any prior knowledge of the instruction set?
I am particularly interested in the Binary Blob
provided for Raspberry Pi computers, with a view to
getting detailed knowledge of the video processors
employed therein.
What do you want it to do?
with the thing ... large oaks from little acorns grow.
Play with what thing? What is an instruction set, what is the Binary
Blob? Why do you need an AI?
Most compilers leave fingerprints on executables you don't need an AI
to detect them. I remember decompiling in the early 80's but complex
modern code can often be a challenge to naively reverse engineer a
high level understanding from even if you do have source code. Take
away sensible variable and function names and you are stuffed.
variable
names right back. It's actually pretty easy, a somewhat rote process.
Find the read input instruction. Since you know the layout of the input >>> record, you now have labels to many of the references to that input
area.
I think you can work out how to proceed.
the first place?
The programs were reading our files.
We already had record layouts for those files.
Pancho <Pancho.Dontmaileme@outlook.com> writes:
Most compilers leave fingerprints on executables you don't need an AI
to detect them. I remember decompiling in the early 80's but complex
modern code can often be a challenge to naively reverse engineer a
high level understanding from even if you do have source code. Take
away sensible variable and function names and you are stuffed.
I've had more than one experience in putting those meaningful variable
names right back. It's actually pretty easy, a somewhat rote process.
Find the read input instruction. Since you know the layout of the input record, you now have labels to many of the references to that input
area.
I think you can work out how to proceed.
He's talking about something that you can give a pile of object code
from an unknown source (I mean _really_ unknown--it could be for Z/OS
or a VAX or Intel or Alpha or any other architecture, compiled from C
or PL/I or Fortran or pick a language at random, with it figuring from
there what the code does.
We aren't there, ultimately, to reproduce *the* exact source, but to
arrive at *an* editable source, that we can use.
Like science, and religion, it doesn't have to be true, to be useful,
and like science, and religion, its ultimate content will be forever truth-indecidable.
But I wonder if Artificial Intelligence could, after
being fed with numerous instruction sets, take a
block of binary, and analyse its source without
any prior knowledge of the instruction set?
I am particularly interested in the Binary Blob
provided for Raspberry Pi computers, with a view to
getting detailed knowledge of the video processors
employed therein.
gareth evans <headstone255@yahoo.com> writes:
Thinking back to my first job, nearly 50 years ago now,
when I had to dis-assemble DEC's paper tape BASIC
interpreter in order to enhance it, I guess that
dis-assemblers and decompilers must now be ten-a-penny,
especially for programs running under Windows where
the structure of Windows programs is well-known with
an assumption that C was the source language?
But I wonder if Artificial Intelligence could, after
being fed with numerous instruction sets, take a
block of binary, and analyse its source without
any prior knowledge of the instruction set?
I am particularly interested in the Binary Blob
provided for Raspberry Pi computers, with a view to
getting detailed knowledge of the video processors
employed therein.
Why would you do that instead of reading a reference manual for the
target architecture?
The whole process is actually covered in philosophy: It is the problem
of induction. How do you work back from results to causes?
Given that the answer to Life The Universe and Everything was '42', what
in fact was the question? (40+2)? (6x7)?
There are an infinite number of expressions that give that answer, and
an infinite number that don't.
This is where Karl Poppers philosophy of science steps in. Instead of regarding there to be One True Reason why science works, namely that scientists are in the business of discovering the Truth, he pointed out
that just because stuff worked (and 6x7 does indeed give 42) that was no reason to suppose that some other completely different construct might
not work equally as well, and that had indeed happened with relativity
and Newtonian gravity.
The Problem of Induction is that many theories can give the same
predicted result. Sherlock Holmes is a sham. The Dog That Didnt Bark in
the Night didn't bark, allegedly, because it knew the thief. Why? It
might have been abducted by aliens, drugged, actually out hunting
rabbits, in a soundproof box, or the Russians did it using a robot. or
just too plumb wore out with old age to care.
The truth is not provable. All we have is stuff that works. Given
running machine code, there are an infinite number of source codes that
might have produced it, and an infinite number that did not.
We aren't there, ultimately, to reproduce *the* exact source, but to
arrive at *an* editable source, that we can use.
Like science, and religion, it doesn't have to be true, to be useful,
and like science, and religion, its ultimate content will be forever truth-indecidable.
Ahem A Rivet's Shot <steveo@eircom.net> writes:
Richard Kettlewell <invalid@invalid.invalid> wrote:
gareth evans <headstone255@yahoo.com> writes:
I am particularly interested in the Binary Blob
provided for Raspberry Pi computers, with a view to
getting detailed knowledge of the video processors
employed therein.
Why would you do that instead of reading a reference manual for the
target architecture?
The documentation for the GPU on the RPi has not been published,
he seeks to reverse engineer it from the binary code that implements a
published API on it.
I was under the impression it was a VideoCore IV, which appears to be sufficiently documented for GNU toolchain port.
https://docs.broadcom.com/doc/12358545 https://github.com/itszor/vc4-toolchain
gareth evans <headstone255@yahoo.com> writes:
Thinking back to my first job, nearly 50 years ago now,
when I had to dis-assemble DEC's paper tape BASIC
interpreter in order to enhance it, I guess that
dis-assemblers and decompilers must now be ten-a-penny,
especially for programs running under Windows where
the structure of Windows programs is well-known with
an assumption that C was the source language?
But I wonder if Artificial Intelligence could, after
being fed with numerous instruction sets, take a
block of binary, and analyse its source without
any prior knowledge of the instruction set?
I am particularly interested in the Binary Blob
provided for Raspberry Pi computers, with a view to
getting detailed knowledge of the video processors
employed therein.
Why would you do that instead of reading a reference manual for the
target architecture?
I just can't see how I would reverse engineer an understanding of
anything but the most simple disassembly in any reasonable time frame.
If that became possible, it would not be a far step for an AI machine to self-analyse itself or another AI machine. It could make clones and unwittingly modify them.
The C. Some things that are
neat in assembler are ugly as sin in C.
On 05/01/2021 11:13, Richard Kettlewell wrote:
Ahem A Rivet's Shot <steveo@eircom.net> writes:
The documentation for the GPU on the RPi has not been published,
he seeks to reverse engineer it from the binary code that implements a
published API on it.
I was under the impression it was a VideoCore IV, which appears to be
sufficiently documented for GNU toolchain port.
https://docs.broadcom.com/doc/12358545
https://github.com/itszor/vc4-toolchain
The first of those does not produce anything.
Does the second describe the GPU in some detail and describe
the instruction set such that I might produce my own binary blob
to do something completely different?
Adrian Caspersz <email@here.invalid> schrieb:
If that became possible, it would not be a far step for an AI machine to
self-analyse itself or another AI machine. It could make clones and
unwittingly modify them.
The solution to the halting problem :-)
On Tue, 05 Jan 2021 10:38:16 +0000, Pancho wrote:
I just can't see how I would reverse engineer an understanding of
anything but the most simple disassembly in any reasonable time frame.
One of my former colleagues did a Ph.D. on it:
https://kar.kent.ac.uk/61349/
The Natural Philosopher <tnp@invalid.invalid> schrieb:
The C. Some things that are
neat in assembler are ugly as sin in C.
One thing that is hard to do with C is to have different entries
to the same function, something like:
bar:
.cfi_startproc
... do something
foo:
... do something else
ret
and then either call foo or bar.
Yes, I understand how you can disassemble a simple program. I did it
myself in the 1980s.
Because no such manuals are available. The BroadCom GPUs are
a closely guarded proprietary secret to hoi polloi.
On 05/01/2021 12:46, Bob Eager wrote:
On Tue, 05 Jan 2021 10:38:16 +0000, Pancho wrote:That looks like a surprisingly good fit for my idle, poorly thought out, wonderings.
I just can't see how I would reverse engineer an understanding of
anything but the most simple disassembly in any reasonable time frame.
One of my former colleagues did a Ph.D. on it:
https://kar.kent.ac.uk/61349/
Thinking back to my first job, nearly 50 years ago now,
when I had to dis-assemble DEC's paper tape BASIC
interpreter in order to enhance it, I guess that
dis-assemblers and decompilers must now be ten-a-penny,
gareth evans <headstone255@yahoo.com> wrote:
Because no such manuals are available. The BroadCom GPUs are a closely
guarded proprietary secret to hoi polloi.
Thanks for not writing the hoi polloi :)
The Natural Philosopher <tnp@invalid.invalid> schrieb:
The C. Some things that are
neat in assembler are ugly as sin in C.
One thing that is hard to do with C is to have different entries
to the same function, something like:
bar:
.cfi_startproc
... do something
foo:
... do something else
ret
and then either call foo or bar.
gareth evans <headstone255@yahoo.com> wrote:
Because no such manuals are available. The BroadCom GPUs are
a closely guarded proprietary secret to hoi polloi.
Thanks for not writing the hoi polloi :)
On Tue, 05 Jan 2021 10:38:16 +0000, Pancho wrote:
I just can't see how I would reverse engineer an understanding of
anything but the most simple disassembly in any reasonable time frame.
One of my former colleagues did a Ph.D. on it:
https://kar.kent.ac.uk/61349/
gareth evans <headstone255@yahoo.com> writes:
On 05/01/2021 11:13, Richard Kettlewell wrote:
Ahem A Rivet's Shot <steveo@eircom.net> writes:
The documentation for the GPU on the RPi has not been published,
he seeks to reverse engineer it from the binary code that implements a >>>> published API on it.
I was under the impression it was a VideoCore IV, which appears to be
sufficiently documented for GNU toolchain port.
https://docs.broadcom.com/doc/12358545
https://github.com/itszor/vc4-toolchain
The first of those does not produce anything.
It’s the VideoCore IV 3D Architecture Reference Guide.
On 05/01/2021 13:39, Richard Kettlewell wrote:
gareth evans <headstone255@yahoo.com> writes:
On 05/01/2021 11:13, Richard Kettlewell wrote:
Ahem A Rivet's Shot <steveo@eircom.net> writes:
The documentation for the GPU on the RPi has not been published, >>>>> he seeks to reverse engineer it from the binary code that implements a >>>>> published API on it.
I was under the impression it was a VideoCore IV, which appears to be
sufficiently documented for GNU toolchain port.
https://docs.broadcom.com/doc/12358545
https://github.com/itszor/vc4-toolchain
The first of those does not produce anything.
It’s the VideoCore IV 3D Architecture Reference Guide.
Perhaps not available to the Man On The Clapham Omnibus.
Are you in a privileged position with Broadcom to have
such access?
gareth evans <headstone255@yahoo.com> writes:
Thinking back to my first job, nearly 50 years ago now,
when I had to dis-assemble DEC's paper tape BASIC
interpreter in order to enhance it, I guess that
dis-assemblers and decompilers must now be ten-a-penny,
especially for programs running under Windows where
the structure of Windows programs is well-known with
an assumption that C was the source language?
But I wonder if Artificial Intelligence could, after
being fed with numerous instruction sets, take a
block of binary, and analyse its source without
any prior knowledge of the instruction set?
I am particularly interested in the Binary Blob
provided for Raspberry Pi computers, with a view to
getting detailed knowledge of the video processors
employed therein.
Why would you do that instead of reading a reference manual for the
target architecture?
On 05/01/2021 11:13, Richard Kettlewell wrote:
Ahem A Rivet's Shot <steveo@eircom.net> writes:
Richard Kettlewell <invalid@invalid.invalid> wrote:
gareth evans <headstone255@yahoo.com> writes:
I am particularly interested in the Binary Blob
provided for Raspberry Pi computers, with a view to
getting detailed knowledge of the video processors
employed therein.
Why would you do that instead of reading a reference manual for the
target architecture?
The documentation for the GPU on the RPi has not been published,
he seeks to reverse engineer it from the binary code that implements a
published API on it.
I was under the impression it was a VideoCore IV, which appears to be
sufficiently documented for GNU toolchain port.
https://docs.broadcom.com/doc/12358545
https://github.com/itszor/vc4-toolchain
The first of those does not produce anything.
That it warrants such an involved explanation is very good reason why
such techniques should be avoided today! :-)
Adrian Caspersz <email@here.invalid> schrieb:
If that became possible, it would not be a far step for an AI machine toThe solution to the halting problem :-)
self-analyse itself or another AI machine. It could make clones and
unwittingly modify them.
I was under the impression it was a VideoCore IV, which appears to be sufficiently documented for GNU toolchain port.
https://docs.broadcom.com/doc/12358545
On 05/01/2021 14:11, A. Dumas wrote:
gareth evans <headstone255@yahoo.com> wrote:
Because no such manuals are available. The BroadCom GPUs are
a closely guarded proprietary secret to hoi polloi.
Thanks for not writing the hoi polloi :)
... and yet my multimeter will read AC current! :-)
... or, in the office, all electrical equipment has to
be PAT tested.
On Tue, 05 Jan 2021 15:30:06 +0000, gareth evans wrote:
That it warrants such an involved explanation is very good reason why
such techniques should be avoided today! :-)
Agreed.
That sort of thing is so much easier in Java or Algol 68, which both recognise that methods/procedures with the same name but different
parameter lists are indeed different pieces of code rather than a stupid mistake.
Given that the answer to Life The Universe and Everything was '42',
what in fact was the question? (40+2)? (6x7)?
On Tue, 5 Jan 2021 15:35:26 +0000
gareth evans <headstone255@yahoo.com> wrote:
On 05/01/2021 14:11, A. Dumas wrote:
gareth evans <headstone255@yahoo.com> wrote:
Because no such manuals are available. The BroadCom GPUs are
a closely guarded proprietary secret to hoi polloi.
Thanks for not writing the hoi polloi :)
... and yet my multimeter will read AC current! :-)
... or, in the office, all electrical equipment has to
be PAT tested.
Yes and you need your PIN number to use the ATM machine.
On 2021-01-05, Martin Gregorie <martin@mydomain.invalid> wrote:
On Tue, 05 Jan 2021 15:30:06 +0000, gareth evans wrote:
That it warrants such an involved explanation is very good reason why
such techniques should be avoided today! :-)
Agreed.
That sort of thing is so much easier in Java or Algol 68, which both
recognise that methods/procedures with the same name but different
parameter lists are indeed different pieces of code rather than a stupid
mistake.
I avoid that technique - it invites other stupid mistakes.
Thinking back to my first job, nearly 50 years ago now,
when I had to dis-assemble DEC's paper tape BASIC
interpreter in order to enhance it, I guess that
dis-assemblers and decompilers must now be ten-a-penny,
especially for programs running under Windows where
the structure of Windows programs is well-known with
an assumption that C was the source language?
But I wonder if Artificial Intelligence could, after
being fed with numerous instruction sets, take a
block of binary, and analyse its source without
any prior knowledge of the instruction set?
I am particularly interested in the Binary Blob
provided for Raspberry Pi computers, with a view to
getting detailed knowledge of the video processors
employed therein.
On Mon, 4 Jan 2021 21:57:32 +0000, Pancho
<Pancho.Dontmaileme@outlook.com> wrote:
On 04/01/2021 17:51, gareth evans wrote:
On 04/01/2021 13:08, Pancho wrote:
On 04/01/2021 11:00, gareth evans wrote:
Thinking back to my first job, nearly 50 years ago now,I think a lot of the problem is defining the question.
when I had to dis-assemble DEC's paper tape BASIC
interpreter in order to enhance it, I guess that
dis-assemblers and decompilers must now be ten-a-penny,
especially for programs running under Windows where
the structure of Windows programs is well-known with
an assumption that C was the source language?
But I wonder if Artificial Intelligence could, after
being fed with numerous instruction sets, take a
block of binary, and analyse its source without
any prior knowledge of the instruction set?
I am particularly interested in the Binary Blob
provided for Raspberry Pi computers, with a view to
getting detailed knowledge of the video processors
employed therein.
What do you want it to do?
I don't want it to do anything. I want to play at a low level
with the thing ... large oaks from little acorns grow.
Play with what thing?
The pieces of the hardware supported by the Blob.
What is an instruction set,
The list of binary codes that tell the procesor what to do.
what is the Binary Blob?
On the Raspberry Pi it is the non-Open-Source proprietary code that is provided by the chip manufacturer, including parts of the boot loader
and the 3D drivers among other things.
Why do you need an AI?
Why not?
Most compilers leave fingerprints on executables you don't need an AI to
detect them. I remember decompiling in the early 80's but complex modern
code can often be a challenge to naively reverse engineer a high level
understanding from even if you do have source code. Take away sensible
variable and function names and you are stuffed.
He's talking about something that you can give a pile of object code
from an unknown source (I mean _really_ unknown--it could be for Z/OS
or a VAX or Intel or Alpha or any other architecture, compiled from C
or PL/I or Fortran or pick a language at random, with it figuring from
there what the code does.
On 04/01/2021 17:52, Scott Lurndal wrote:
Martin Gregorie <martin@mydomain.invalid> writes:Yes. I am certain that certain compilers and certain languages leave a fingerprint, Always THAT resister, used to do THAT job, always that particular sequence of assembly to mimic that high level construct.
On Mon, 04 Jan 2021 11:05:55 -0500, Dennis Lee Bieber wrote:
On Mon, 4 Jan 2021 11:00:29 +0000, gareth evans <headstone255@yahoo.com> >>>> declaimed the following:
Thinking back to my first job, nearly 50 years ago now,Actually, I think the use of disassemblers et al has fallen away.
when I had to dis-assemble DEC's paper tape BASIC interpreter in order >>>>> to enhance it, I guess that dis-assemblers and decompilers must now be >>>>> ten-a-penny,
especially for programs running under Windows where the structure of >>>>> Windows programs is well-known with an assumption that C was the source >>>>> language?
Modern processors have so many peephole optimizations and out-of-order >>>> execution streams that converting an executable back to assembly source >>>> is almost meaningless -- and getting back to a high-level language is
near impossible. One would have to be an expert at the assembly for a
processor to have any chance of understanding the result.
The retro-computing guys - those who are fans of the MC6800 and MC6809
microprocessors anyway, anyway, seem to be getting a rather good semi-
interactive disassembler up and running.
Security experts have several very powerful disassemblers and decompilers
they use for Intel/AMD/ARM processors.
https://en.wikibooks.org/wiki/X86_Disassembly/Disassemblers_and_Decompilers >>
I cut my teeth on microprocessor assembly. The C. Some things that are
neat in assembler are ugly as sin in C. Take a call table. In assembler,
you set up a range of memory whose contents contain the addresses of subroutines. You load the accumulator with a number, left shift it once,
add it to the content of a register set to point to the base of that
memory block, and use that register as pointing to an address whose
contents are the address you want to 'call' Simple, efficient and
provided you ensure nothing out of bounds is in the accumulator, bomb proof.
Now try that in C, you need an array of pointers to functions, and a
simple check on the index you engage, followed by a declaration to call
the function whose address is in the array of pointers to functions. I
never ever managed to get an 8 bit compiler to actually do that. People
just don't call the contents of an array of pointers to functions.
I was under the impression it was a VideoCore IV, which appears to be sufficiently documented for GNU toolchain port.
https://docs.broadcom.com/doc/12358545 https://github.com/itszor/vc4-toolchain
Yes. I am certain that certain compilers and certain languages leave a fingerprint, Always THAT resister, used to do THAT job, always that particular sequence of assembly to mimic that high level construct.
I think it is up to a limited point entirely possible to make an AI that could replace machine code with editable and compilable source code.
But there will always be the Problem Of Induction. Many many possible constructs in source using an infinite number of random variable and function names, could compile to the same object code. And there is no
way to reinstate the comments either, so it becomes an exercise
ultimately in hand editing and reinstating the comments manually -
almost as big a job as writing from scratch.
On 04/01/2021 22:50, Dan Espen wrote:
Pancho <Pancho.Dontmaileme@outlook.com> writes:
Most compilers leave fingerprints on executables you don't need an AI
to detect them. I remember decompiling in the early 80's but complex
modern code can often be a challenge to naively reverse engineer a
high level understanding from even if you do have source code. Take
away sensible variable and function names and you are stuffed.
I've had more than one experience in putting those meaningful variable
names right back. It's actually pretty easy, a somewhat rote process.
Find the read input instruction. Since you know the layout of the input
record, you now have labels to many of the references to that input
area.
I think you can work out how to proceed.
ISTR that my attack on the executable started by seeking out lines
of code that might be subroutine calls, "JSR PC, address" in the
PDP11 code. This served to create a number of identifiable and
separate blocks from which to proceed.
Of course, this was much easier as it was a stand-alone paper
tape program with no operating system underneath to muddy the
water.
The Natural Philosopher <tnp@invalid.invalid> schrieb:
The C. Some things that are
neat in assembler are ugly as sin in C.
One thing that is hard to do with C is to have different entries
to the same function, something like:
bar:
.cfi_startproc
... do something
foo:
... do something else
ret
and then either call foo or bar.
On 05/01/2021 20:12, Charlie Gibbs wrote:
On 2021-01-05, Martin Gregorie <martin@mydomain.invalid> wrote:+1
On Tue, 05 Jan 2021 15:30:06 +0000, gareth evans wrote:
That it warrants such an involved explanation is very good reason why
such techniques should be avoided today! :-)
Agreed.
That sort of thing is so much easier in Java or Algol 68, which both
recognise that methods/procedures with the same name but different
parameter lists are indeed different pieces of code rather than a
stupid mistake.
I avoid that technique - it invites other stupid mistakes.
Why any coder would want a procname with different calling lists is
beyond me.
To object to having x_procname and y_procname etc suggests a coder is
not focussed on the matter in hand but is religiously adhering to some irrelevant convention.
You shouldn’t need declarations in C unless you’re using one of those new-fangled compilers that requires them. Old code should still be
supported, though.
On 04/01/2021 11:00, gareth evans wrote:
But I wonder if Artificial Intelligence could, after
being fed with numerous instruction sets, take a
block of binary, and analyse its source without
any prior knowledge of the instruction set?
That's two separate problems. The first is taking any block of binary
and identifying if it contains an executable format of a particular
processor architecture and OS.
The second is taking a known executable format, turning it in to a human readable form, such as a high level language - which doesn't have to be
the same language it was written in.
J. Clarke <jclarke.873638@gmail.com> wrote:
On Mon, 4 Jan 2021 21:57:32 +0000, Pancho
<Pancho.Dontmaileme@outlook.com> wrote:
On 04/01/2021 17:51, gareth evans wrote:
On 04/01/2021 13:08, Pancho wrote:
On 04/01/2021 11:00, gareth evans wrote:
Thinking back to my first job, nearly 50 years ago now,I think a lot of the problem is defining the question.
when I had to dis-assemble DEC's paper tape BASIC
interpreter in order to enhance it, I guess that
dis-assemblers and decompilers must now be ten-a-penny,
especially for programs running under Windows where
the structure of Windows programs is well-known with
an assumption that C was the source language?
But I wonder if Artificial Intelligence could, after
being fed with numerous instruction sets, take a
block of binary, and analyse its source without
any prior knowledge of the instruction set?
I am particularly interested in the Binary Blob
provided for Raspberry Pi computers, with a view to
getting detailed knowledge of the video processors
employed therein.
What do you want it to do?
I don't want it to do anything. I want to play at a low level
with the thing ... large oaks from little acorns grow.
Play with what thing?
The pieces of the hardware supported by the Blob.
What is an instruction set,
The list of binary codes that tell the procesor what to do.
what is the Binary Blob?
On the Raspberry Pi it is the non-Open-Source proprietary code that is
provided by the chip manufacturer, including parts of the boot loader
and the 3D drivers among other things.
Why do you need an AI?
Why not?
Most compilers leave fingerprints on executables you don't need an AI to >>> detect them. I remember decompiling in the early 80's but complex modern >>> code can often be a challenge to naively reverse engineer a high level
understanding from even if you do have source code. Take away sensible
variable and function names and you are stuffed.
He's talking about something that you can give a pile of object code
from an unknown source (I mean _really_ unknown--it could be for Z/OS
or a VAX or Intel or Alpha or any other architecture, compiled from C
or PL/I or Fortran or pick a language at random, with it figuring from
there what the code does.
The object code format would give you a clue, at least for most mainstream architectures.
On 05/01/2021 11:13, Richard Kettlewell wrote:
I was under the impression it was a VideoCore IV, which appears to be
sufficiently documented for GNU toolchain port.
https://docs.broadcom.com/doc/12358545
https://github.com/itszor/vc4-toolchain
I understand that the latest Pi is indeed a VC4.
Be aware that as a SIMD processor it's ... odd. Very odd.
That documentation ties up with what I remember about the device, and I
wish I'd had it when I was working on it.
On Tue, 05 Jan 2021 14:06:57 -0700, Peter Flass wrote:
You shouldn’t need declarations in C unless you’re using one of those
new-fangled compilers that requires them. Old code should still be
supported, though.
Last time I tried it, (about 2 months ago), the current GNU C compiler accepts the old K&R C first edition procedure declaration syntax. I wish
more compilers worked this way.
On Tue, 05 Jan 2021 20:20:27 +0000, gareth evans wrote:
On 05/01/2021 20:12, Charlie Gibbs wrote:
On 2021-01-05, Martin Gregorie <martin@mydomain.invalid> wrote:
On Tue, 05 Jan 2021 15:30:06 +0000, gareth evans wrote:
That it warrants such an involved explanation is very good reason why >>>>> such techniques should be avoided today! :-)
Agreed.
That sort of thing is so much easier in Java or Algol 68, which both
recognise that methods/procedures with the same name but different
parameter lists are indeed different pieces of code rather than a
stupid mistake.
I avoid that technique - it invites other stupid mistakes.
+1
Why any coder would want a procname with different calling lists is
beyond me.
To object to having x_procname and y_procname etc suggests a coder is
not focussed on the matter in hand but is religiously adhering to some
irrelevant convention.
Its very useful indeed in Java: its often helpful to use the same name
with different parameter lists for constructors and also for methods that
all do similar jobs, e.g for outputting values from a class its helpful
to use the same method name, with different parameter lists say:
getValue(String caption, int value);
getValue(String caption, double value);
getValue(String caption, boolean value);
On 2021-01-05, Martin Gregorie <martin@mydomain.invalid> wrote:
Its very useful indeed in Java: its often helpful to use the same name
with different parameter lists for constructors and also for methods that
all do similar jobs, e.g for outputting values from a class its helpful
to use the same method name, with different parameter lists say:
getValue(String caption, int value);
getValue(String caption, double value);
getValue(String caption, boolean value);
I find it easier to just cast "value" to a consistent type.
But then, I'm a hidebound C weenie...
On 2021-01-05, Martin Gregorie <martin@mydomain.invalid> wrote:
On Tue, 05 Jan 2021 14:06:57 -0700, Peter Flass wrote:
You shouldn’t need declarations in C unless you’re using one of those >>> new-fangled compilers that requires them. Old code should still be
supported, though.
Last time I tried it, (about 2 months ago), the current GNU C compiler
accepts the old K&R C first edition procedure declaration syntax. I
wish more compilers worked this way.
I write functions this way:
#ifdef PROTOTYPE char *foo(char *bar, int baz)
#else char *foo(bar, baz) char *bar; int baz;
#endif
One #define in a header file adapts it to any old or new compiler.
It works for declarations too.
In both languages, context selects the appropriate method
On 2021-01-05, Martin Gregorie <martin@mydomain.invalid> wrote:
On Tue, 05 Jan 2021 15:30:06 +0000, gareth evans wrote:
That it warrants such an involved explanation is very good reason why
such techniques should be avoided today! :-)
Agreed.
That sort of thing is so much easier in Java or Algol 68, which both
recognise that methods/procedures with the same name but different
parameter lists are indeed different pieces of code rather than a stupid
mistake.
I avoid that technique - it invites other stupid mistakes.
On 05/01/2021 22:23, Martin Gregorie wrote:
In both languages, context selects the appropriate method
Until it doesn't.
A day wasted debugging JavaScript to ascertain why IE was totally
different to Firefox.
There was an implicit cast happening in IE which wasn't in Firefox that turned a 1 into a "1"..
Context dependency just adds another layer of complexity and a source of
more bugs
The Natural Philosopher <tnp@invalid.invalid> schrieb:
The C. Some things that are
neat in assembler are ugly as sin in C.
One thing that is hard to do with C is to have different entries
to the same function, something like:
bar:
.cfi_startproc
... do something
foo:
... do something else
ret
and then either call foo or bar.
This is a common construction in compiler-generated
machine code, if the first function calls another
just before return.
bar: .cfi_startproc
... do something
call foo
ret
foo: .. do more ..
ret
On Wed, 6 Jan 2021 14:17:30 +0200
Tauno Voipio <tauno.voipio@notused.fi.invalid> wrote:
This is a common construction in compiler-generated
machine code, if the first function calls another
just before return.
bar: .cfi_startproc
... do something
call foo
ret
I recall optimising things like that by changing the last two lines
to:
jmp foo
foo: .. do more ..
ret
On Tue, 05 Jan 2021 14:06:57 -0700, Peter Flass wrote:
You shouldn’t need declarations in C unless you’re using one of thoseLast time I tried it, (about 2 months ago), the current GNU C compiler >accepts the old K&R C first edition procedure declaration syntax. I wish
new-fangled compilers that requires them. Old code should still be
supported, though.
more compilers worked this way.
Martin Gregorie <martin@mydomain.invalid> writes:
On Tue, 05 Jan 2021 14:06:57 -0700, Peter Flass wrote:
You shouldn’t need declarations in C unless you’re using one of those >>> new-fangled compilers that requires them. Old code should still beLast time I tried it, (about 2 months ago), the current GNU C compiler >>accepts the old K&R C first edition procedure declaration syntax. I wish >>more compilers worked this way.
supported, though.
It will not, however, accept the original V6 C "a =+ b" ambiguous
syntax, so older code may still need to be edited before compilation
with a modern compiler.
On Wed, 06 Jan 2021 15:15:36 +0000, Scott Lurndal wrote:
Martin Gregorie <martin@mydomain.invalid> writes:
On Tue, 05 Jan 2021 14:06:57 -0700, Peter Flass wrote:
You shouldn’t need declarations in C unless you’re using one of those >>>> new-fangled compilers that requires them. Old code should still beLast time I tried it, (about 2 months ago), the current GNU C compiler >>>accepts the old K&R C first edition procedure declaration syntax. I wish >>>more compilers worked this way.
supported, though.
It will not, however, accept the original V6 C "a =+ b" ambiguous
syntax, so older code may still need to be edited before compilation
with a modern compiler.
I don't *think* I've ever written that or even seen it in valid code.
Martin Gregorie <martin@mydomain.invalid> writes:
On Wed, 06 Jan 2021 15:15:36 +0000, Scott Lurndal wrote:From the V6 C compiler source:
Martin Gregorie <martin@mydomain.invalid> writes:
On Tue, 05 Jan 2021 14:06:57 -0700, Peter Flass wrote:
You shouldn’t need declarations in C unless you’re using one ofLast time I tried it, (about 2 months ago), the current GNU C compiler >>>>accepts the old K&R C first edition procedure declaration syntax. I >>>>wish more compilers worked this way.
those new-fangled compilers that requires them. Old code should
still be supported, though.
It will not, however, accept the original V6 C "a =+ b" ambiguous
syntax, so older code may still need to be edited before compilation
with a modern compiler.
I don't *think* I've ever written that or even seen it in valid code.
/*
* The hash table locations of the keywords * are marked; if an
identifier hashes to one of * these locations, it is looked up
in in the keyword * table first.
*/
for (ip=kwtab; (sp = ip->kwname); ip++) {
i = 0;
while (*sp)
i =+ *sp++;
hshtab[i%hshsiz].hflag = FKEYW;
}
Note also that in that version of the compiler, MOS (member of
structure) names were global and could be used with any pointer
regardless of type.
https://github.com/mortdeus/legacy-cc/blob/master/last1120c/c00.c
This makes it difficult to build the original V6 c compiler using a
modern compiler :-)
On Wed, 06 Jan 2021 09:36:10 +0000, The Natural Philosopher wrote:
On 05/01/2021 22:23, Martin Gregorie wrote:
In both languages, context selects the appropriate method
Until it doesn't.
A day wasted debugging JavaScript to ascertain why IE was totally
different to Firefox.
There was an implicit cast happening in IE which wasn't in Firefox that
turned a 1 into a "1"..
Context dependency just adds another layer of complexity and a source of
more bugs
... well, if you use crappy interpreted languages with untyped variables
then you've chosen to accept that sort of thing as normal.
I much prefer strongly typed languages, so the only language I use that
isn't strongly typed is the bash shell script.
On 06/01/2021 10:43, Martin Gregorie wrote:
On Wed, 06 Jan 2021 09:36:10 +0000, The Natural Philosopher wrote:Sadly javaScript is all you get in a browser
On 05/01/2021 22:23, Martin Gregorie wrote:
In both languages, context selects the appropriate method
Until it doesn't.
A day wasted debugging JavaScript to ascertain why IE was totally
different to Firefox.
There was an implicit cast happening in IE which wasn't in Firefox
that turned a 1 into a "1"..
Context dependency just adds another layer of complexity and a source
of more bugs
... well, if you use crappy interpreted languages with untyped
variables then you've chosen to accept that sort of thing as normal.
Martin Gregorie wrote:
if you use crappy interpreted languages with untyped variables
then you've chosen to accept that sort of thing as normal.
Sadly javaScript is all you get in a browser
On 06/01/2021 10:43, Martin Gregorie wrote:
... well, if you use crappy interpreted languages with untyped variablesSadly javaScript is all you get in a browser
then you've chosen to accept that sort of thing as normal.
On Wed, 06 Jan 2021 18:09:02 +0000, The Natural Philosopher wrote:
On 06/01/2021 10:43, Martin Gregorie wrote:Fair comment. So far when I've needed dynamic web pages, which isn't
On Wed, 06 Jan 2021 09:36:10 +0000, The Natural Philosopher wrote:Sadly javaScript is all you get in a browser
On 05/01/2021 22:23, Martin Gregorie wrote:
In both languages, context selects the appropriate method
Until it doesn't.
A day wasted debugging JavaScript to ascertain why IE was totally
different to Firefox.
There was an implicit cast happening in IE which wasn't in Firefox
that turned a 1 into a "1"..
Context dependency just adds another layer of complexity and a source
of more bugs
... well, if you use crappy interpreted languages with untyped
variables then you've chosen to accept that sort of thing as normal.
often, PHP has done everything I've needed.
The Natural Philosopher wrote:
Martin Gregorie wrote:
if you use crappy interpreted languages with untyped variables
then you've chosen to accept that sort of thing as normal.
Sadly javaScript is all you get in a browser
or wasm, which can run compiled code from
C
C++
C#
Kotlin
Rust etc
On 06/01/2021 18:35, Andy Burns wrote:
The Natural Philosopher wrote:
Martin Gregorie wrote:
if you use crappy interpreted languages with untyped variables
then you've chosen to accept that sort of thing as normal.
Sadly javaScript is all you get in a browser
or wasm, which can run compiled code from
C
C++
C#
Kotlin
Rust etc
How can you run code compiled for *86 on a ARM based browser?
On 06/01/2021 18:39, The Natural Philosopher wrote:yeah. I looked it up...
On 06/01/2021 18:35, Andy Burns wrote:Use an intermediate language and a virtual machine, similar to Java JVM
The Natural Philosopher wrote:
Martin Gregorie wrote:
if you use crappy interpreted languages with untyped variables
then you've chosen to accept that sort of thing as normal.
Sadly javaScript is all you get in a browser
or wasm, which can run compiled code from
C
C++
C#
Kotlin
Rust etc
How can you run code compiled for *86 on a ARM based browser?
or .net runtime.
On 06/01/2021 19:03, Pancho wrote:
On 06/01/2021 18:39, The Natural Philosopher wrote:yeah. I looked it up...
On 06/01/2021 18:35, Andy Burns wrote:Use an intermediate language and a virtual machine, similar to Java
The Natural Philosopher wrote:
Martin Gregorie wrote:
if you use crappy interpreted languages with untyped variables
then you've chosen to accept that sort of thing as normal.
Sadly javaScript is all you get in a browser
or wasm, which can run compiled code from
C
C++
C#
Kotlin
Rust etc
How can you run code compiled for *86 on a ARM based browser?
JVM or .net runtime.
On 06/01/2021 18:29, Martin Gregorie wrote:
On Wed, 06 Jan 2021 18:09:02 +0000, The Natural Philosopher wrote:Php is fine server side, but to get speed with a decent interactive page
On 06/01/2021 10:43, Martin Gregorie wrote:Fair comment. So far when I've needed dynamic web pages, which isn't
On Wed, 06 Jan 2021 09:36:10 +0000, The Natural Philosopher wrote:Sadly javaScript is all you get in a browser
On 05/01/2021 22:23, Martin Gregorie wrote:
In both languages, context selects the appropriate method
Until it doesn't.
A day wasted debugging JavaScript to ascertain why IE was totally
different to Firefox.
There was an implicit cast happening in IE which wasn't in Firefox
that turned a 1 into a "1"..
Context dependency just adds another layer of complexity and a
source of more bugs
... well, if you use crappy interpreted languages with untyped
variables then you've chosen to accept that sort of thing as normal.
often, PHP has done everything I've needed.
you need JavaScript in the browser, even if its just Ajax.
Andy Burns wrote:
The Natural Philosopher wrote:
Sadly javaScript is all you get in a browser
or wasm, which can run compiled code
How can you run code compiled for *86 on a ARM based browser?
On 06/01/2021 19:08, The Natural Philosopher wrote:
On 06/01/2021 19:03, Pancho wrote:
On 06/01/2021 18:39, The Natural Philosopher wrote:yeah. I looked it up...
On 06/01/2021 18:35, Andy Burns wrote:Use an intermediate language and a virtual machine, similar to Java
The Natural Philosopher wrote:
Martin Gregorie wrote:
if you use crappy interpreted languages with untyped variables
then you've chosen to accept that sort of thing as normal.
Sadly javaScript is all you get in a browser
or wasm, which can run compiled code from
C
C++
C#
Kotlin
Rust etc
How can you run code compiled for *86 on a ARM based browser?
JVM or .net runtime.
So my looking it up was a waste of time ;-)
I've always found web GUI work very difficult. I keep hoping someone
will make it as simple a native GUI, but it still seems overly difficult.
On 06/01/2021 19:19, Pancho wrote:
On 06/01/2021 19:08, The Natural Philosopher wrote:Oh. reverse for me. couldn't write an X window program to save my life.
On 06/01/2021 19:03, Pancho wrote:So my looking it up was a waste of time ;-)
On 06/01/2021 18:39, The Natural Philosopher wrote:yeah. I looked it up...
On 06/01/2021 18:35, Andy Burns wrote:Use an intermediate language and a virtual machine, similar to Java
The Natural Philosopher wrote:
Martin Gregorie wrote:
if you use crappy interpreted languages with untyped variables >>>>>>>> then you've chosen to accept that sort of thing as normal.
Sadly javaScript is all you get in a browser
or wasm, which can run compiled code from
C
C++
C# Kotlin Rust etc
How can you run code compiled for *86 on a ARM based browser?
JVM or .net runtime.
I've always found web GUI work very difficult. I keep hoping someone
will make it as simple a native GUI, but it still seems overly
difficult.
Quite happy to design stuff in html and javascript tho
On Wed, 6 Jan 2021 14:17:30 +0200lines
Tauno Voipio <tauno.voipio@notused.fi.invalid> wrote:
This is a common construction in compiler-generated
machine code, if the first function calls another
just before return.
bar: .cfi_startproc
... do something
call foo
ret
I recall optimising things like that by changing the last two
to:
jmp foo
foo: .. do more ..
ret
On Wed, 06 Jan 2021 12:42:05 GMT, Ahem A Rivet's Shot <steveo@eircom.net> wrote:
On Wed, 6 Jan 2021 14:17:30 +0200
Tauno Voipio <tauno.voipio@notused.fi.invalid> wrote:
This is a common construction in compiler-generated
machine code, if the first function calls another
just before return.
bar: .cfi_startproc
... do something
call foo
ret
I recall optimising things like that by changing the last twolines
to:
jmp foo
foo: .. do more ..
ret
I'm naive; what's the problem with:
bar: .cfi_startproc
... do something
;;; call foo
;;; ret
; just fallthru to execute foo and exit.
foo: .. do more ..
ret
Php is fine server side, but to get speed with a decent interactive pageFair comment. So far when I've needed dynamic web pages, which isn't
often, PHP has done everything I've needed.
you need JavaScript in the browser, even if its just Ajax.
In comp.sys.raspberry-pi, Charlie Gibbs <cgibbs@kltpzyxm.invalid> wrote:
On 2021-01-05, Martin Gregorie <martin@mydomain.invalid> wrote:
Its very useful indeed in Java: its often helpful to use the same name
with different parameter lists for constructors and also for methods that >>> all do similar jobs, e.g for outputting values from a class its helpful
to use the same method name, with different parameter lists say:
getValue(String caption, int value);
getValue(String caption, double value);
getValue(String caption, boolean value);
Java gets that from C++ doesn't it?
I find it easier to just cast "value" to a consistent type.
But then, I'm a hidebound C weenie...
Use a union type with an enum for which value in the value is
the proper one. That can easily expand to new types that are not
easily cast.
+1. The smarter the language the stupider the coder in my experience.
I avoid that technique - it invites other stupid mistakes.
Same goes for smart phones.
Den 2021-01-06 kl. 03:17, skrev Eli the Bearded:
In comp.sys.raspberry-pi, Charlie Gibbs <cgibbs@kltpzyxm.invalid> wrote: >>> On 2021-01-05, Martin Gregorie <martin@mydomain.invalid> wrote:
Its very useful indeed in Java: its often helpful to use the same name >>>> with different parameter lists for constructors and also for methods
that
all do similar jobs, e.g for outputting values from a class its helpful >>>> to use the same method name, with different parameter lists say:
getValue(String caption, int value);
getValue(String caption, double value);
getValue(String caption, boolean value);
Java gets that from C++ doesn't it?
I find it easier to just cast "value" to a consistent type.
But then, I'm a hidebound C weenie...
Use a union type with an enum for which value in the value is
the proper one. That can easily expand to new types that are not
easily cast.
easy ?
<cut long list of c-statements/>
How someone can object to the ease of overloading is just beyond me.
It's very simple. It makes things that behave very differently look
exactly the same.
which is a recipe for disaster
On 08/01/2021 13:39, Björn Lundin wrote:
How someone can object to the ease of overloading is just beyond me.
It's very simple. It makes things that behave very differently look
exactly the same.
Den 2021-01-06 kl. 19:37, skrev The Natural Philosopher:
Fair comment. So far when I've needed dynamic web pages, which isn't
often, PHP has done everything I've needed.
Php is fine server side, but to get speed with a decent interactive page
you need JavaScript in the browser, even if its just Ajax.
an language that needs
* 'loose comparison' ==
* 'strict comparison' ===
with accompanying truth tables that are not-so-obvious is just a bad joke.
<https://www.php.net/manual/en/types.comparisons.php>
true == 0 -> false
true === 0 -> false
true == 1 -> true
true === 1 -> false
WTF?
On 2021-01-08, Björn Lundin <b.f.lundin@gmail.com> wrote:
an language that needs
* 'loose comparison' ==
* 'strict comparison' ===
with accompanying truth tables that are not-so-obvious is just a bad
joke.
<https://www.php.net/manual/en/types.comparisons.php>
true == 0 -> false
true === 0 -> false
true == 1 -> true
true === 1 -> false
WTF?
That sounds like a description of one of those bogus programming
languages that pops up in humour columns from time to time.
One of them proposed an operator meaning "is more equal than"
(shades of Animal Farm).
Den 2021-01-06 kl. 03:17, skrev Eli the Bearded:
Use a union type with an enum for which value in the value is
the proper one. That can easily expand to new types that are not
easily cast.
easy ?
<cut long list of c-statements/>
How someone can object to the ease of overloading is just beyond me.
This is a common construction in compiler-generated
machine code, if the first function calls another
just before return.
bar: .cfi_startproc
... do something
call foo
ret
foo: .. do more ..
ret
Why any coder would want a procname with different calling lists is
beyond me.
Oh. reverse for me. couldn't write an X window program to save my life.
Quite happy to design stuff in html and javascript tho
On 2021-01-08, Björn Lundin <b.f.lundin@gmail.com> wrote:
with accompanying truth tables that are not-so-obvious is just a bad joke. >>
<https://www.php.net/manual/en/types.comparisons.php>
true == 0 -> false
true === 0 -> false
true == 1 -> true
true === 1 -> false
WTF?
That sounds like a description of one of those bogus programming
languages that pops up in humour columns from time to time.
One of them proposed an operator meaning "is more equal than"
(shades of Animal Farm).
COBOL is another language that historically tended to support only the
latest syntax, which is a pain since source files can be huge. I've
worked on COBOL program modules that ran to over 5000 lines back in the
day, i.e before 1978, when COBOL didn't yet support writing separately >compiled subroutines (no LINKAGE SECTION), though AFAIK COBOL has always >supported calling subroutines written in other languages).
Make that value comparison ...
... and value and type comparison
Seems fine to me, you just have to understand what it means like
any other language construct.
Sorry but neither. I'm positing the problem of analysing binary when it
does not feature in any known published format.
Oh. reverse for me. couldn't write an X window program to save my life.
Quite happy to design stuff in html and javascript tho
On 07/01/2021 04:07, The Natural Philosopher wrote:
Oh. reverse for me. couldn't write an X window program to save myYeah, I didn't mean X, or even rather comically Curses. I meant:
life. Quite happy to design stuff in html and javascript tho
WinForms, WPF, Swing as opposed to: Angular or React. Even Asp.Net was
much harder than WinForms.
On 09/01/2021 12:25, Pancho wrote:
On 07/01/2021 04:07, The Natural Philosopher wrote:
Oh. reverse for me. couldn't write an X window program to save myYeah, I didn't mean X, or even rather comically Curses. I meant:
life. Quite happy to design stuff in html and javascript tho
WinForms, WPF, Swing as opposed to: Angular or React. Even Asp.Net was
much harder than WinForms.
never heard of any of them. I guess they are Windows junk,
On Wed, 6 Jan 2021 08:25:33 -0000 (UTC), Martin Gregorie <martin@mydomain.invalid> declaimed the following:
"copyCOBOL is another language that historically tended to support only the >>latest syntax, which is a pain since source files can be huge. I've
worked on COBOL program modules that ran to over 5000 lines back in the >>day, i.e before 1978, when COBOL didn't yet support writing separately >>compiled subroutines (no LINKAGE SECTION), though AFAIK COBOL has always >>supported calling subroutines written in other languages).
LINKAGE SECTION was part of the COBOL-74 standard, and I recall it existed on the Xerox Sigma-6 COBOL that was used at my college when I attended (76-80). Our assignments may not have used it -- or we only had
a short intro to the concept.
However, I'm fairly certain my college compiler did not support
books"... And since that time-frame meant 24x80 text terminals, and line
mode text editors, one would have to manually duplicate the section from
a listing... Or write the program on the IBM 029 card punch -- feeding
the linkage section into it in duplicate mode, then inserting the copy
into the second file...
On Sat, 09 Jan 2021 12:46:48 +0000, The Natural Philosopher wrote:
On 09/01/2021 12:25, Pancho wrote:
On 07/01/2021 04:07, The Natural Philosopher wrote:
Oh. reverse for me. couldn't write an X window program to save myYeah, I didn't mean X, or even rather comically Curses. I meant:
life. Quite happy to design stuff in html and javascript tho
WinForms, WPF, Swing as opposed to: Angular or React. Even Asp.Net was
much harder than WinForms.
never heard of any of them. I guess they are Windows junk,
Curses is purest C - it sits on top of the termcap functions and adds capabilities like pop-up subwindows
Swing (and AWT) are Java graphics packages included in the standard class library, available since at least Java 2. They are fairly high level
classes, implementing buttons, menus, scrollable resizable windows etc.
as well as a mouse interface.
Curses is purest C - it sits on top of the termcap functions and adds capabilities like pop-up subwindows
Never used java. Runtime is enormous...I know curses.
Looked at gtk toolkit and decided learning curve too big.
browser based was in fact more portable than native code
On 09/01/2021 15:49, Martin Gregorie wrote:
Curses is purest C - it sits on top of the termcap functions and adds
capabilities like pop-up subwindows
It also uses y,x coordinates which drives me up the wall!
Depends what the program is: Hello World in Java is 419 bytes (the C
version is 19554 bytes and the source is smaller too (21 lines, 147 chars
vs 26 lines, 282 chars) and anyway I like the WORA principle
On Sat, 09 Jan 2021 18:33:04 +0000, The Natural Philosopher wrote:
Never used java. Runtime is enormous...I know curses.
Depends what the program is: Hello World in Java is 419 bytes (the C
version is 19554 bytes and the source is smaller too (21 lines, 147 chars
Of executable code, the Java Byte Code needs a JVM to run it and
they tend to be memory hogs IME.
On Sat, 9 Jan 2021 19:20:21 -0000 (UTC), Martin Gregorie <martin@mydomain.invalid> declaimed the following:Java
Depends what the program is: Hello World in Java is 419 bytes (the C >>version is 19554 bytes and the source is smaller too (21 lines, 147And how big is the byte-code interpreter/JVM needed to /run/ that
chars vs 26 lines, 282 chars) and anyway I like the WORA principle
example? Vs the directly executable C program?
However, I should hardly need to remind you that C and C++ programs
aren't always exactly economical when it comes to load size: I remember looking at this a long time back when Borland compilers were still a
thing. IIRC 'hello world' in ANSI C compiled to several 10s of Kbytes and
the C++ version compiled to 800Kb using the then current version of
Borland's finest.
So, bottom line: I've developed and run fairly substantial Java programs
on relatively small Linux boxes and never had issues with running out of memory.
On Sat, 09 Jan 2021 18:36:00 +0000, druck wrote:
On 09/01/2021 15:49, Martin Gregorie wrote:But so does termcap - no getting away from that if you want simple and formatted output direct to the console
Curses is purest C - it sits on top of the termcap functions and adds
capabilities like pop-up subwindows
It also uses y,x coordinates which drives me up the wall!
-unless you're going to follow TNP's lead and just spit HTML text at Lynx
or the web browser of your choice.
- or use PHP to do pretty much the same thing, though this will probably
result in a more complex program structure if what it does is
non-trivial.
So PHP is not equivalent to JavaScript. PHP is fine at interrogating databases and doing a lot of server side stuff, but for popup dialogues
and menus that expand you need Javascript.
The Natural Philosopher wrote:
for popup dialogues and menus that expand you need Javascript.
I thought those could be done in HTML and CSS these days.
On Wed, 6 Jan 2021 08:25:33 -0000 (UTC), Martin Gregorie <martin@mydomain.invalid> declaimed the following:
COBOL is another language that historically tended to support only the
latest syntax, which is a pain since source files can be huge. I've
worked on COBOL program modules that ran to over 5000 lines back in the
day, i.e before 1978, when COBOL didn't yet support writing separately
compiled subroutines (no LINKAGE SECTION), though AFAIK COBOL has always
supported calling subroutines written in other languages).
LINKAGE SECTION was part of the COBOL-74 standard, and I recall it existed on the Xerox Sigma-6 COBOL that was used at my college when I attended (76-80). Our assignments may not have used it -- or we only had a short intro to the concept.
However, I'm fairly certain my college compiler did not support "copy books"... And since that time-frame meant 24x80 text terminals, and line
mode text editors, one would have to manually duplicate the section from a listing... Or write the program on the IBM 029 card punch -- feeding the linkage section into it in duplicate mode, then inserting the copy into the second file...
On Sun, 10 Jan 2021 12:15:58 +0000
The Natural Philosopher <tnp@invalid.invalid> wrote:
So PHP is not equivalent to JavaScript. PHP is fine at interrogating
databases and doing a lot of server side stuff, but for popup dialogues
and menus that expand you need Javascript.
I thought those could be done in HTML and CSS these days.
Ahem A Rivet's Shot wrote:
The Natural Philosopher wrote:
for popup dialogues and menus that expand you need Javascript.
I thought those could be done in HTML and CSS these days.
Yes, using selectors such as :focus, :checked or :target instead of
event handlers such as onfocus() or onchange(), and if you can ignore
older browsers.
You can do a certain amount of form validation with pure html/css, but
it generally doesn't take long to need *some* javascript, at which point
you might as well make your life a bit easier and use it in more places
for consistency.
I've been doing some Arduino programming recently, and while I'm writing
C, it's clearly C++ overall because of the libraries I'm using, some of
which are overloading stuff.
One of those does things I find awkward
because it tries to invoke the int method at times I don't want. Eg
it wants zero to be the ASCII zero instead of ASCII null unless I write
it as "byte(0)".
Cant see how to do that in css. willing to find out
On 10/01/2021 12:33, Ahem A Rivet's Shot wrote:
On Sun, 10 Jan 2021 12:15:58 +0000
The Natural Philosopher <tnp@invalid.invalid> wrote:
So PHP is not equivalent to JavaScript. PHP is fine at interrogating
databases and doing a lot of server side stuff, but for popup dialogues
and menus that expand you need Javascript.
I thought those could be done in HTML and CSS these days.
not really - unless you consider that e.g. onmouseover() or hover: is
not Javascript and even then if you want to unhide some block, you need
to be able to address it via the DOM. So you need a getElementbyId(x).style.display='block'; and so on.
Cant see how to do that in css. willing to find out
I cant really write a web page the way I want it without javascript
these days. Ok its not a LOT of javascript.
On Sun, 10 Jan 2021 12:15:58 +0000
The Natural Philosopher <tnp@invalid.invalid> wrote:
So PHP is not equivalent to JavaScript. PHP is fine at interrogating
databases and doing a lot of server side stuff, but for popup dialogues
and menus that expand you need Javascript.
I thought those could be done in HTML and CSS these days.
Ahem A Rivet's Shot wrote:
The Natural Philosopher wrote:
for popup dialogues and menus that expand you need Javascript.
I thought those could be done in HTML and CSS these days.
Yes, using selectors such as :focus, :checked or :target instead of
event handlers such as onfocus() or onchange(), and if you can ignore
older browsers.
Ahem A Rivet's Shot wrote:
I thought those could be done in HTML and CSS these days.
Not if you have a sequence of popups, where the content of a subsquent one depends on the choice made in the previous one.
On Sun, 10 Jan 2021 13:59:19 +0000
The Natural Philosopher <tnp@invalid.invalid> wrote:
On 10/01/2021 12:33, Ahem A Rivet's Shot wrote:
On Sun, 10 Jan 2021 12:15:58 +0000not really - unless you consider that e.g. onmouseover() or hover: is
The Natural Philosopher <tnp@invalid.invalid> wrote:
So PHP is not equivalent to JavaScript. PHP is fine at interrogating
databases and doing a lot of server side stuff, but for popup dialogues >>>> and menus that expand you need Javascript.
I thought those could be done in HTML and CSS these days.
hver: is CSS onmouseover() is JavaScript.
not Javascript and even then if you want to unhide some block, you need
to be able to address it via the DOM. So you need a
getElementbyId(x).style.display='block'; and so on.
I've seen hide/unhide done without JavaScript. Admittedly it looks clearer and easier in JavaSript.
Cant see how to do that in css. willing to find out
I get the impression that there's a lot that can be done in pure
CSS but ingenuity tends to be needed and it's sometimes far from obvious
how things work (based on looking at some examples).
I cant really write a web page the way I want it without javascript
these days. Ok its not a LOT of javascript.
Fair enough, the original intent of JavaScript was simple additions rather than client side applications so it's nice to hear it being treated that way.
On 10 Jan 2021 at 12:33:26 GMT, Ahem A Rivet's Shot <steveo@eircom.net> wrote:
On Sun, 10 Jan 2021 12:15:58 +0000
The Natural Philosopher <tnp@invalid.invalid> wrote:
So PHP is not equivalent to JavaScript. PHP is fine at interrogating
databases and doing a lot of server side stuff, but for popup
dialogues and menus that expand you need Javascript.
I thought those could be done in HTML and CSS these days.
Not if you have a sequence of popups, where the content of a subsquent one depends on the choice made in the previous one. And the choices in them,
or even whether they are presented at all, depends on what you read out
of your databases server-side.
then use css to modify the styles depending on whether their
states are checked or not.
On 10 Jan 2021 15:13:39 GMT
TimS <timstreater@greenbee.net> wrote:
On 10 Jan 2021 at 12:33:26 GMT, Ahem A Rivet's Shot <steveo@eircom.net>
wrote:
On Sun, 10 Jan 2021 12:15:58 +0000
The Natural Philosopher <tnp@invalid.invalid> wrote:
So PHP is not equivalent to JavaScript. PHP is fine at interrogating
databases and doing a lot of server side stuff, but for popup
dialogues and menus that expand you need Javascript.
I thought those could be done in HTML and CSS these days.
Not if you have a sequence of popups, where the content of a subsquent one >> depends on the choice made in the previous one. And the choices in them,
or even whether they are presented at all, depends on what you read out
of your databases server-side.
I'd think sending the whole decision tree up front should work, it worked fine back when I was doing directory trees in early JavaScript on Netscape 2.
On 10 Jan 2021 at 15:35:20 GMT, Ahem A Rivet's Shot <steveo@eircom.net> wrote:
I'd think sending the whole decision tree up front should work,
it worked fine back when I was doing directory trees in early
JavaScript on Netscape 2.
Er no. It will get out of hand when you have 30 in the first popup, 40 in
the second, and 30 again in the third. When I did the front end to an
assets database at my last job, that's how I started it. I could see it wasn't going to scale.
On 10 Jan 2021 at 15:35:20 GMT, Ahem A Rivet's Shot <steveo@eircom.net> wrote:
On 10 Jan 2021 15:13:39 GMT
TimS <timstreater@greenbee.net> wrote:
On 10 Jan 2021 at 12:33:26 GMT, Ahem A Rivet's Shot <steveo@eircom.net> >>> wrote:
> On Sun, 10 Jan 2021 12:15:58 +0000
> The Natural Philosopher <tnp@invalid.invalid> wrote:
>
>> So PHP is not equivalent to JavaScript. PHP is fine at interrogating >>> >> databases and doing a lot of server side stuff, but for popup
>> dialogues and menus that expand you need Javascript.
>
> I thought those could be done in HTML and CSS these days.
Not if you have a sequence of popups, where the content of a subsquent one
depends on the choice made in the previous one. And the choices in them, >>> or even whether they are presented at all, depends on what you read out >>> of your databases server-side.
I'd think sending the whole decision tree up front should work, it
worked fine back when I was doing directory trees in early JavaScript on
Netscape 2.
Er no. It will get out of hand when you have 30 in the first popup, 40 in the second, and 30 again in the third. When I did the front end to an assets database at my last job, that's how I started it. I could see it wasn't going to scale.
On 10 Jan 2021 15:13:39 GMT
TimS <timstreater@greenbee.net> wrote:
On 10 Jan 2021 at 12:33:26 GMT, Ahem A Rivet's Shot <steveo@eircom.net>
wrote:
On Sun, 10 Jan 2021 12:15:58 +0000
The Natural Philosopher <tnp@invalid.invalid> wrote:
So PHP is not equivalent to JavaScript. PHP is fine at interrogating >>>> databases and doing a lot of server side stuff, but for popup
dialogues and menus that expand you need Javascript.
I thought those could be done in HTML and CSS these days.
Not if you have a sequence of popups, where the content of a subsquent one >> depends on the choice made in the previous one. And the choices in them,
or even whether they are presented at all, depends on what you read out
of your databases server-side.
I'd think sending the whole decision tree up front should work, it worked fine back when I was doing directory trees in early JavaScript on Netscape 2.
On 10/01/2021 17:23, TimS wrote:
On 10 Jan 2021 at 15:35:20 GMT, Ahem A Rivet's Shot <steveo@eircom.net>Actually it doesn't get out of hand,
wrote:
On 10 Jan 2021 15:13:39 GMT
TimS <timstreater@greenbee.net> wrote:
On 10 Jan 2021 at 12:33:26 GMT, Ahem A Rivet's Shot <steveo@eircom.net> >>>> wrote:
> On Sun, 10 Jan 2021 12:15:58 +0000
> The Natural Philosopher <tnp@invalid.invalid> wrote:
>
>> So PHP is not equivalent to JavaScript. PHP is fine at interrogating
>> databases and doing a lot of server side stuff, but for popup
>> dialogues and menus that expand you need Javascript.
>
> I thought those could be done in HTML and CSS these days.
Not if you have a sequence of popups, where the content of a subsquent one
depends on the choice made in the previous one. And the choices in them,
or even whether they are presented at all, depends on what you read out >>>> of your databases server-side.
I'd think sending the whole decision tree up front should work, it
worked fine back when I was doing directory trees in early JavaScript on >>> Netscape 2.
Er no. It will get out of hand when you have 30 in the first popup, 40 in the
second, and 30 again in the third. When I did the front end to an assets
database at my last job, that's how I started it. I could see it wasn't going
to scale.
As I said in order to have a rapidly navigable store inventory I sent
the whole bloody stock list down sorted by category as a giant series of hidden <divs> and used javascript to open up the parts of the tree the
user wanted to view.
Loaded far faster than my banking software does these days.
Andy Burns wrote:
then use css to modify the styles depending on whether their
states are checked or not.
CSS is strictly for design not content.
I am particularly interested in the Binary Blob
provided for Raspberry Pi computers, with a view to
getting detailed knowledge of the video processors
employed therein.
Sysop: | Rempala |
---|---|
Location: | Richlands, NC |
Users: | 113 |
Nodes: | 10 (0 / 10) |
Uptime: | 126:59:21 |
Calls: | 373 |
Files: | 6 |
Messages: | 110,831 |