Did you want to learn something cool? [[Yes]] That may or may not help you in your future life? [[Definitely]]Definatly! Then come with me on a Journey of twists and turns down spidary roads to the world or Computer Programming [[Okay so what is it?]]So keen okay lets get started then! [[How did it all start?]] To begin, Computer programming used machine language. Machine language consists of 1s and 0s and is the only programming language that the computer can directly understand without translation. It can vary in types as the language of the computer depends on the given processor. Okay now thats out of the way lets start our journey with the First Generation. [[The First Generation ]] [[Home]]First Generation (1940 - 1956) This was the very beginning. Programmers used machine language as it had the fastest execution speeds and the most effective use of primary memory at the time. The disadvantages of this were that machine language was very exhausting, difficult and time consuming - therefore making 'machine language' a [[Low-Level language]]. Which lead to fewer programmers and limited complexity in regard to programs. [[Did it get better?]] [[Home]] Low-level language is a programming language that deals with the hardware of the computer. It is very tedious work and provides little to no abstraction, meaning the programmer needs to have much more detailed knowledge on how the computer works. [[The First Generation ]] [[Home]] For sure; however, it did take a few goes. Welcome to the [[Second Generation]] [[Home]] Second Generation (1956 – 1963) There was then the creation of Assembly Languages. Also Low-Level languages. Developed in 1950s assembly languages use [[Mnemonic]] operational codes and [[Symbolic addresses]] instead of 1s and 0s to represent the working codes. Even though this repersented an improvement from the first generation as they were able to produce programs that were more efficient, use minimal storage and work much faster. There were still many limitations. The use of the programs was limited to the specialists familiar with the functions of the computer. Assembly languages required a language translator called an assembler which was an improvement but meant that assembly language could not be easily converted to function on other types of computers. [[Third Generation]] [[Home]] Is basically a device that aids information retention in the human memory. Meaning the programmer can retain abbreviations instead of having to remember lengthy binary instructional codes. Example: L for Load = 01001100 01101111 01100001 01100100 A for Add = 01000001 01100100 S for String = 01010011 01110100 01110010 01101001 01101110 01100111 D for Divide = 01000100 01101001 01110110 01101001 01100100 01100101 Which is easier to remember? [[Second Generation]] [[Home]] Symbolic address is when an address is made reference to by some type of relatable symbol rather than its absolute numerical location. It is used as an aid to the programmer. See the example below. Example: DIAM = EQU 2 = Define a constant called diam VarA = DB = Define a veriavle called VarA as a byte VarB = DW = Define varible called VarB as a word Main = MOV AL,[VarA] = Move Date in VarB into register AL This made it easier for the programmer to resovle the variables into locations in the memory and the use of symbols to make the software much easier to understand. [[Second Generation]] [[Home]] Third Generation (1964 – 1971) The Third Generation functioned pretty much like everyday text and mathematical formulas in appearance. This was know as the [[High-level languages]] they ran closer to human language and were more versatile, able to run on a number of different computers with little need for adaptions or changes. This generation used integrated circuits. [[Fourth Generation]] [[Home]] High-level programs consisted of many advantages. They relieved the programmer of the tiresome task of writing programs in machine and assembly language and instead allowed them to focus on designing a program to please the user. High-level programs were also versatile in there use as they could be used on many different machines without much change to the language or program. Two main types of translators that were used to convert high-level language program to machine language were: compliers and interpreters. [[Third Generation]] [[Home]] Fourth Generation (1971 – Present) The fourth generation is a whole new stepping stone in computer programming, and is still what we use today. It was a non-procedural language that meant the programmer was only required to specify what the program was supposed to do and didn’t require instruction on how to do it. As it is a much more advanced programming language than the traditional high – level programming language. It was an improvement on the third generation, as it only required approximately one tenth of the number of statements that were previously used in the third generation. Fourth generational languages were incredibly versatile that it allowed users even non-computer professionals to develop software. It relied on using languages together with a database in conjunction with its data dictionary. This generation used and still uses [[Micro Processors]] The factors that in essence lead to the creation of the fourth generation included the need for faster generating speeds on developing programs. Making the program more versatile that anyone was able to use it, therefore reducing the amount the user needed to know in order to make a program. By decreasing the skill level required the users could concentrate on what needed to be done rather than how it was to be done, making it more users friendly. [[Back to the start]] [[Home]] Micro Processors consist of thousands and thousands of integrated circuits that are built into a single silicon chip. Examples of these include ML, SQL, Lisp and visual basic.ick this passage to edit it. [[Third Generation]] [[Home]] Well know that you know the history lets introduce you to the languages. Click on the link down the bottom and it will take you to our chosen language. [[Python]] [[Home]] What is it? Python Python is one of the easiest programing languages to use as it uses indenting of source statements to make the code easier to read. It is also portable and works on a number of different operating systems. It operates by using [[Object-Oriented Programming]] language similar to that used in PERL. Python includes modules, exceptions, dynamic typing and very high-level dynamic data types and classes. It was created by Guido van Rossum who was formerly a resident of the Netherlands inspired by his favorite comedy group Monty Python’s Flying Circus. [[Advantages]] [[Home]] The Advantages of Python include: • The Free availability • Stability of the program to the point that it is still functioning and is older then Java • Supports objects, modules and other reusability mechanisms well. • It can easily be integrated with and extensibility using C and Java • Cost saving in development and maintenance as it saves the enterprise money in both software creation and the maintenance • And is far more readable then other types of codes due to its use of white space and simple language. [[Disadvantages]] [[Python]] [[Home]] The disadvantages of Python include: • A lack of true multi processor support • It lacks an extensive class library with fewer packaged solutions • Is slower then other complied languages • Absence from mobile computing and browsing basically meaning that it works on many desktop serves but is weak when used in mobile computing • Design restrictions so flaws in the design of the language therefore requiring more testing. [[Next]] [[Python]] [[Home]] So what does the future look like. [[Fifth Generation]] [[Home]] Fifth Generation (Present – Future) Is yet to be developed however represents the next in the development of programming languages. It is hypothesized that natural languages will be the next step. Programing statements will very closely resemble human speech, that words could be spelt in different ways, right, wrong or even backwards and it would still create the same result. This idea would also be used to make computers ‘smarter’ and the creation of artificial intelligence. One possible scenario for the future could include; using this programing to create software, that is able to use a voice recognition server that will have the capability to use a program to design a new program using simple everyday English. By internally converting what is said into instruction that the program then uses that to create the program desired by the user. Natural language in the future could lead to computerized knowledge of human experts, artificial intelligence or independently smart computers that would function on there own. [[Home]] Object Oriented Programming Object Oriented programming is a programming language that is organized around objects and data instead of actions and logic. Historically programs were seen as logical procedures that took input data and processed it to produce output data. [[Python]] [[Home]] The Following is just a Content Page for quick Reference [[The First Generation ]] [[Second Generation]] [[Third Generation]] [[Fourth Generation]] [[Fifth Generation]] [[Python]]