Jim Fawcett CSE687 – Object Oriented Design Spring 2015

Slides:



Advertisements
Similar presentations
CSE 332: C++ overview CSE 332 Overview and Structure CSE 332 emphasizes studio-based active learning –Introductory lecture material followed by hands-on.
Advertisements

Portability and Safety Mahdi Milani Fard Dec, 2006 Java.
Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
Why COM and.Net? Jim Fawcett CSE775 – Distributed Objects Spring 2005.
ICE1341 Programming Languages Spring 2005 Lecture #3 Lecture #3 In-Young Ko iko.AT. icu.ac.kr iko.AT. icu.ac.kr Information and Communications University.
From C++ to C#. Web programming The course is on web programming using ASP.Net and C# The course is on web programming using ASP.Net and C# ASP.Net is.
CSC 142 A 1 CSC 142 Introduction to Java [Reading: chapter 0]
C++ Programming. Table of Contents History What is C++? Development of C++ Standardized C++ What are the features of C++? What is Object Orientation?
11 Getting Started with C# Chapter Objectives You will be able to: 1. Say in general terms how C# differs from C. 2. Create, compile, and run a.
Computing with C# and the.NET Framework Chapter 1 An Introduction to Computing with C# ©2003, 2011 Art Gittleman.
Eric Keller, Evan Green Princeton University PRESTO /22/08 Virtualizing the Data Plane Through Source Code Merging.
Distributed Systems (236351) Tutorial 1 - Getting Started with Visual Studio C#.NET.
Algorithm Programming Bar-Ilan University תשס"ח by Moshe Fresko.
CSE 332: C++ memory management idioms C++ Memory Management Idioms Idioms are reusable design techniques in a language –We’ll look at 4 important ones.
CSE 425: Object-Oriented Programming I Object-Oriented Programming A design method as well as a programming paradigm –For example, CRC cards, noun-verb.
CSE 425: Data Types I Data and Data Types Data may be more abstract than their representation –E.g., integer (unbounded) vs. 64-bit int (bounded) A language.
C++ Memory Overview 4 major memory segments Key differences from Java
CS212: Object Oriented Analysis and Design Lecture 17: Virtual Functions.
A-1 © 2000 UW CSE University of Washington Computer Programming I Lecture 21: Course Wrap-up and Look Ahead.
JAVA INTRODUCTION. What is Java? 1. Java is a Pure Object – Oriented language 2. Java is developing by existing languages like C and C++. How Java Differs.
Recap Introduction to Inheritance Inheritance in C++ IS-A Relationship Polymorphism in Inheritance Classes in Inheritance Visibility Rules Constructor.
CS 367 Introduction to Data Structures Charles N. Fischer Fall s367.html.
Jim Fawcett CSE687 – Object Oriented Design Spring 2001
Applications Active Web Documents Active Web Documents.
Windows Programming Environments
CSE687 - Object Oriented Design class notes Survey of the C++ Programming Language Jim Fawcett Spring 2005.
Jim Fawcett CSE687-OnLine – Object Oriented Design Summer 2017
Copyright © Jim Fawcett Spring 2017
Jim Fawcett CSE775 – Distributed Objects Spring 2017
Jim Fawcett CSE687 – Object Oriented Design Spring 2001
Abstract Factory Pattern
Jim Fawcett CSE687 – Object Oriented Design Spring 2016
Names and Attributes Names are a key programming language feature
Jim Fawcett CSE687 – Object Oriented Design Spring 2003
Types for Programs and Proofs
CSE687 – Object Oriented Design
Jim Fawcett CSE687 – Object Oriented Design Spring 2015
Introduction to Visual Basic 2008 Programming
7. Inheritance and Polymorphism
CSE687 - Object Oriented Design class notes Survey of the C++ Programming Language Jim Fawcett Spring 2004.
Jim Fawcett CSE681 – Software Modeling and Analysis Fall 2005
Jim Fawcett CSE687 – Object Oriented Design Spring 2005
C# and the .NET Framework
1.1 Reasons to study concepts of PLs
Python Training in Chennai
ITS 145: Intro to Information Systems
Jim Fawcett CSE775 – Distributed Objects Spring 2012
Abstract Factory Pattern
CMPE419 Mobile Application Development
Intent (Thanks to Jim Fawcett for the slides)
CSE 332 Overview and Structure
Web Development Using ASP .NET
Object Oriented Practices
Pointers C#, pointers can only be declared to hold the memory addresses of value types int i = 5; int *p; p = &i; *p = 10; // changes the value of i to.
Polymorphism Professor Hugh C. Lauer CS-2303, System Programming Concepts (Slides include materials from The C Programming Language, 2nd edition, by Kernighan.
Dynamic Memory Management
CISC/CMPE320 - Prof. McLeod
Variables and Java vs C++
CSCE 221 Professor Lupoli TAMU CSCE 221 Intro.
CSE 153 Design of Operating Systems Winter 2019
CMPE419 Mobile Application Development
Jim Fawcett CSE687 – Object Oriented Design Spring 2003
Jim Fawcett CSE681 – SW Modeling & Analysis Fall 2018
Chapter 8 - Design Strategies
Dynamic Memory Management
Automation and IDispatch
Jim Fawcett CSE687 – Object Oriented Design Spring 2014
Jim Fawcett CSE687 – Object Oriented Design Spring 2015
Exceptions and networking
Jim Fawcett CSE687 – Object Oriented Design Spring 2015
Presentation transcript:

Jim Fawcett CSE687 – Object Oriented Design Spring 2015 Assessment – C++ Jim Fawcett CSE687 – Object Oriented Design Spring 2015

C++ - Strengths Is very powerful Language emphasizes performance Can program at very low level or very high level of abstraction Has direct access to memory User defined objects are first class citizens Supports structured design, object oriented design, and generic design Has a flexible memory model – static, stack, and heap Language emphasizes performance You don’t pay for features you don’t use Almost no runtime checking Is platform agnostic Language and standard library apply to all platfroms Easy to isolate platform dependencies in small modules. Has a governing standard

C++ Strengths C++ is widely used There are a lot of resources available: Stroustrup’s Site Herb Sutter's Site CodeProject Chris Sell's Site Boost C++ Library C++ at Microsoft

C++ - Weaknesses! C++ is a complex language Context dependent The keyword static has four distinctly different meanings, depending on the context of its use. Has a lot of rules that are not enforced by the compiler Use virtual destructors Use initializers in constructors Don’t return references to temporaries Most rules have exceptions Compiler will automatically generate constructors: All constructors? No. Which ones? That depends. In fact, the language implies many implicit operations. The good news is that C++ does lots of things for you! The bad news is that C++ does lots of things for you!

C++ Weaknesses? Safety is not automatic However, you are in control! No bounds checking Direct access to memory Can break the type system with casts Thrown exceptions can leave program in undefined state. However, you are in control! You want bounds checking – then build it into your class – it’s not hard. You can create smart, safe pointers if you want – we’ll see examples later. The C++11 standard library has done that. You can safely cast and write exception safe code. You just have to know how! That’s why, among other reasons, that you are here.

C++ - Weaknesses Things not supported by the language Directory services Graphical User Interfaces Network programming Internet programming Database operations You can provide all those things. You will find FileSystem and Sockets packages on the college server

C# - Strengths

Ok, That’s a joke! I like C# too.

Resources To Help You Class Texts Reference in SciTech Library – Carnagie Hall, south east corner Friday help sessions: 4:00pm – 5:30pm in CST 4-201 by instructor 5:30pm – 7:00pm in CST 4-201 by TAs Teaching Assistants: Office Hours Special Help Sessions One or two sessions covering Visual Studio IDE

End of Assessment