1 / 53

CS101 Introduction to Computing Lecture 19 Programming Languages

CS101 Introduction to Computing Lecture 19 Programming Languages. During the last lecture …. We continued our discussion on algorithms that we had started during the 16 th lecture In particular, we looked at the building blocks that are used in all algorithms

dnorwood
Download Presentation

CS101 Introduction to Computing Lecture 19 Programming Languages

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. CS101 Introduction to ComputingLecture 19Programming Languages

  2. During the last lecture … • We continued our discussion on algorithms that we had started during the 16th lecture • In particular, we looked at the building blocks that are used in all algorithms • We also discussed the pseudo code and flowcharts for particular problems • In addition, we outlined the pros and cons of those two techniques

  3. Last time we discussed what to implementToday we are going to discuss the tool that is used to implement SW

  4. Today’s Lecture • To understand the role of programming languages in computing • To understand the differences among low- & high-level, interpreted & compiled, and structured & object-oriented programming languages

  5. Programming?

  6. The process of telling the computer what to doAlso known as coding

  7. Types of Programs?

  8. Batch Programs These are typically started from a shell (or automatically via a scheduler) and tend to follow a pattern of: • Initialize internal data • Read input data • Process that data • Print or store results Key feature:No user interaction with the computer while the program is running Examples?

  9. Event-Driven Programs Examples?GUIs, microwave, camera The system sends events to the program and the program responds to these as they arrive. Events can include things a user does - like clicking the mouse - or things that the system itself does - like updating the clock. These programs generally work as follows: • Initialize the internal data • Wait for events to arrive • Identify an incoming event and react accordingly

  10. ProgrammingLanguage?

  11. A vocabulary and set of grammatical rules for instructing a computer to perform specific tasks

  12. All programs consists of: • Sequence of instructions • Conditionals • Loops These may contain: • Data • Input/output (print, etc) • Operations (add, divide, etc)

  13. Examples of ProgrammingLanguage?

  14. Machine LanguageAssembly Language (1956-63)LISP (1956)Fortran (1957)COBOL (1959)PL/1(1964)BASIC (1964)Pascal (1970)Smalltalk (1972)C (1972) Ada(1983) C++ (1983-85) QBasic (1986)Perl (1987)VisualBasic (1991)PowerBuilderJava (1995)JavaScriptC# (2001)

  15. Is HTML a programming language?

  16. Types ofProgramming Languages?

  17. High level Programming LanguagesLow Level Programming Languages

  18. High-level programming languages, while simple compared to human languages, are more complex than the languages the uP actually understands, called machine languagesEach different type of uP has its own unique machine language

  19. Lying betweenmachine languages&high-level languagesare languages calledassembly languages

  20. Assembly languages are similar to machine languages, but are easier to program in as they allow a programmer to substitute names for numbersMachine languages consist of numbers only

  21. 4th-generation languages High-level languages Assembly languages Machine languages

  22. walks!

  23. Regardless of what language you use, you eventually need to convert your program into a language that the computer can understandTwo ways for doing that:compile the program or interpret the program

  24. Interpreteris a program that executes instructions written in a high-level languageAn interpreter translates high-level instructions into an intermediate form, which it then executesIn contrast, a compiler translates high-level instructions directly into machine language

  25. Compiled programs generally run faster than interpreted programsThe advantage of an interpreter, however, is that it does not need to go through the compilation stage during which the whole of the high-level code is translated into machine instructions in one go. This process can be time-consuming if the program is long.The interpreter can immediately execute high-level programs, without waiting for the completion of the translation process

  26. Interpreters:Immediate response,butexecute code slowlyCompilers:Takes longer to compile,butsuper-fast execution

  27. Both interpreters and compilers are available for most high-level languages. However, BASIC and LISP were especially designed to be executed by an interpreter

  28. Why are there so many different programming languages?

  29. What is the difference between them?

  30. What are the advantages of particular languages?

  31. The question of which language is best is one that consumes a lot of time and energy among computer professionals Every language has its strengths and weaknesses

  32. FORTRAN is a particularly good language for processing numerical data, but it does not lend itself very well to large business programs Pascal is very good for writing well-structured and readable programs, but it is not as flexible as the C programming language C++ embodies powerful object-oriented features, but it is complex and difficult to learn

  33. The choice of which language to use can also depend on the:type of computer the program is to run on,and theexpertise of the programmer

  34. Can a single language have all the good bits of other languages?

  35. Do some good features force a language to also have bad features?

  36. What makes a feature good or bad?

  37. Is there a perfect language?

  38. Is there a perfect language for a particular task?

  39. What changes in the field of computer languages can we expect in the near future?

  40. Which programming language should you learn?Should you learn more than one?

  41. Programming SWDevelopment ?

  42. SWDesignMethodology?

  43. The set of (often flexible) rules and guidelines a team of developers follow to construct reasonably complex SW systems

  44. Object Oriented Design (1) • OO SW is all about objects: a black box which receives messages & responds with those of its own • An object has 2 aspects: • State, also termed asproperties, data • Example: For the bicycle: color, speed, pressure • Behaviors,also termed asmethods, instructions • Example: For the same object: accelerate(), inflate() • In traditional design, these 2 aspects have been kept apart

  45. Object Oriented Design (2) • The designer starts with any component (object) of the system; designs it as an independent, self-contained system, and then moves to the design of some other component • The over-all system is put together by fitting together a collection of these components • Key feature: Details of the design of the component are kept independent of the over-all system • Benefit: It can be easily re-used in other systems: design once; use multiple times

  46. Structured Design (1) • Also called top-down design • The designer starts by first conceiving a skeleton high-level design of the system, and then starts defining features of that over-all design in an ever-increasing detail • Making small changes in the functionality of the systems sometimes leads to major re-design exercise

  47. Structured Design (2) • Structured design emphasizes separating a program's data from its functionality • Separating data from functionality typically leads to SW that is difficult to maintain & understand - especially for large SW systems

  48. Object-Oriented Languages • Programming languages specifically designed to make it easy to implement object-oriented designs • Examples: Smalltalk, C++, Java

More Related