1 / 28

MIS 4395.A Structured Programming Language

MIS 4395.A Structured Programming Language. Ahmed Imran Kabir Week 1, Introductory Class. Outline of Topics. Hardware/Software interface Layers of the Machine Kinds of Software Computer Languages Syntax, Semantics, Grammars What happens to your program? Compilation, Linking, Execution

wwilliam
Download Presentation

MIS 4395.A Structured Programming Language

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. MIS 4395.AStructured Programming Language Ahmed Imran Kabir Week 1, Introductory Class

  2. Outline of Topics • Hardware/Software interface • Layers of the Machine • Kinds of Software • Computer Languages • Syntax, Semantics, Grammars • What happens to your program? • Compilation, Linking, Execution • Program errors • Compilation vs. Interpretation etc.

  3. Software Categories • System SW • Programs written for computer systems • Compilers, operating systems, … • Application SW • Programs written for computer users • Word-processors, spreadsheets, & other application packages

  4. A Layered View of the Computer Application ProgramsWord-Processors, Spreadsheets, Database Software, IDEs,etc… System SoftwareCompilers, Interpreters,Preprocessors, etc.Operating System, Device Drivers Machine with all its hardware

  5. Operating System (OS) • Provides several essential services: • Loading & running application programs • Allocating memory & processor time • Providing input & output facilities • Managing files of information

  6. Programs • Programs are written in programming languages • PL = programming language • Pieces of the same program can be written in different PLs • Languages closer to the machine can be more efficient • As long as they agree on how to communicate • A PL is • A special purpose and limited language • A set of rules and symbols used to construct a computer program • A language used to interact with the computer

  7. Computer Languages • Machine Language • Uses binary code • Machine-dependent • Not portable • Assembly Language • Uses mnemonics • Machine-dependent • Not usually portable • High-Level Language (HLL) • Uses English-like language • Machine independent • Portable (but must be compiled for different platforms) • Examples: Pascal, C, C++, Java, Fortran, . . .

  8. Machine Language • The representation of a computer program which is actually read and understood by the computer. • A program in machine code consists of a sequence of machine instructions. • Instructions: • Machine instructions are in binary code • Instructions specify operations and memory cells involved in the operation Example:

  9. Assembly Language • A symbolic representation of the machine language of a specific processor. • Is converted to machine code by an assembler. • Usually, each line of assembly code produces one machine instruction (One-to-one correspondence). • Programming in assembly language is slow and error-prone but is more efficient in terms of hardware performance. • Mnemonic representation of the instructions and data • Example: Load Price Add Tax Store Cost

  10. High-level language • A programming language which use statements consisting of English-like keywords such as "FOR", "PRINT" or “IF“, ... etc. • Each statement corresponds to several machine language instructions (one-to-many correspondence). • Much easier to program than in assembly language. • Data are referenced using descriptive names • Operations can be described using familiar symbols • Example: Cost := Price + Tax

  11. Syntax & Semantics • Syntax: • The structure of strings in some language. A language's syntax is described by a grammar. • Examples: • Binary number <binary_number> = <bit> | <bit> <binary_number> <bit> = 0 | 1 • Identifier <identifier> = <letter> {<letter> | <digit> } <letter> = a | b | . . . | z <digit = 0 | 1 | . . . | 9 • Semantics: • The meaning of the language

  12. Syntax & Grammars • Syntax descriptions for a PL are themselves written in a formal language. • E.g. Backus-Naur Form (BNF) • The formal language is not a PL but it can be implemented by a compiler to enforce grammar restrictions. • Some PLs look more like grammar descriptions than like instructions.

  13. Compilers & Programs • Source program • The form in which a computer program, written in some formal programming language, is written by the programmer. • Can be compiled automatically into object code or machine code or executed by an interpreter. • Pascal source programs have extension ‘.pas’

  14. Compilers & Programs • Object program • Output from the compiler • Equivalent machine language translation of the source program • Files usually have extension ‘.obj’ • Executable program • Output from linker/loader • Machine language program linked with necessary libraries & other files • Files usually have extension ‘.exe’

  15. Running Programs • Steps that the computer goes through to run a program: Memory Machine language program (executable file) C P U Input Data Data entered during execution Computed results Program Output

  16. Program Execution • Steps taken by the CPU to run a program (instructions are in machine language): • Fetch an instruction • Decode (interpret) the instruction • Retrieve data, if needed • Execute (perform) actual processing • Store the results, if needed

  17. Program Errors • Syntax Errors: • Errors in grammar of the language • Runtime error: • When there are no syntax errors, but the program can’t complete execution • Divide by zero • Invalid input data • Logical errors: • The program completes execution, but delivers incorrect results • Incorrect usage of parentheses

  18. Brief History of Python • Invented in the Netherlands, early 90s by Guido van Rossum • Named after Monty Python • Open sourced from the beginning • Considered a scripting language, but is much more • Scalable, object oriented and functional from the beginning • Used by Google from the beginning • Increasingly popular

  19. Python’s Benevolent Dictator For Life “Python is an experiment in how much freedom program-mers need. Too much freedom and nobody can read another's code; too little and expressive-ness is endangered.” - Guido van Rossum

  20. Installing • Python is pre-installed on most Unix systems, including Linux and MAC OS X • The pre-installed version may not be the most recent one (2.6.2 and 3.1.1 as of Sept 09) • Download from http://python.org/download/ • Python comes with a large library of standard modules • There are several options for an IDE • IDLE – works well with Windows • Emacs with python-mode or your favorite text editor • Eclipse with Pydev (http://pydev.sourceforge.net/)

  21. IDLE Development Environment • IDLE is an Integrated DeveLopment Environ-ment for Python, typically used on Windows • Multi-window text editor with syntax highlighting, auto-completion, smart indent and other. • Python shell with syntax highlighting. • Integrated debuggerwith stepping, persis-tent breakpoints,and call stack visi-bility

  22. Python Scripts • When you call a python program from the command line the interpreter evaluates each expression in the file • Familiar mechanisms are used to provide command line arguments and/or redirect input and output • Python also has mechanisms to allow a python program to act both as a script and as a module to be imported and used by another python program

  23. The Basics

  24. A Code Sample (in IDLE) x = 34 - 23 z = 3.45 print x print z print (x + z) print (z*x)

  25. Enough to Understand the Code • Indentation matters to code meaning • Block structure indicated by indentation • First assignment to a variable creates it • Variable types don’t need to be declared. • Python figures out the variable types on its own. • Assignment is = and comparison is == • For numbers + - * / % are as expected • Special use of + for string concatenation and % for string formatting (as in C’s printf) • Logical operators are words (and, or, not) not symbols • The basic printing command is print

  26. Naming Rules • Names are case sensitive and cannot start with a number. They can contain letters, numbers, and underscores. bob Bob _bob _2_bob_ bob_2 BoB • There are some reserved words: and, assert, break, class, continue, def, del, elif, else, except, exec, finally, for, from, global, if, import, in, is, lambda, not, or, pass, print, raise, return, try, while

  27. Assignment • You can assign to multiple names at the same time >>> x, y = 2, 3 >>> x 2 >>> y 3 This makes it easy to swap values >>> x, y = y, x • Assignments can be chained >>> a = b = x = 2

  28. Accessing Non-Existent Name Accessing a name before it’s been properly created (by placing it on the left side of an assignment), raises an error >>> y Traceback (most recent call last): File "<pyshell#16>", line 1, in -toplevel- y NameError: name ‘y' is not defined >>> y = 3 >>> y 3

More Related