The reason for directing my message is because of some questions pertaining to the world of programming languages. Some may take it as a digression that gives little or no help in using a language. Anyway, I’m directing it to you right here and I’ll appreciate EXPLICIT answers. If all the answers can’t be supplied in this forum, I wouldn’t mind if I’m supplied additional references preferably web sources because they come readily handy to me. The question of ‘aren’t you experienced enough with the web to get precise answers yourself’ may come up but the information I’ve been able to gather is not satisfactory enough so I’ve decided to seek the views of some experienced about the design of programming languages. My questions are: How did scientists came to be aware of the existence of machine language? I believe this question will somehow be tied to the evolution of the computer. How were the higher level versions of the machine language designed? I want these to be tied to the design of development tools like the JDK and operating systems. I’m taught to write programs using a text editor. In what medium is software like jdk, operating system and firmware written? How were they deployed on the computer? My inclination at being a hound for details drives me to ask these questions.
I’ve heard of manipulating bits of data to direct them to memory via the front panel. What is the front panel? How is it like? I’ve heard of making requests to computers via punch cards. How was this carried out? I want to be able to picture it some way.
And have you got two weeks to wait for the answers?
The first person to use a machine language was Jacquard who controlled looms with holes punched in cards; the first programming was probably done by Lady Ada Lovelace who designed the logic behind Babbage's differential engine. That was the best part of 200 years ago, and the differential engine wasn't built until the early years of this century, at the Science Museum in South Kensington.
Punch cards were cards about 2 × 6 inches with 80 columns of ten rows of numbers (0-9) and a hole was punched over each number for the reader (probably an optical reader) on the computer. Two holes could be punched to represent letters instead of numbers. It was quite easy to read a punch card by holding it to the light. The bits of card pushed through were called "confetti" and used as such at weddings.
I can also remember paper tape with 7 rows of holes in.
You would do well to get a "general computing" or "history of computing" books. I think this is "general computing", so I shall move this thread thither.
Olakunle Oladipo Oni wrote: How did scientists came to be aware of the existence of machine language?
This question makes no sense. Machine language is not a natural phenomenon that was waiting to be discovered, like radioactivity or DNA. It was invented. They "became aware of it" by creating it.
In what medium is software like jdk, operating system and firmware written?
IDEs. Or just an editor.
How were they deployed on the computer?
Same way they are now. modulo minor details.
I’ve heard of manipulating bits of data to direct them to memory via the front panel. What is the front panel?
It's a panel on the front of a computer with switches. The switches set bits, other different switches did things like "run" and "hold". Look up Altair or MIPS (not the CPU) for early PC examples.
I’ve heard of making requests to computers via punch cards. How was this carried out?
With punch cards and a punch card reader.
It's all just bits: *how* the bits get entered has changed. Front panel, paper tape, punch cards, cassette tape, floppy disk, hard disk, flash memory, CD, DVD, holographic storage, light beam to the moon and bounced back--it's all just bits.
How did scientists came to be aware of the existence of machine language?
Well, according to Plato, apparently the early programmers discovered it while they were having a party in some Greek cave, but there's no historical evidence about that.
As you pointed out already, it's related to the technical evolution and shifting programming paradigms from the early days when programmers manually (meaning with their hands) controlled the processing unit up to nowadays when modern IDEs are often outsmart their users. You might want to take a look here - History of programming languages
I’ve heard of manipulating bits of data to direct them to memory via the front panel. What is the front panel? How is it like?
Wow, takes me back to the microcomputer class I had in college back in the early 70s. Don't recall what system it was, but the front panel had a set of toggle switches which you would flip to represent the bits of a byte. Then you pushed a button and the value got stored in the first byte in memory. You had to repeat that a few times to "prime" the memory with a jump instruction to the embedded code to read from the punched tape reader. There were several spools of punched tape that would read in, among other things, a BASIC interpreter. Once that once loaded you could sit at the teletype machine and do you BASIC coding.
I’ve heard of making requests to computers via punch cards. How was this carried out?
You sat at a keypunch machine with the cards loaded in a hopper. Each time you hit enter, the card you are working on would be placed in the "out" area and a new card would be loaded from the "in" hopper. Then you typed a single line of your program. Repeat until all of your code was punched into cards. Then you added some pre-punched control cards to the front and end of your deck and submitted it to the computer operators.
In 1969, in my FORTRAN class in high school, this involved mailing the punched cards to the company that ran our programs in the early morning hours on the weekend when the mainframes were idle. The cards and printout were mailed back. If there was some error, you had to fix the cards and resubmit them the next weekend. Needless to say, since the turnaround time was one week, back in those days everyone painstakingly insured that their programs were syntactically correct, and manually went through the lines of code following the logic to ensure that the logic was correct. In college in the early 70s it was easier - you usually got your response in 4-6 hours after submitting the cards (the cards were run on a schedule with the times of the runs, and when the results would be available, were posted; something like "in by 9AM, out by noon"). So you could compile & run your program 3 or 4 times a day. But still, manually checking your syntax and logic was still very important.
Campbell Ritchie wrote:
The first person to use a machine language was Jacquard who controlled looms with holes punched in cards; the first programming was probably done by Lady Ada Lovelace who designed the logic behind Babbage's differential engine. That was the best part of 200 years ago
Campbell remembers first hand... Dave and Bear are just babies in comparison
This thread is really interesting... it has inspired me to look at ancient pictures of old computers
When you do things right, people won't be sure you've done anything at all.
Oh no - memories of a 8085 brief case computer thing we used while studing Mircoprocessors at collage:
You wrote some assembly on (rolls and rolls of) paper - then transformed it into hex (machine) code - then typed it into the computer keypad - and if you got any of it wrong - the convertion, the typing; you had to start it all again. After 6 moths of part time study we got some LED's to flash ( ). There was something strange about how it addressed memory - segmentation, seem to recall a 10 bit address bus - something strange going on in the fetch & execute cycle.... Fun, fun, fun
(I mean, the hardware could have only utilized 10 address lines, which might *look* like segmentation, except that all the segments were the same physical memory ;)
I remember a couple boards would use a counter and/or shift register to re-map memory after startup after a certain number of clock cycles so it'd read a bunch of initialization code from ROM before handing off to the (whatever it was). Ah, those were the days.
i remember keying into the front console of an IBM360 - the load instructions and address of the paper tape reader, that had instructions for reading from the punched card reader, that loaded the instructions for the tape reader, which loaded the OS from the disk drives.
there were 117 instructons that had to be entered, first was the memory address to store, last was the same memory address to put into the PC (program counter) to execute. -- those were the day