1 / 51

Evolution of Programming Languages and Software Development Tools

Explore the development process of programming languages, from binary to high-level 4GLs, and the role of software tools. Learn about machine independence, SDLC phases, and the impact of OOP. Discover how executable code is created from human-readable syntax in modern languages.

lindauer
Download Presentation

Evolution of Programming Languages and Software Development Tools

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 10 Application Development

  2. Chapter Goals • Describe the application development process and the role of methodologies, models and tools • Compare and contrast programming language generations • Explain the function and operation of program translation software, including assemblers, compilers and interpreters • Describe link editing and contrast static and dynamic linking • Describe integrated application development software, including programmer’s work-benches and CASE tools

  3. Software Development • Process of translating user needs into CPU instructions • This is a complex process that requires significant effort and resources • Software is the most costly component of IS

  4. Software Development

  5. Systems Development Life Cycle

  6. SDLC Phases • Systems requirement model – provides the detail needed to develop a specific system to meet user needs • Design model – provides an architectural blueprint for system implementation

  7. Development of programming languages

  8. Programming Languages

  9. Programming languages • Language used to instruct a computer to perform a task • Programming language development has tried to • Make the language easier to understand • Develop a language that takes less time (requires fewer instructions) to complete a task

  10. Programming languages cont. • Variety of programming languages • Link to Google programming languages page • http://directory.google.com/Top/Computers/Programming/Languages/

  11. Development of languages • First Generation – binary CPU instructions • First programmers wrote code as sequences binary digits • Tedious and error prone • As software grew in complexity this became unpractical

  12. Languages cont. • Second generation language – assembly languages (simple machine) • Mnemonic represents CPU instruction • Mnemonic can also represent location in memory (variable) • Mnemonic can also represent a program instruction memory address (label)

  13. Assembler • Code from 2GL (Assembly code) is translated into binary instructions by Assembler • Translates each mnemonic into its corresponding binary digit sequence • Programmer still required to write one assembly instruction per CPU instruction • 2GL is for a specific CPU (i.e. processor)

  14. Machine independence • Programs written in 2GL (assembler) only work for a specific CPU • Companies spend a long time developing custom systems • These systems continue to evolve over time • New modules added • Systems updated and maintained over time

  15. Machine independence cont. • When company buys a new computer (i.e. new CPU) what happens to the old software? • Still a problem, still a lot of mainframe systems running (COBOL) due to difficulty of porting to a new computer

  16. 3G languages • 3GLs address the issue of machine independence • Code is standardized (ANSI, etc.) • Special software called a compiler takes standard code and translates it to a specific CPU • Each CPU needs to have its own version of the compiler

  17. 3GLs • FORTRAN, COBOL, BASIC,PL/1, Pascal and C • 3GL code is translated (compiled) into assembly code, then into binary code • First languages to exploit machine independence – 3GL code is the same regardless of the CPU that executes it

  18. Languages cont. • Third generation language – allows programmers to specify many CPU instructions per program instruction or statement • This one-to-many (1:N) relationship is called instruction explosion

  19. Instruction explosion • One line of code – Cobol, Pascal, C – are translated into many lines of CPU instructions • Makes programmer more productive • CPU code is more efficient • Compiler (software that generates CPU instructions) can optimize CPU instructions

  20. 4GLs • Addressed the following limitations of 3GL • Higher instruction explosion • Ability to develop GUI • Ability to interact with database • Most 4GL were proprietary packages • VB and SQL are still in use

  21. Object Oriented Languages • OOP is an attempt to address problems of software maintenance and re-use • Data and programs are viewed as integrated parts called objects • Objects communicate using methods • Client – server model • Prominent examples: C++, Java

  22. OOP systems models

  23. Language standardization • American National Standards Institute (ANSI) and International Standards Organization (ISO) set standards for programming languages (C, C++, COBOL) • Advantage: guarantee portability between platforms, promotes machine independence • Disadvantage: slow to improve and develop

  24. Creating executable code • Modern programming languages use a syntax more suited to human understanding • Computer requires instructions made out of 0s and 1s

  25. Creating .exes cont. • Software applications have become quite complex • Hundreds if not thousands of programmers contribute part of the solution • Solutions are designed to be re-usable

  26. Producing an .exe • Individual programmer’s work needs to be translated into machine code • Translate the source code of an individual file into 0s and 1s • All the work of many programmers needs to be packaged together • Collect and bundle different parts of binary code into a single load module

  27. IDE • Integrated development environment is a software development tool that brings together software tools to facilitate: • Translating higher order languages into 0s and 1s (binary code) • Managing and combining libraries of existing programming solutions

  28. Compiler

  29. Steps in development process • Programmer produces a program in a specific language • Program is called source code • Code is made up of • Data declarations • Statements • Function calls (using pre-written library routines)

  30. Steps cont. • Source code (as produced by programmer) becomes input into compiler • Compiler tests each line of code comparing it to syntax requirements of specific language • If errors exist, produces an error report • After “clean compile” compiler produces object code (assembly instructions)

  31. Output of compile step • Symbol table – list of variable names associated with a memory location • Assembler instructions – mnemonic for CPU instructions

  32. Symbol table

  33. Steps cont. • Object file (output of compile step) becomes input into next step – link editor • Link editor combines object file with code from software libraries • Output of link step is .exe file

  34. Example in C++ • Example program showing compile link and exe output • Go to Visual C++

  35. Link Editor • Modern programming languages allow programmers to use pre-existing routines in their code • Using a function is referred to as a function call • A link editor searches object code (the output of the compile step) for references to external library function calls • When an external function call is found, the link editor searches for the corresponding executable code that implements the function

  36. Link editor

  37. Benefits of a link editor • Allows a project to be developed among different files (i.e. each programmer develops a separate file) • A single executable program can be constructed from multiple object code files compiled at different times • A single compiler can generate executable programs that run under multiple operating systems

  38. Dynamic vs. static binding • Dynamic Linking – linking is performed during program loading or executionexample: DLLs and Visual Basic, Java • Static Linking – library and other subroutines cannot be changed once they are inserted into the executable codeexample: C++ program

  39. Dynamic vs. static linking Dynamic Linking Advantages • Smaller application program files • Flexibility Static Linking Advantages • Execution speed • Improved reliability and predictability of executable programs

  40. Interpreters • Reads a single source code instruction, translates it into CPU instructions or a DLL call • Advantage: flexibility to incorporate new or updated code into an application program • Disadvantage: increased memory and CPU requirements during program execution

  41. Visual Basic • Is an interpreted language • See VB example

  42. Compilers vs. Interpreters

  43. Java language • OOL developed by Sun • Originated as operating system for interactive TVs • Applied to demands of producing code for a distributed computing environment (i.e. the Web)

  44. Java web resources • Java web site http://java.sun.com/ • Java software http://java.sun.com/java2/ • Java documentation http://developer.java.sun.com/developer/infodocs/?frontpage-main • Java tutorials http://java.sun.com/docs/books/tutorial/ • Java applet examples http://javaboutique.internet.com/javasource.html

  45. Development for the Web • What are the requirements for an application development tool designed to produce applications for a distributed computing environment?

  46. Requirements • Seamless multi-platform capability • Built in security & protection capabilities • Multi-threaded, i.e. easily break a problem into independent sections run concurrently • How does Java address these requirements?

  47. Java Requirements • Multi-platform • Java virtual machine • Built in security • Security restrictions for applets • Multi-threaded • Built-in thread class in standard library

  48. Java

  49. Java example • Run java example with java console

  50. Microsoft’s Answer • .Net framework • Supports 20 different programming languages • Supports distributed networked applications (see presentation)

More Related