Binary System
 
 
2  4 16 2  3 8 2  2 4 2  1 2 2  0 1 0 0 1 1 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1
 
Decimal Binary Octal HexaDecimal 1 01 001 0000 8 1000 010 0008 10 1010 012 A 11 1011 013 B 12 1100 014 C 14 1111 016 D 15 1111 017 E
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
De Morgan’s law
 
DETAILED INSTRUCTIONS TO CONTROL COMPUTER OPERATION PROGRAM:   SET OF INSTRUCTIONS TO THE COMPUTER STORED:   PROGRAM MUST BE IN PRIMARY STORAGE SYSTEM SOFTWARE:   MANAGES COMPUTER RESOURCES APPLICATION SOFTWARE:   SPECIFIC BUSINESS APPLICATION * SOFTWARE
SOFTWARE PROGRAMMING LANGUAGES:   ASSEMBLY LANGUAGE; FORTRAN;  COBOL; PL / 1; QBASIC; PASCAL; C; C++;  FOURTH GENERATION LANGUAGES OPERATING SYSTEM: SCHEDULED COMPUTER EVENTS  ALLOCATES COMPUTER RESOURCES MONITORS EVENTS LANGUAGE TRANSLATORS: INTERPRETERS COMPILERS UTILITY PROGRAMS: ROUTINE OPERATIONSMANAGE DATA     HARDWARE SYSTEM SOFTWARE APPLICATION SOFTWARE
MULTIPROGRAMMING OPERATING SYSTEM UNUSED MEMORY PROGRAM 1 TRADITIONAL SINGLE-PROGRAM SYSTEM OPERATING SYSTEM UNUSED MEMORY PROGRAM 1 PROGRAM 2 PROGRAM 3 MULTIPROGRAMMING ENVIRONMENT
MULTITASKING MULTIPROGRAMMING ON A SINGLE-USER SYSTEM SUCH AS A MICROCOMPUTER *
MULTITHREADING ABILITY TO EXECUTE DIFFERENT PARTS (THREADS) OF A PROGRAM SIMULTANEOUSLY *
VIRTUAL  STORAGE METHOD OF HANDLING SEVERAL PROGRAMS IN PRIMARY STORAGE: PROGRAM DIVIDED INTO FIXED LENGTH PORTIONS (PAGES) OR VARIABLE LENGTH (SEGMENTS) CURRENT PORTIONS RESIDE IN PRIMARY STORAGE PORTIONS SWAPPED OUT WHEN DONE *
TIME SHARING MANY USERS SHARE LARGE CPU: TIME IN CPU DIVIDED INTO SLICES (e.g.: 2 MICROSECONDS) EACH USER HAS ACCESS TO CPU DURING SLICE SINCE CPU IS FAST, CAN DO MUCH DURING TIME SLICE USER’S JOB SWAPPED  OUT AT END OF SLICE *
MULTIPROCESSING TWO OR MORE PARALLEL PROCESSORS IN SYSTEM PROGRAM CAN BE DIVIDED  TO BE PROCESSED  BY MULTIPLE CPUs CAN PROCESS  LARGE PROGRAMS  MORE RAPIDLY  *
SOURCE CODE:   HIGH-LEVEL LANGUAGE INSTRUCTIONS COMPILER:   TRANSLATES HIGH-LEVEL CODE INTO MACHINE LANGUAGE OBJECT CODE:   TRANSLATED INSTRUCTIONS READY FOR COMPUTER * LANGUAGE TRANSLATION
TRANSLATION PROCESS SOURCE CODE PROGRAM COMPILER OBJECT  CODE LINKAGE EDITOR LOAD MODULE OTHER OBJECT  CODE MODULES UTILITY PROGRAMS PERFORM ROUTINE TASKS
GRAPHICAL USER INTERFACE (GUI) OPERATING SYSTEM USES: GRAPHIC ICONS:  Icons, buttons, bars, boxes POINTER:  Mouse, pen, touch screen TO ISSUE COMMANDS MAKE SELECTIONS *
MICROCOMPUTER OPERATING SYSTEMS OPERATING SYSTEM FEATURES 32-bit operating system, GUI, multitasking,  networking 32-bit operating system not limited to Intel chips.  Multitasking, multiprocessing, networking 32-bit. Developed for IBM PS/2. Multitasking,  networking Paired-down for handheld computers, wireless communication devices Windows  98 & 95 Windows NT  Me & 2000 Windows CE OS/2
OPERATING SYSTEM Mac OS For Macintosh computers. Multitasking.  Powerful graphics, multimedia Unix For powerful microcomputers, workstations,  minicomputers. Multitasking, multi-user processing, networking. Portable to various computer platforms DOS For IBM (PC-DOS) and PC (MS-DOS).  Program memory: 640K Linux Free, reliable alternative to Unix, Windows. Runs on many Platforms. Open-source FEATURES MICROCOMPUTER OPERATING SYSTEMS
Why are there so many programming languages? evolution -- we've learned better ways of doing things over time orientation toward special purposes  orientation toward personal preference
What makes a language successful? easy to learn (BASIC, Pascal, LOGO, Scheme)  easy to express things -- easy to use once fluent -- "powerful"  (C++, Common Lisp, APL, Algol-68, perl)  easy to implement (BASIC, Forth)  possible to compile to very good (fast/small) code (Fortran)  backing of a powerful sponsor (COBOL, PL/1, Ada, Visual Basic)  wide dissemination at minimal cost (Pascal, Turing, Java)
Why do we have programming languages? -- what is a language for? languages from the user's point of view  way of thinking -- way of expressing algorithms  languages from the implementor's point of view abstraction of virtual machine -- way of specifying what you want the hardware to do without getting down into the bits
Why study programming languages? Help you choose a language C vs Modula-3 vs C++ for systems programming  Fortran vs APL vs Ada for numerical computations  C vs Ada vs Modula-2 for embedded systems  Common Lisp vs Scheme vs ML for symbolic data manipulation  Java vs C/CORBA for networked PC programs Make it easier to learn new languages some languages are similar; easy to walk down family tree concepts have even more similarity
Help you make better use of whatever language you use understand obscure features understand implementation costs: choose between alternative ways of doing things, based on knowledge of what will be done  underneath
GENERATIONS OF PROGRAMMING LANGUAGES 1st.  Since 1940s.  MACHINE LANGUAGE:   binary code 2nd.  Since early ’50s.  ASSEMBLY LANGUAGE:   mnemonics for  numeric code 3rd.  Since mid ‘50s.  HIGH-LEVEL LANGUAGES 4th.  Since late ‘70s.  MODERN APPLICATION PACKAGES *
HIGH-LEVEL LANGUAGES FORTRAN  ( FOR mula  TRAN slator) :  Scientific, Engineering applications COBOL  ( CO mmon  B usiness  O riented  L anguage) :  Predominant for transaction processing BASIC  ( B eginners  A ll-purpose  S ymbolic  I nstruction  C ode) :   General purpose PC  language *
HIGH-LEVEL LANGUAGES PASCAL:   Used to teach structured programming practices. Weak in file handling, input / output C and C++:   Powerful PC Language for developing applications. Efficient execution; cross platform. C++ is object oriented *
FOURTH GENERATION LANGUAGES  (4GL) CAN BE EMPLOYED BY END USERS NONPROCEDURAL CAN DEVELOP APPLICATIONS QUICKLY NATURAL LANGUAGES SIX CATEGORIES *
FOURTH GENERATION LANGUAGES  (4GL) 1. QUERY LANGUAGES: Rapidly retrieve data Interactive/ on-line May use  NATURAL LANGUAGE Support special requests for  data from relational  databases *
FOURTH GENERATION LANGUAGES (4GL) 2. REPORT GENERATORS: Create customized reports Wide range of formats 3. GRAPHICS LANGUAGES: Can manipulate drawings,  graphs, photos, videos Presentation managers *
FOURTH GENERATION LANGUAGES (4GL) 4. APPLICATION GENERATORS: User specifies computer needs Generator creates logic and code for application Greatly reduces development time *
FOURTH GENERATION LANGUAGES  (4GL) 5. VERY HIGH-LEVEL PROGRAMMING LANGUAGES: Professional programmer productivity tool Uses fewer instructions Reduces development time *
FOURTH GENERATION LANGUAGES  (4GL) 7. SOFTWARE PACKAGE:   Commercially available set of programs... WORD PROCESSING SPREADSHEETS DATA MANAGEMENT PRESENTATION MANAGEMENT INTEGRATED SOFTWARE PACKAGES  NOW COMBINE THESE TO  SIMPLIFY LEARNING AND USE *
SOFTWARE TOOLS WORD PROCESSING SPREADSHEETS DATA MANAGEMENT PRESENTATION GRAPHICS INTEGRATED SOFTWARE SUITES E-MAIL WEB BROWSERS GROUPWARE *
GROUPWARE CAPABILITIES GROUP WRITING & COMMENTING ELECTRONIC MAIL DISTRIBUTION SCHEDULING MEETINGS & APPOINTMENTS SHARED FILES & DATABASES SHARED TIME LINES & PLANS ELECTRONIC MEETINGS & CONFERENCES *
MIDDLEWARE SOFTWARE ALLOWS DIFFERENT APPLICATIONS TO EXCHANGE DATA * APPLICATION A APPLICATION B MIDDLE WARE DATA
OBJECT-ORIENTED PROGRAMMING COMBINES DATA & PROCEDURES INTO A SINGLE  OBJECT PROGRAM SENDS MESSAGE TO OBJECT TO PERFORM EMBEDDED PROCEDURE OBJECT’S DATA ENCAPSULATED FROM REST OF SYSTEM CREATES REUSABLE CODE REDUCES TIME AND COST OF WRITING SOFTWARE *
OBJECT-ORIENTED PROGRAMMING VISUAL PROGRAMMING:   SELECT AND ARRANGE OBJECTS RATHER THAN WRITE CODE CLASS:   ALL OBJECTS OF A CLASS HAVE ALL FEATURES OF THAT CLASS INHERITANCE:   SPECIFIC CLASS RECEIVES FEATURES OF A MORE GENERAL CLASS OVERRIDE:   SUBCLASS MAY OVERRIDE INHERITED METHOD (e.g.: Printout of an HOURLY worker pay check may differ from that of a WEEKLY worker *
OBJECT-ORIENTED PROGRAMMING JAVA:   Sun Microsystems OBJECT-ORIENTED PROGRAMMING LANGUAGE APPLET:  TINY PROGRAM TO EXECUTE SMALL FUNCTION APPLETS DOWNLOADED FROM NETWORK RUN ON ANY COMPUTER & OPERATING SYSTEM RESULT SAVED ON NETWORK, NOT ON PC ONLY NETWORK VERSION OF SOFTWARE NEEDS UPGRADE *
OBJECT-ORIENTED PROGRAMMING HTML:  Hypertext markup language, current favorite for Web pages XML:  e X tensible  M arkup  L anguage, further development of HTML describes data more fully XHTML:  Hybrid may replace HTML as standard for Web *

Binary system

  • 1.
  • 2.
  • 3.
  • 4.
    2 416 2 3 8 2 2 4 2 1 2 2 0 1 0 0 1 1 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1
  • 5.
  • 6.
    Decimal Binary OctalHexaDecimal 1 01 001 0000 8 1000 010 0008 10 1010 012 A 11 1011 013 B 12 1100 014 C 14 1111 016 D 15 1111 017 E
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
    DETAILED INSTRUCTIONS TOCONTROL COMPUTER OPERATION PROGRAM: SET OF INSTRUCTIONS TO THE COMPUTER STORED: PROGRAM MUST BE IN PRIMARY STORAGE SYSTEM SOFTWARE: MANAGES COMPUTER RESOURCES APPLICATION SOFTWARE: SPECIFIC BUSINESS APPLICATION * SOFTWARE
  • 26.
    SOFTWARE PROGRAMMING LANGUAGES: ASSEMBLY LANGUAGE; FORTRAN; COBOL; PL / 1; QBASIC; PASCAL; C; C++; FOURTH GENERATION LANGUAGES OPERATING SYSTEM: SCHEDULED COMPUTER EVENTS ALLOCATES COMPUTER RESOURCES MONITORS EVENTS LANGUAGE TRANSLATORS: INTERPRETERS COMPILERS UTILITY PROGRAMS: ROUTINE OPERATIONSMANAGE DATA HARDWARE SYSTEM SOFTWARE APPLICATION SOFTWARE
  • 27.
    MULTIPROGRAMMING OPERATING SYSTEMUNUSED MEMORY PROGRAM 1 TRADITIONAL SINGLE-PROGRAM SYSTEM OPERATING SYSTEM UNUSED MEMORY PROGRAM 1 PROGRAM 2 PROGRAM 3 MULTIPROGRAMMING ENVIRONMENT
  • 28.
    MULTITASKING MULTIPROGRAMMING ONA SINGLE-USER SYSTEM SUCH AS A MICROCOMPUTER *
  • 29.
    MULTITHREADING ABILITY TOEXECUTE DIFFERENT PARTS (THREADS) OF A PROGRAM SIMULTANEOUSLY *
  • 30.
    VIRTUAL STORAGEMETHOD OF HANDLING SEVERAL PROGRAMS IN PRIMARY STORAGE: PROGRAM DIVIDED INTO FIXED LENGTH PORTIONS (PAGES) OR VARIABLE LENGTH (SEGMENTS) CURRENT PORTIONS RESIDE IN PRIMARY STORAGE PORTIONS SWAPPED OUT WHEN DONE *
  • 31.
    TIME SHARING MANYUSERS SHARE LARGE CPU: TIME IN CPU DIVIDED INTO SLICES (e.g.: 2 MICROSECONDS) EACH USER HAS ACCESS TO CPU DURING SLICE SINCE CPU IS FAST, CAN DO MUCH DURING TIME SLICE USER’S JOB SWAPPED OUT AT END OF SLICE *
  • 32.
    MULTIPROCESSING TWO ORMORE PARALLEL PROCESSORS IN SYSTEM PROGRAM CAN BE DIVIDED TO BE PROCESSED BY MULTIPLE CPUs CAN PROCESS LARGE PROGRAMS MORE RAPIDLY *
  • 33.
    SOURCE CODE: HIGH-LEVEL LANGUAGE INSTRUCTIONS COMPILER: TRANSLATES HIGH-LEVEL CODE INTO MACHINE LANGUAGE OBJECT CODE: TRANSLATED INSTRUCTIONS READY FOR COMPUTER * LANGUAGE TRANSLATION
  • 34.
    TRANSLATION PROCESS SOURCECODE PROGRAM COMPILER OBJECT CODE LINKAGE EDITOR LOAD MODULE OTHER OBJECT CODE MODULES UTILITY PROGRAMS PERFORM ROUTINE TASKS
  • 35.
    GRAPHICAL USER INTERFACE(GUI) OPERATING SYSTEM USES: GRAPHIC ICONS: Icons, buttons, bars, boxes POINTER: Mouse, pen, touch screen TO ISSUE COMMANDS MAKE SELECTIONS *
  • 36.
    MICROCOMPUTER OPERATING SYSTEMSOPERATING SYSTEM FEATURES 32-bit operating system, GUI, multitasking, networking 32-bit operating system not limited to Intel chips. Multitasking, multiprocessing, networking 32-bit. Developed for IBM PS/2. Multitasking, networking Paired-down for handheld computers, wireless communication devices Windows 98 & 95 Windows NT Me & 2000 Windows CE OS/2
  • 37.
    OPERATING SYSTEM MacOS For Macintosh computers. Multitasking. Powerful graphics, multimedia Unix For powerful microcomputers, workstations, minicomputers. Multitasking, multi-user processing, networking. Portable to various computer platforms DOS For IBM (PC-DOS) and PC (MS-DOS). Program memory: 640K Linux Free, reliable alternative to Unix, Windows. Runs on many Platforms. Open-source FEATURES MICROCOMPUTER OPERATING SYSTEMS
  • 38.
    Why are thereso many programming languages? evolution -- we've learned better ways of doing things over time orientation toward special purposes orientation toward personal preference
  • 39.
    What makes alanguage successful? easy to learn (BASIC, Pascal, LOGO, Scheme) easy to express things -- easy to use once fluent -- "powerful" (C++, Common Lisp, APL, Algol-68, perl) easy to implement (BASIC, Forth) possible to compile to very good (fast/small) code (Fortran) backing of a powerful sponsor (COBOL, PL/1, Ada, Visual Basic) wide dissemination at minimal cost (Pascal, Turing, Java)
  • 40.
    Why do wehave programming languages? -- what is a language for? languages from the user's point of view way of thinking -- way of expressing algorithms languages from the implementor's point of view abstraction of virtual machine -- way of specifying what you want the hardware to do without getting down into the bits
  • 41.
    Why study programminglanguages? Help you choose a language C vs Modula-3 vs C++ for systems programming Fortran vs APL vs Ada for numerical computations C vs Ada vs Modula-2 for embedded systems Common Lisp vs Scheme vs ML for symbolic data manipulation Java vs C/CORBA for networked PC programs Make it easier to learn new languages some languages are similar; easy to walk down family tree concepts have even more similarity
  • 42.
    Help you makebetter use of whatever language you use understand obscure features understand implementation costs: choose between alternative ways of doing things, based on knowledge of what will be done underneath
  • 43.
    GENERATIONS OF PROGRAMMINGLANGUAGES 1st. Since 1940s. MACHINE LANGUAGE: binary code 2nd. Since early ’50s. ASSEMBLY LANGUAGE: mnemonics for numeric code 3rd. Since mid ‘50s. HIGH-LEVEL LANGUAGES 4th. Since late ‘70s. MODERN APPLICATION PACKAGES *
  • 44.
    HIGH-LEVEL LANGUAGES FORTRAN ( FOR mula TRAN slator) : Scientific, Engineering applications COBOL ( CO mmon B usiness O riented L anguage) : Predominant for transaction processing BASIC ( B eginners A ll-purpose S ymbolic I nstruction C ode) : General purpose PC language *
  • 45.
    HIGH-LEVEL LANGUAGES PASCAL: Used to teach structured programming practices. Weak in file handling, input / output C and C++: Powerful PC Language for developing applications. Efficient execution; cross platform. C++ is object oriented *
  • 46.
    FOURTH GENERATION LANGUAGES (4GL) CAN BE EMPLOYED BY END USERS NONPROCEDURAL CAN DEVELOP APPLICATIONS QUICKLY NATURAL LANGUAGES SIX CATEGORIES *
  • 47.
    FOURTH GENERATION LANGUAGES (4GL) 1. QUERY LANGUAGES: Rapidly retrieve data Interactive/ on-line May use NATURAL LANGUAGE Support special requests for data from relational databases *
  • 48.
    FOURTH GENERATION LANGUAGES(4GL) 2. REPORT GENERATORS: Create customized reports Wide range of formats 3. GRAPHICS LANGUAGES: Can manipulate drawings, graphs, photos, videos Presentation managers *
  • 49.
    FOURTH GENERATION LANGUAGES(4GL) 4. APPLICATION GENERATORS: User specifies computer needs Generator creates logic and code for application Greatly reduces development time *
  • 50.
    FOURTH GENERATION LANGUAGES (4GL) 5. VERY HIGH-LEVEL PROGRAMMING LANGUAGES: Professional programmer productivity tool Uses fewer instructions Reduces development time *
  • 51.
    FOURTH GENERATION LANGUAGES (4GL) 7. SOFTWARE PACKAGE: Commercially available set of programs... WORD PROCESSING SPREADSHEETS DATA MANAGEMENT PRESENTATION MANAGEMENT INTEGRATED SOFTWARE PACKAGES NOW COMBINE THESE TO SIMPLIFY LEARNING AND USE *
  • 52.
    SOFTWARE TOOLS WORDPROCESSING SPREADSHEETS DATA MANAGEMENT PRESENTATION GRAPHICS INTEGRATED SOFTWARE SUITES E-MAIL WEB BROWSERS GROUPWARE *
  • 53.
    GROUPWARE CAPABILITIES GROUPWRITING & COMMENTING ELECTRONIC MAIL DISTRIBUTION SCHEDULING MEETINGS & APPOINTMENTS SHARED FILES & DATABASES SHARED TIME LINES & PLANS ELECTRONIC MEETINGS & CONFERENCES *
  • 54.
    MIDDLEWARE SOFTWARE ALLOWSDIFFERENT APPLICATIONS TO EXCHANGE DATA * APPLICATION A APPLICATION B MIDDLE WARE DATA
  • 55.
    OBJECT-ORIENTED PROGRAMMING COMBINESDATA & PROCEDURES INTO A SINGLE OBJECT PROGRAM SENDS MESSAGE TO OBJECT TO PERFORM EMBEDDED PROCEDURE OBJECT’S DATA ENCAPSULATED FROM REST OF SYSTEM CREATES REUSABLE CODE REDUCES TIME AND COST OF WRITING SOFTWARE *
  • 56.
    OBJECT-ORIENTED PROGRAMMING VISUALPROGRAMMING: SELECT AND ARRANGE OBJECTS RATHER THAN WRITE CODE CLASS: ALL OBJECTS OF A CLASS HAVE ALL FEATURES OF THAT CLASS INHERITANCE: SPECIFIC CLASS RECEIVES FEATURES OF A MORE GENERAL CLASS OVERRIDE: SUBCLASS MAY OVERRIDE INHERITED METHOD (e.g.: Printout of an HOURLY worker pay check may differ from that of a WEEKLY worker *
  • 57.
    OBJECT-ORIENTED PROGRAMMING JAVA: Sun Microsystems OBJECT-ORIENTED PROGRAMMING LANGUAGE APPLET: TINY PROGRAM TO EXECUTE SMALL FUNCTION APPLETS DOWNLOADED FROM NETWORK RUN ON ANY COMPUTER & OPERATING SYSTEM RESULT SAVED ON NETWORK, NOT ON PC ONLY NETWORK VERSION OF SOFTWARE NEEDS UPGRADE *
  • 58.
    OBJECT-ORIENTED PROGRAMMING HTML: Hypertext markup language, current favorite for Web pages XML: e X tensible M arkup L anguage, further development of HTML describes data more fully XHTML: Hybrid may replace HTML as standard for Web *