Page 29 - Designing Autonomous Mobile Robots : Inside the Mindo f an Intellegent Machine
P. 29

Chapter 2

                                                                    Flat File    Relational
                                                                   Database      Database
                                                                   Languages     Languages

                                       Low Level    Compiled      Dynamically     Object
                Machine    Assembly
                                       Compiled     Adv. Data       Linked        Oriented
               Language    Language
                                       Languages    Structures     Languages     Languages

                                       Interpreted                Applications   Hyper Text
                                       Languages                    Scripts      Languages


                Figure 2.1. A grossly over-simplified history of the evolution of software


            The history of software evolution is a useful context for understanding the reason for
            each concept and its potential usefulness. In the beginning there was machine
            language. This is the stuff all computers burn, no matter how abstracted it becomes
            from the programmer. I would argue that it is as useful to understand the basics of
            Boolean mathematics as it is the more advanced concepts.


            Assembly language
            It wasn’t long before early programmers realized that the first programs they needed
            to write were tools to facilitate programming itself. Essentially, the first significant
            market for software was to other programmers. Thus, the first program language to
            evolve was assembly language, a more-or-less direct representation of the machine
            language it generated. Simple text editors were created in order to write the assem-
            bly language programs. These text files were then assembled into binary machine
            language.

            Before long, programmers began to create huge unmanageable assembly language
            programs, and the concept of modular code emerged. Now programs were written in
            manageable chunks, which could be included (copied by the assembler) into other
            programs, or which could be assembled into object code that could be linked to the
            object code from other modules to produce the final machine language program .
                                                                                         1
            Mention assembly language to a freshly minted computer science major and the
            reception will be similar to that a leper might enjoy on a particularly bad hair day.


            1  This use of the word object has no relation to the object-oriented concepts to be discussed later.




                                                    12
   24   25   26   27   28   29   30   31   32   33   34