recent posts

Tuesday, December 20, 2016

History of programming

December 20, 2016

Programming



That's about as deep as I want to get into the representation of numbers in computers and the binary, octal and hexadecimal number systems. Yes, computers have division operators but I am not going to cover numbers that include fractional parts, i.e., the "rational" and "irrational" numbers due to the complexity of their implementations. If you want to read more, I googled and found what looks like a good place for you to read more. Start at All About Circuits - Systems of numeration and read through it and continue on for a few more web pages in the series. The link to binary number at the start of this section points to a Wikipedia page that also will give you additional depth including the history of the binary number system.

One abstract layer above a computer's native language is assembler language. In assembler language, everything is given human-friendly symbolic names. The programmer works with operations that the microprocessor knows how to do, with each given a symbolic name. Objects in the microprocessor and addresses of stuff in the computer's memory can also be given meaningful names. This is actually a very big step over what a computer understands, but still tedious for writing a large program. Assembler language instructions still have a place for little snipits of software that need to interact directly with the microprocessor and/or those that are executed many, many, many times.

Some languages are very popular for particular kinds of applications, while some languages are regularly used to write many different kinds of applications. For example, COBOL is still strong in corporate data centers often on large mainframe computers, Fortran in engineering applications, scripting languages in Web development, and C in embedded software. Many applications use a mix of several languages in their construction and use. New languages are generally designed around the syntax of a prior language with new functionality added, (for example C++ adds object-orientation to C, and Java adds memory management and bytecode to C++, but as a result, loses efficiency and the ability for low-level manipulation).

So the manager said: ``All right, in that case you may set your own working hours, as long as you finish your projects on schedule.'' The programmers, now satisfied, began to come in at noon and work to the wee hours of the morning. Book 7 - Corporate Wisdom

A novice asked the master: ``In the east there is a great tree-structure that men call `Corporate Headquarters'. It is bloated out of shape with vice presidents and accountants. It issues a multitude of memos, each saying `Go, Hence!' or `Go, Hither!' and nobody knows what is meant. Every year new names are put onto the branches, but all to no avail. How can such an unnatural entity be?"

To help give you some guidance, I combined the various sources mentioned above. For the three IEEE categories, trending means the languages that seem to be growing, jobs reflect job offerings at Dice.com and CareerBuilder, and open reflects the number of open source projects.

A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity.

The mainframe programmer then began to describe his system to his friend, saying ``The mainframe sits like an ancient sage meditating in the midst of the data center. Its disk drives lie end-to-end like a great ocean of machinery. The software is as multifaceted as a diamond, and as convoluted as a primeval jungle. The programs, each unique, move through the system like a swift-flowing river. That is why I am happy where I am.''

The invention of the von Neumann architecture allowed computer programs to be stored in computer memory. Early programs had to be painstakingly crafted using the instructions (elementary operations) of the particular machine, often in binary notation. Every model of computer would likely use different instructions (machine language) to do the same task. Later, assembly languages were developed that let the programmer specify each instruction in a text format, entering abbreviations for each operation code instead of a number and specifying addresses in symbolic form (e.g., ADD X, TOTAL). Entering a program in assembly language is usually more convenient, faster, and less prone to human error than using machine language, but because an assembly language is little more than a different notation for a machine language, any two machines with different instruction sets also have different assembly languages.

In the observation step, you think hard about what is happening versus what you expected to be happening. An example is a program that is drawing something, but the jumble of lines you see on the display does not look right. Or, your program has a button that doesn't do anything when you click on it. As a programmer, you approach these bugs like the legendary Sherlock Holmes approached his cases. Review the program you've written and ask questions like: "How could these instructions produce what is happening?"

In the east there is a shark which is larger than all other fish. It changes into a bird whose wings are like clouds filling the sky. When this bird moves across the land, it brings a message from Corporate Headquarters. This message it drops into the midst of the programmers, like a seagull making its mark upon the beach. Then the bird mounts on the wind and, with the blue sky at its back, returns home.

No other computer programming language has the depth of research as Logo, based on its use in educational settings. It's roots are in the development of interactive learning environments. Wally Feurzeig was researching the use of a timeshared computer to improve teaching mathematical concepts while at BBN (Bolt, Beranek, and Newman). The question he wanted to answer was whether kids would embrace the new technology and learn using it. With some success demonstrated using an existing programming language, Wally contracted Seymour Papert to help with Logo's design. Seymour wrote the functional specification for Logo. Daniel Bobrow then wrote the first Logo interpreter. Since these early days, hundreds of books and research papers have been written about its use in the classroom. Cynthia Solomon, who started MIT's Logo Group with Dr. Papert, has put together a comprehensive website on Logo: logothings.wikispaces.com.

Written by

We are Creative Blogger Theme Wavers which provides user friendly, effective and easy to use themes. Each support has free and providing HD support screen casting.

0 comments:

Post a Comment

 

© 2013 Dev-Kid. All rights resevered. Designed by Templateism | Blogger Templates

Back To Top