History and Background

Slides:



Advertisements
Similar presentations
CS 110 Lab Spring Outline >Computer Science Lab Overview (syllabus)< Why we're learning programming with Java How to succeed.
Advertisements

Introduction to Operating Systems CS-2301 B-term Introduction to Operating Systems CS-2301, System Programming for Non-majors (Slides include materials.
Fundamentals of Software Development 1Slide 1 Dennis Ritchie and Brian Kernighan What’s C, exactly?What’s C, exactly? A portable language developed by.
Introduction to Computer Science /16/15. Introduction and Attendance Handout.
INTRODUCTION Introduction to Systems Programming - COMP 1002, 1402 Instructor : Behnam Hajian
CSC 142 A 1 CSC 142 Introduction to Java [Reading: chapter 0]
BIT Presentation 6. Contents GENERATIONS OF LANGUAGES COMPILERS AND INTERPRETERS VIRTUAL MACHINES OBJECT-ORIENTED PROGRAMMING SCRIPTING LANGUAGES.
Programming Languages
1 Lecture 2 : Computer System and Programming. Computer? a programmable machine that  Receives input  Stores and manipulates data  Provides output.
 2008 Pearson Education, Inc. All rights reserved Introduction to Computers, the Internet and World Wide Web.
MCS 270 Spring 2014 Object-Oriented Software Development.
CS2303 C14 Systems Programming Concepts Bob Kinicki.
Introduction By: Dr. Javad Razjouyan. Programming Languages.
Programming Languages – Primary Uses. FORTRAN, LISP, COBOL Supercomputing applications AI development Business software Fun Fact: The Terminator.
COMPUTER PROGRAMMING I SUMMER 2011 Programming Languages.
Programming History. Who was the first programmer?
Sadegh Aliakbary Sharif University of Technology Fall 2012.
C Programming Language Bill Jensen CS 354 May, 3 rd 2007.
Introduction to C++ Programming Language
1 Lecture 2 : Computer System and Programming. Computer? a programmable machine that  Receives input  Stores and manipulates data  Provides output.
C Language: Introduction
Monday, Jan 6, 2003Kate Gregory with material from Deitel and Deitel CO 204 Object Oriented Programming 2003 Trent University Kate Gregory.
Introduction to C Programming Language. History of C  C was evolved by Dennis Ritchie at AT&T Bell Laboratories in early of 1970s  Successor of: ALGOL.
CS 2303 Systems Programming Concepts Bob Kinicki A08.
History of Programming Languages Compiled by Wasim Ahmad Khan.
Cs205: engineering software university of virginia fall 2006 David Evans Object-Oriented Programming.
a medium allowing humans and computers to communicate an abstraction of the real world a notation for expressing algorithms the set of all syntactically.
Main Part of a Computer.
A Synopsis of Their History
Introduction to Programming / chapter 1&2 / COM1022
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
NOCTI Study Guide #2.
LESSON 1 Introduction to Programming Language
Computer System and Programming
UCSC All rights reserved
C Language VIVA Questions with Answers
Chapter 1 – Introduction to Computers and C++ Programming
CISC/CMPE320 - Prof. McLeod
ITS 145: Intro to Information Systems
Application Development Theory
Advanced Programming Fall 2017.
High Level Programming Languages
Ada – 1983 History’s largest design effort
Programming Language Design
Prof. Jason Eisner MWF 3-4pm (sometimes 3-4:15)
“Under the Hood” of Polymorphism
Structures, Unions, and Typedefs
Derived Classes in C++ Professor Hugh C. Lauer CS-2303, System Programming Concepts (Slides include materials from The C Programming Language, 2nd edition,
Linked Lists in C and C++
Binary Trees (and Big “O” notation)
Polymorphism Professor Hugh C. Lauer CS-2303, System Programming Concepts (Slides include materials from The C Programming Language, 2nd edition, by Kernighan.
Bit Fields & Bitwise Operations
CS-2303 System Programming Concepts
Templates (again) Professor Hugh C. Lauer CS-2303, System Programming Concepts (Slides include materials from The C Programming Language, 2nd edition,
Symbolic Constants in C
Recursion and Implementation of Functions
Programming Assignment #6
Scope Rules and Storage Types
Programming Assignment #5
Your first C and C++ programs
Introduction to Computer Programming
Von Neumann Architecture
(Computer fundamental Lab)
Digression on Loop Invariants
Java History, Editions, Version Features
CSC 142 Introduction to Java [Reading: chapters 1 & 2]
C Programming Language
What is Programming?.
What is Programming Language
CSE 444 Database Management Systems Autumn 1997 University of Washington Introduction and Welcome © 1997 UW CSE 12/12/2019.
Presentation transcript:

History and Background Professor Hugh C. Lauer CS-2303, System Programming Concepts (Slides include materials from The C Programming Language, 2nd edition, by Kernighan and Ritchie, Absolute C++, by Walter Savitch, The C++ Programming Language, Special Edition, by Bjarne Stroustrup, and from C: How to Program, 5th and 6th editions, by Deitel and Deitel) CS-2303, A-Term 2010 History and Background

History and Background Why C? Because we have to! Many situations where it is only language or system available Small, embedded systems, instrumentation, etc. Many “low-level” situations that don’t have support for “high-level” languages Operating systems, real-time systems, drivers CS-2303, A-Term 2010 History and Background

History and Background Why not C? C is very low-level Data structures must be programmed “by hand” Operations must be done out in “long hand” No support for “object oriented” design Marginal support for higher-level thought processes Much, much harder to use than higher level languages/systems Better alternatives available for almost all applications Java, Python, Ruby, etc. – many CS situations Matlab, SimuLink – physical modeling LabView – instrumentation and control Excel – accounting and statistics SQL – billing and transactions … CS-2303, A-Term 2010 History and Background

History and Background What about C++? Object-oriented thinking Data abstractions, classes, objects, interfaces Operator overloading Inheritance Lots of other good stuff … Backward compatible with C To large extent Allows programmer to get close to hardware when needed Allows programmer to get close to data representation when needed Not platform independent (like Java) Still need to be conscious of memory management CS-2303, A-Term 2010 History and Background

Role within CS Curriculum CS-1101 Intro. to Program Design CS-1102 Accelerated Intro. to Prog. Design OR CS-2102 Obj. Oriented Design Concepts CS-2303 System Prog. Concepts CS-2301 Sys Prog. for non-majors Other CS Courses OR CS-2011 Machine Org & Assembly Lang. CS-3516 Computer Networks CS-3013 Operating Systems Other CS System Courses Other CS System Courses Introduction

History and Background A Short History In the beginning … Machine language Assembly language One line per machine instruction So “high level” languages were invented Non-recursive:– Fortran, Cobol Recursive:– Algol, Lisp, Snobol, PL/1, etc. Really primitive! Too difficult for big projects Too advanced! Too much infrastructure for operating systems, control systems, many kinds of projects CS-2303, A-Term 2010 History and Background

A Short History (continued) 1960s:– “system programming” languages invented More direct control over hardware Not so primitive as Assembly Language Did not do as much as Fortran, Algol, etc. A veritable alphabet soup BLISS, BCPL, PL/360, … CS-2303, A-Term 2010 History and Background

A Short History (continued) Late 1960s:– MIT’s MULTICS project doesn’t live up to expectation Bell Labs wants to pull out Ken Thompson starts on Unix as alternative Thompson creates own system language Based on BCPL, untyped, called B First version of Unix written in B Unix takes hold inside Bell Labs Needs to be re-written Dennis Ritchie et al create C as typed successor to B CS-2303, A-Term 2010 History and Background

A Short History (continued) C wins the race of “system programming” languages Language of choice for many operating systems Many, many applications Approximately forty years of general acceptance Object-oriented programming begins to emerge Stroustrup starts on C with Classes Based on Simula 67 Backward compatible with C Later renamed C++ CS-2303, A-Term 2010 History and Background

A Short History (continued) By 1990, C++ is language of choice for many kinds of applications Good:– object-oriented, classes, inheritance, etc. Bad:– all of the ugly characteristics of C still persist Complex object model, explicit memory management, etc. Jim Gosling at Sun Microsystems starts a complete rewrite of C++ Simpler object model Cleaner, automatic memory management Portable, can be embedded in web pages, etc. Eventually called Java Dominant Programming Language today! CS-2303, A-Term 2010 History and Background

History and Background Personal Observation For Java programmers, C++ is difficult For C++ programmers, Java is difficult CS-2303, A-Term 2010 History and Background

History and Background Questions? Next Topic CS-2303, A-Term 2010 History and Background