COMPARISON OF OBJECT-ORIENTED AND PROCEDURE-BASED COMPUTER LANGUAGES: CASE STUDY OF C++ PROGRAMMING
|
|
|
- Kristopher Wilkerson
- 9 years ago
- Views:
Transcription
1 COMPARISON OF OBJECT-ORIENTED AND PROCEDURE-BASED COMPUTER LANGUAGES: CASE STUDY OF C++ PROGRAMMING Kuan C. Chen, Ph.D. Assistant Professor Management Information Systems School of Management Purdue University Calumet ABSTRACT C++ is a hybrid computer programming language, which includes the characteristics of procedure-based and object-oriented. Most studies in the comparison of procedure-based programming and object-oriented languages are focused on the algorithm or scientific applications. In this paper we strive to compare the characteristics of the object-oriented and procedure-based language with implications for business applications. Data anchor and structures applications in the business information system design are demonstrated and also are used to compare the performance between procedure-based and object-oriented languages. In this experiment we will test only basic operations and not the performance of complex systems such as the speed of reading and modifying data. The outcome of this study will serve as a future technical analysis reference for software business application in designing information systems. Keywords: C++, procedure-based, object-oriented, data anchor, structures, business application INTRODUCTION Although object-oriented languages have been around since the 1960s, the past 10 years have seen unparalleled growth in the use and acceptance of object technologies throughout the software industry (7). Many programmers and businesses have now embraced the concept of object-oriented programming (OOP) for their tasks. Some have gone as far to make this their only method of developing information systems. However, there are several advantages and disadvantages to using OOP over traditional procedure-based programming techniques that cannot be overlooked. In general, OOP leads to faster programming development (programmer efficiency), whereas procedure-based programming will lead to faster programs (runtime efficiency). In this paper we will compare the characteristics of the object-oriented and procedure-based language using data anchor as the business application case. Specifically we will review these two kinds of languages from performance and applications aspects. Then, we will try to quantify the runtime performance differences of OOP and procedure-based operations using the C++ programming language in data anchor. C++ is very useful in that it allows for the development of both varieties, whereas the code of other languages such as Java are technically always in object oriented format. In this experiment we will test only basic operations and not the performance of complex systems such as the speed of reading and modifying data. The outcome of this study Volume V, No 1, Issues in Information Systems
2 will serve as a technical analysis reference for software business application in designing information systems. OVERVIEW OF PROGRAMMING LANGUAGES Procedure-based Programming All of the first programming languages were procedure-based, such as FORTRAN, COBOL, APL, PL/1, Ada, and Basic. Procedure-based programming focuses on how to accomplish a task. The programmer must develop the step-by-step to instruct the computer to follow. The steps are from the start of the task to its completion. The programmer determines and controls the order in which the computer processes the instructions. Thus, the order of the instructions is extremely important. The general process of developing a system using procedure-based and Object-oriented approach is shown in Figure 1. Figure 1: Design comparison of procedure-based and Object-oriented (Source: Procedure-based language tends to produce programs that run quickly and use system resources efficiently. It is a conventional approach that is understood by many programmers, software engineers, and system analyst. However, the drawback of the procedure-based language is that is does not fir gracefully with certain types of problems, such as it forces the programmers to view problems as a series of steps; however, some problems might better be visualized as interacting objects or as interrelated words, concepts, and ideas. Object-oriented Programming Object-oriented Programming (abbreviated in what follows to OOP) is an approach to formulate program as a series of objects and methods that interact to perform a specific task. It can be used in most languages, but works best in one that was meant to be OOP, like Java, C++, or C#. It is an entirely different concept from ' procedure-based' programming, which languages like C and BASIC are. A lot of the interesting research work on OOP is hard to apply to business needs, while business badly needs technologies which can ease the burden of developing and maintaining application code (4). Volume V, No 1, Issues in Information Systems
3 The object-oriented program is cognitively similar to the way human beings perceive the real world (5). Using the object-oriented approach, programmers may be able to visualize the solutions to problems more easily. Facets of the object-oriented program can also increase programmer s efficiency because encapsulation allows objects to be adopted and reused in a variety of different program. A potential disadvantage of object-oriented program is runtime efficiency. Object-oriented programs tend to require more memory and processing resources than procedure-based programs. Programmers, software engineers, and system analysts can work together to weigh the tradeoffs between the OOP and runtime efficiency. This is premise of this study to observe the performance between OOP and procedure-based languages. Summary of Comparisons First, in procedure-based programming the programmers code program based on what the program does and when. Most of the time, we have variables and functions that are global (this is in C); the functions of course have their own variables that are localized, but besides that, everything is system wide. This is quite different from OOP. In OOP we are programming based on 'Objects', which I will explain in detail later. Each object has its own methods (functions) and variables. Most variables are not global, though in some languages, method names are (it is important to realize however that in OOP we can be sure what object is being told to perform that method). CASE STUDY Characteristics of C++ Language The C++ programming languages is an extension of C that was developed by Bjarne Stroustrup in the early 1980s at Bell Laboratories. C++ provides a number of features that "spruce up" the C language, but more importantly, it provides capabilities for object-oriented programming. C++ is a hybrid language-it is possible to program in a C-like style, an object-oriented style, or both. C++ programs consist of pieces called classes and functions. You can program each piece you may need to form a C++ program. The advantage of creating your own functions and classes is that you will know exactly how they work. You will be able to examine the C++ code. There are four major elements in C++ object-oriented language, which are data abstraction (reuse code), encapsulation, inheritance (extend reused code), polymorphism (dynamically modify reused code). Data abstract provide an important function in computer programming. They are a hedge against complexity, allowing the programmer to concentrate on the essential attributes of a category and ignore all subordinate attributes. Encapsulation refers to the process of hiding the internal details of objects and their methods. Once an object is coded, it becomes a black box, which essentially hides its data from other objects and allows the data to be accessed via methods. Encapsulation objects can be easily reused, modified, and repurposed. Volume V, No 1, Issues in Information Systems
4 Polymorphism is the ability to redefine a method in a subclass. It allows programmer to crate a single, generic name for a procedure that behaves in unique ways for different classes. Inheritance refers to passing certain characteristics form one class to other classes. Benchmark In this study, we implemented the test in Microsoft Visual Studio 6.0 environment. Although the Visual Studio has dot net today, the old environment has the capability to create the objectoriented and procedure-based programming language test environment. Also, we used the Personal Computer Pentium 4-3GB with 1 Gaga Byte Memory. We tested the following scenarios: Anchor In the business application we used the data anchor to test the performance between procedurebased and object-oriented C++ programming. Data anchor is derived from the Anchor, and whose nodes are data tables. The Anchor is a handle to generic Link List class. It is doubly linked, having both forward (next) and reverse (previous) links. Head and Tail nodes are maintained within Anchor structure. Each node in the Anchor must be the same size, but the actual data inside a node is up to the application. The Anchor has a Current Node concept; i.e. functions that operate at the node level work with the node which has been designed as the Current Node. There is only one current node, and only few ways to change which node is the current node: Rewind, FastForward, Advance, and Backup. Anchor Head Node Tail Node Current Node Node Count Node Previous Node Next Node [Date] Node Previous Node Next Node [Date] Node Previous Node Next Node [Date] Figure 2. A visual representation of an Anchor Volume V, No 1, Issues in Information Systems
5 Structures In either procedure-based or object-oriented C++ the programmer can create some aggregate data-types called structures, and this is the most interesting data-type in C++. Structures are the things that most resemble an object in object-oriented program, (i.e. JAVA). A structure is a variable containing several named member variables, like this; struct foo { int bar; char baz[4]; }; This creates a structure with the name struct foo (the struct keyword becomes part of the name) with the members "bar" and "baz". To define a variable of this type, it can be written as: struct foo MyFoo; To access the members of this structure, you write: MyFoo.bar = 6; Now you see why structures superficially look like objects. Structures are just what they say; they are structures lumping several other named variables together in a unit. Test Procedure The first step in testing OOP is to think in terms of objects instead of procedures. To begin with, each object should be a noun. This is about the most important thing in the OOP approach. Each object then contains actions it can perform, and these should all be verbs, as would be in normal English. Then we have what are called instance variables, these are 'object globals' which are a part of every instance (occurance) of that object. Think of these as an integral part of a thing, like your hand is a 'part' of your body In procedure-based C++, you would have functions that are global, that deal with char pointers indifferent ways. You could put these in a separate file, but if later you forgot and called some other function the same name; then things could explode. In OOP, and object-oriented C++, that is not a concern. The next step is creating a char pointer. It has characters and a length, so the instance variables will have to be just that. { char *string; /* All the syntax in this intro is done int length; * in Objective C, but the concepts apply } * to all OOP languages. */ In the process we need to be able to define this object. What string is, and how long it is. So we will want to be able to tell it to put data there. Here are a couple of methods this object could perform: Volume V, No 1, Issues in Information Systems
6 -define:(char *)what { // stuff to make string = what and length = strlen(what) return self; /* in objc always return self, and return this object. * unless your want something else. */ } // actual name if this method is "-define:" Then we used argument overloading. -define:(char *)first :(char *)second { stuff to do stuff } the actual name of this method is "-define::" -equals:(ourstring *)thestringtocompare { if(!(strcmp(string, [thestringtocompare cstring])) return YES; return NO; } CONCLUSION In this study we provide a milestone process for the programmer or system analyst to select the language structure. Since the benchmark is hard to standardize, the end result of the test becomes doubtable. The fundamental goal for this research is based on the literature reviews to build the business application cased for comparisons of procedure-based and object-oriented programming language using C++. Due the space limits, we only can briefly describe the concept and general processes. For the test result, we summarize three key points: 1. Although OOP is the trend to programming language, the data structure in business application is an important factor to be considered. In general most business applications are the emphasis on the database management to information system development. Unlike the science, it focuses on the algorithm. So prior to using the language, data structure in application should be the first element for choosing either the procedure-base or object-oriented. 2. Benchmark is another key factor to testing and selecting the language programming structure. For the purpose of future research, we recommend to use different platforms and code structure. In this study we could not compare the giant system. Based on the previous research literatures, OOP has the strong case in effectively and efficient to a large system. However, there is also some augments about the performance (run time) issue. Volume V, No 1, Issues in Information Systems
7 3. In this study we used procedure-based and object-oriented C++ for testing. The reason for using the same language because C++ can implement two structures. In the future it needs to identify the test with other OOP language, such as C# and JAVA. REFERENCES 1. Brosgol, M. (1998). A comparison of the concurrency and real-time features of Ada 95 and Java Proceedings of Association for Computing Machinery. 2. Cary, J. R. & Shasharina S. G. (1996). Comparison of C++ and FORTRAN 90 for object-oriented scientific programming. Computer Physics Communications, Nov. Issue. 3. Malik, D. S. (2004). C++ programming: Program design including data structures. Boston: Course Technology. 4. Morrison, R., (1994). Persistent Programming: A Programming Language and Database Integration Technology. Proceedings of the Newcastle International Seminars, P Mosli, S. (1999). Comparison of C++, FORTRAN 90 and Oberon-2 for scientific programming. GISI 95, Editors: Friedbert Huber-Waschle, Helmut Schauer, Peter Widmayer Berlin, P Satzinger, J. & Orvik T. U. (2001). The object-oriented approach. Boston: Course Technology. 7. Sintes, A. (2002). Teaching yourself object-oriented programming. Indianapolis: SAMS Publishing. 8. Stotts, P. D. (1982) A Comparative survey of concurrent programming languages. ACM SIGPLAN Notice, Vol. 17 Is 10, P Stroustrup, B. (1993). The C++ programming language. Reading: Addison-Wesley. 10. Stroustrup, B. (1994). The design and evolution of C++. Reading: Addison-Wesley. 11. Taylor, D. (1990). Object-oriented technology: A manager s guide. Reading: Addison- Wesley. 12. Taylor, D. (1990). Object-oriented technology: A manager s guide. Reading: Addison- Wesley. Volume V, No 1, Issues in Information Systems
What is a programming language?
Overview Introduction Motivation Why study programming languages? Some key concepts What is a programming language? Artificial language" Computers" Programs" Syntax" Semantics" What is a programming language?...there
Lecture 1: Introduction
Programming Languages Lecture 1: Introduction Benjamin J. Keller Department of Computer Science, Virginia Tech Programming Languages Lecture 1 Introduction 2 Lecture Outline Preview History of Programming
Chapter 13 Computer Programs and Programming Languages. Discovering Computers 2012. Your Interactive Guide to the Digital World
Chapter 13 Computer Programs and Programming Languages Discovering Computers 2012 Your Interactive Guide to the Digital World Objectives Overview Differentiate between machine and assembly languages Identify
Chapter 1. Dr. Chris Irwin Davis Email: [email protected] Phone: (972) 883-3574 Office: ECSS 4.705. CS-4337 Organization of Programming Languages
Chapter 1 CS-4337 Organization of Programming Languages Dr. Chris Irwin Davis Email: [email protected] Phone: (972) 883-3574 Office: ECSS 4.705 Chapter 1 Topics Reasons for Studying Concepts of Programming
Chapter 6: Programming Languages
Chapter 6: Programming Languages Computer Science: An Overview Eleventh Edition by J. Glenn Brookshear Copyright 2012 Pearson Education, Inc. Chapter 6: Programming Languages 6.1 Historical Perspective
Course MS10975A Introduction to Programming. Length: 5 Days
3 Riverchase Office Plaza Hoover, Alabama 35244 Phone: 205.989.4944 Fax: 855.317.2187 E-Mail: [email protected] Web: www.discoveritt.com Course MS10975A Introduction to Programming Length: 5 Days
Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages
ICOM 4036 Programming Languages Preliminaries Dr. Amirhossein Chinaei Dept. of Electrical & Computer Engineering UPRM Spring 2010 Language Evaluation Criteria Readability: the ease with which programs
The Rules 1. One level of indentation per method 2. Don t use the ELSE keyword 3. Wrap all primitives and Strings
Object Calisthenics 9 steps to better software design today, by Jeff Bay http://www.xpteam.com/jeff/writings/objectcalisthenics.rtf http://www.pragprog.com/titles/twa/thoughtworks-anthology We ve all seen
Evolution of the Major Programming Languages
142 Evolution of the Major Programming Languages Object Oriented Programming: Smalltalk Object-Oriented: It s fundamental characteristics are: Data abstraction, Inheritance and Dynamic Binding. The essence
Syntax Check of Embedded SQL in C++ with Proto
Proceedings of the 8 th International Conference on Applied Informatics Eger, Hungary, January 27 30, 2010. Vol. 2. pp. 383 390. Syntax Check of Embedded SQL in C++ with Proto Zalán Szűgyi, Zoltán Porkoláb
Curriculum Map. Discipline: Computer Science Course: C++
Curriculum Map Discipline: Computer Science Course: C++ August/September: How can computer programs make problem solving easier and more efficient? In what order does a computer execute the lines of code
Diamond Effect in Object Oriented Programming Languages
Diamond Effect in Object Oriented Programming Languages Rajesh Jangade, Anil Barnwal, Satyakam Pugla Amity Institute of Biotechnology, Amity University, Noida, Uttar Pradesh, India Abstract---Now a day
How To Teach C++ Data Structure Programming
UTSA EE 3223 - C++ Data Structures Syllabus Fall 2015 Part A - Course Outline Catalog Description: 3 hours credit. Review of C/C++ non-object oriented programming concepts. Object-oriented programming
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Java has become enormously popular. Java s rapid rise and wide acceptance can be traced to its design
Computer Information Systems (CIS)
Computer Information Systems (CIS) CIS 113 Spreadsheet Software Applications Prerequisite: CIS 146 or spreadsheet experience This course provides students with hands-on experience using spreadsheet software.
CSE 130 Programming Language Principles & Paradigms
CSE 130 Programming Language Principles & Paradigms Thomas A. Powell [email protected] Housekeeping Syllabus review Direct class page link http://www.pint.com/classes/cse130 Updated syllabus, notes, homework
BCS2B02: OOP Concepts and Data Structures Using C++
SECOND SEMESTER BCS2B02: OOP Concepts and Data Structures Using C++ Course Number: 10 Contact Hours per Week: 4 (2T + 2P) Number of Credits: 2 Number of Contact Hours: 30 Hrs. Course Evaluation: Internal
Moving from CS 61A Scheme to CS 61B Java
Moving from CS 61A Scheme to CS 61B Java Introduction Java is an object-oriented language. This document describes some of the differences between object-oriented programming in Scheme (which we hope you
Introduction to Object-Oriented Programming in MATLAB
MATLAB Digest Introduction to Object-Oriented Programming in MATLAB By Stuart McGarrity Object-oriented programming (OO) applies to software development the standard science and engineering practice of
How To Teach Object Oriented Programming At An Introductory Level Course
149 TEACHING OBJECT ORIENTED PROGRAMMING AT THE INTRODUCTORY LEVEL Mehmet C. OKUR * ABSTRACT Teaching object oriented programming has become a rapidly expanding preference at various educational environments.
Chapter 13: Program Development and Programming Languages
Understanding Computers Today and Tomorrow 12 th Edition Chapter 13: Program Development and Programming Languages Learning Objectives Understand the differences between structured programming, object-oriented
Code Refactoring and Defects
Code Refactoring and Defects Reusing this material This work is licensed under a Creative Commons Attribution- NonCommercial-ShareAlike 4.0 International License. http://creativecommons.org/licenses/by-nc-sa/4.0/deed.en_us
Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives
Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,
CSCI 253. Object Oriented Programming (OOP) Overview. George Blankenship 1. Object Oriented Design: Java Review OOP George Blankenship.
CSCI 253 Object Oriented Design: Java Review OOP George Blankenship George Blankenship 1 Object Oriented Programming (OOP) OO Principles Abstraction Encapsulation Abstract Data Type (ADT) Implementation
Johannes Sametinger. C. Doppler Laboratory for Software Engineering Johannes Kepler University of Linz A-4040 Linz, Austria
OBJECT-ORIENTED DOCUMENTATION C. Doppler Laboratory for Software Engineering Johannes Kepler University of Linz A-4040 Linz, Austria Abstract Object-oriented programming improves the reusability of software
Adapting C++ Exception Handling to an Extended COM Exception Model
Adapting C++ Exception Handling to an Extended COM Exception Model Bjørn Egil Hansen DNV AS, DT 990 Risk Management Software Palace House, 3 Cathedral Street, London SE1 9DE, UK [email protected]
RARITAN VALLEY COMMUNITY COLLEGE ACADEMIC COURSE OUTLINE. CISY 105 Foundations of Computer Science
I. Basic Course Information RARITAN VALLEY COMMUNITY COLLEGE ACADEMIC COURSE OUTLINE CISY 105 Foundations of Computer Science A. Course Number and Title: CISY-105, Foundations of Computer Science B. New
Gadget: A Tool for Extracting the Dynamic Structure of Java Programs
Gadget: A Tool for Extracting the Dynamic Structure of Java Programs Juan Gargiulo and Spiros Mancoridis Department of Mathematics & Computer Science Drexel University Philadelphia, PA, USA e-mail: gjgargiu,smancori
Objects for lexical analysis
Rochester Institute of Technology RIT Scholar Works Articles 2002 Objects for lexical analysis Bernd Kuhl Axel-Tobias Schreiner Follow this and additional works at: http://scholarworks.rit.edu/article
Chapter 12 Programming Concepts and Languages
Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Paradigm Publishing, Inc. 12-1 Presentation Overview Programming Concepts Problem-Solving Techniques The Evolution
CEC225 COURSE COMPACT
CEC225 COURSE COMPACT Course GEC 225 Applied Computer Programming II(2 Units) Compulsory Course Duration Two hours per week for 15 weeks (30 hours) Lecturer Data Name of the lecturer: Dr. Oyelami Olufemi
Lecture 7 Notes: Object-Oriented Programming (OOP) and Inheritance
Introduction to C++ January 19, 2011 Massachusetts Institute of Technology 6.096 Lecture 7 Notes: Object-Oriented Programming (OOP) and Inheritance We ve already seen how to define composite datatypes
The Application of Visual Basic Computer Programming Language to Simulate Numerical Iterations
Leonardo Journal of Sciences ISSN 1583-0233 Issue 9, July-December 2006 p. 125-136 The Application of Visual Basic Computer Programming Language to Simulate Numerical Iterations Department of Mechanical
An Internet Course in Software Development with C++ for Engineering Students
An Internet Course in Software Development with C++ for Engineering Students Yosef Gavriel, Robert Broadwater Department of Electrical and Computer Engineering Virginia Tech Session 3232 Abstract This
Monfort College of Business Semester Course Syllabus (2015-2016)
Monfort College of Business Semester Course Syllabus (2015-2016) COURSE PREFIX/TITLE: BACS 387 Object Oriented System Development Sem. Hrs. 3 Ed. Cap: 40 CATALOG DESCRIPTION: Prerequisites: BACS 287. Business
Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.
Handout 1 CS603 Object-Oriented Programming Fall 15 Page 1 of 11 Handout 1 Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner. Java
The Separation of Interface and Implementation in C++
From Proceedings of the Third USENIX C++ conference The Separation of Interface and Implementation in C++ Bruce Martin Hewlett-Packard Laboratories 1501 Page Mill Road Palo Alto, California 94304 [email protected]
KITES TECHNOLOGY COURSE MODULE (C, C++, DS)
KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php [email protected] [email protected] Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL
Evaluating a new programming language
In G. Kadoda (Ed). Proc. PPIG 13 Pages 275-289 Evaluating a new programming language Steven Clarke Microsoft Corporation 1 Microsoft Way Redmond, WA 98052 USA +1 425 705 5978 [email protected] Keywords:
Software Service Engineering Architect s Dream or Developer s Nightmare?
Software Service Engineering Architect s Dream or Developer s Nightmare? Gregor Hohpe Google, 1600 Amphitheatre Parkway, Mountain View, CA 94043 [email protected] Abstract. Architectural principles such
CSC 272 - Software II: Principles of Programming Languages
CSC 272 - Software II: Principles of Programming Languages Lecture 1 - An Introduction What is a Programming Language? A programming language is a notational system for describing computation in machine-readable
CS 106 Introduction to Computer Science I
CS 106 Introduction to Computer Science I 01 / 21 / 2014 Instructor: Michael Eckmann Today s Topics Introduction Homework assignment Review the syllabus Review the policies on academic dishonesty and improper
CHAPTER 6: TECHNOLOGY
Chapter 6: Technology CHAPTER 6: TECHNOLOGY Objectives Introduction The objectives are: Review the system architecture of Microsoft Dynamics AX 2012. Describe the options for making development changes
Java (12 Weeks) Introduction to Java Programming Language
Java (12 Weeks) Topic Lecture No. Introduction to Java Programming Language 1 An Introduction to Java o Java as a Programming Platform, The Java "White Paper" Buzzwords, Java and the Internet, A Short
Management Information Systems 260 Web Programming Fall 2006 (CRN: 42459)
Management Information Systems 260 Web Programming Fall 2006 (CRN: 42459) Class Time: 6:00 8:05 p.m. (T,Th) Venue: WSL 5 Web Site: www.pbvusd.net/mis260 Instructor Name: Terrell Tucker Office: BDC 127
An Easier Way for Cross-Platform Data Acquisition Application Development
An Easier Way for Cross-Platform Data Acquisition Application Development For industrial automation and measurement system developers, software technology continues making rapid progress. Software engineers
Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007
Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007 The Java Type System By now, you have seen a fair amount of Java. Time to study in more depth the foundations of the language,
C++ INTERVIEW QUESTIONS
C++ INTERVIEW QUESTIONS http://www.tutorialspoint.com/cplusplus/cpp_interview_questions.htm Copyright tutorialspoint.com Dear readers, these C++ Interview Questions have been designed specially to get
CSC230 Getting Starting in C. Tyler Bletsch
CSC230 Getting Starting in C Tyler Bletsch What is C? The language of UNIX Procedural language (no classes) Low-level access to memory Easy to map to machine language Not much run-time stuff needed Surprisingly
Designing Real-Time and Embedded Systems with the COMET/UML method
By Hassan Gomaa, Department of Information and Software Engineering, George Mason University. Designing Real-Time and Embedded Systems with the COMET/UML method Most object-oriented analysis and design
Introduction to Object-Oriented Programming
Introduction to Object-Oriented Programming Objects and classes Abstract Data Types (ADT) Encapsulation and information hiding Aggregation Inheritance and polymorphism OOP: Introduction 1 Pure Object-Oriented
language 1 (source) compiler language 2 (target) Figure 1: Compiling a program
CS 2112 Lecture 27 Interpreters, compilers, and the Java Virtual Machine 1 May 2012 Lecturer: Andrew Myers 1 Interpreters vs. compilers There are two strategies for obtaining runnable code from a program
Habanero Extreme Scale Software Research Project
Habanero Extreme Scale Software Research Project Comp215: Java Method Dispatch Zoran Budimlić (Rice University) Always remember that you are absolutely unique. Just like everyone else. - Margaret Mead
Compiling Object Oriented Languages. What is an Object-Oriented Programming Language? Implementation: Dynamic Binding
Compiling Object Oriented Languages What is an Object-Oriented Programming Language? Last time Dynamic compilation Today Introduction to compiling object oriented languages What are the issues? Objects
A Thread Monitoring System for Multithreaded Java Programs
A Thread Monitoring System for Multithreaded Java Programs Sewon Moon and Byeong-Mo Chang Department of Computer Science Sookmyung Women s University, Seoul 140-742, Korea [email protected], [email protected]
History OOP languages Year Language 1967 Simula-67 1983 Smalltalk
History OOP languages Intro 1 Year Language reported dates vary for some languages... design Vs delievered 1957 Fortran High level programming language 1958 Lisp 1959 Cobol 1960 Algol Structured Programming
Object Oriented Database Management System for Decision Support System.
International Refereed Journal of Engineering and Science (IRJES) ISSN (Online) 2319-183X, (Print) 2319-1821 Volume 3, Issue 6 (June 2014), PP.55-59 Object Oriented Database Management System for Decision
A deeper look at Inline functions
A deeper look at Inline functions I think it s safe to say that all Overload readers know what C++ inline functions are. When we declare a function or member function as inline we are trying to avoid the
Chapter 8 Approaches to System Development
Systems Analysis and Design in a Changing World, sixth edition 8-1 Chapter 8 Approaches to System Development Table of Contents Chapter Overview Learning Objectives Notes on Opening Case and EOC Cases
Software Engineering Techniques
Software Engineering Techniques Low level design issues for programming-in-the-large. Software Quality Design by contract Pre- and post conditions Class invariants Ten do Ten do nots Another type of summary
Konzepte objektorientierter Programmierung
Konzepte objektorientierter Programmierung Prof. Dr. Peter Müller Werner Dietl Software Component Technology Exercises 3: Some More OO Languages Wintersemester 04/05 Agenda for Today 2 Homework Finish
programming languages, programming language standards and compiler validation
Software Quality Issues when choosing a Programming Language C.J.Burgess Department of Computer Science, University of Bristol, Bristol, BS8 1TR, England Abstract For high quality software, an important
Java: Learning to Program with Robots. Chapter 11: Building Quality Software
Java: Learning to Program with Robots Chapter 11: Building Quality Software Chapter Objectives After studying this chapter, you should be able to: Identify characteristics of quality software, both from
CSE 307: Principles of Programming Languages
Course Organization Introduction CSE 307: Principles of Programming Languages Spring 2015 R. Sekar Course Organization Introduction 1 / 34 Topics 1. Course Organization Info and Support Course Description
SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems
SOFT 437 Software Performance Analysis Ch 5:Web Applications and Other Distributed Systems Outline Overview of Web applications, distributed object technologies, and the important considerations for SPE
SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q. Exam Code: S90-03A. Exam Name: SOA Design & Architecture
SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q Number: S90-03A Passing Score: 800 Time Limit: 120 min File Version: 14.5 http://www.gratisexam.com/ Exam Code: S90-03A Exam Name:
Announcements FORTRAN ALGOL COBOL. Simula & Smalltalk. Programming Languages
Announcements Programming Languages! Monday evening GBA section has been shut down " If you were assigned to this section, please find a different section " If you cannot attend a different section, please
Course Title: Software Development
Course Title: Software Development Unit: Customer Service Content Standard(s) and Depth of 1. Analyze customer software needs and system requirements to design an information technology-based project plan.
Component Based Software Engineering: A Broad Based Model is Needed
Component Based Software Engineering: A Broad Based Model is Needed Allen Parrish ([email protected]) Brandon Dixon ([email protected]) David Hale ([email protected]) Department of Computer Science
a. Inheritance b. Abstraction 1. Explain the following OOPS concepts with an example
1. Explain the following OOPS concepts with an example a. Inheritance It is the ability to create new classes that contain all the methods and properties of a parent class and additional methods and properties.
CS193j, Stanford Handout #10 OOP 3
CS193j, Stanford Handout #10 Summer, 2003 Manu Kumar OOP 3 Abstract Superclass Factor Common Code Up Several related classes with overlapping code Factor common code up into a common superclass Examples
6.088 Intro to C/C++ Day 4: Object-oriented programming in C++ Eunsuk Kang and Jean Yang
6.088 Intro to C/C++ Day 4: Object-oriented programming in C++ Eunsuk Kang and Jean Yang Today s topics Why objects? Object-oriented programming (OOP) in C++ classes fields & methods objects representation
CSCI 3136 Principles of Programming Languages
CSCI 3136 Principles of Programming Languages Faculty of Computer Science Dalhousie University Winter 2013 CSCI 3136 Principles of Programming Languages Faculty of Computer Science Dalhousie University
Patterns in. Lecture 2 GoF Design Patterns Creational. Sharif University of Technology. Department of Computer Engineering
Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 2 GoF Design Patterns Creational 1 GoF Design Patterns Principles Emphasis on flexibility and reuse through decoupling of classes. The underlying
UML FOR OBJECTIVE-C. Excel Software www.excelsoftware.com
UML FOR OBJECTIVE-C Excel Software www.excelsoftware.com Objective-C is a popular programming language for Mac OS X computers. The Unified Modeling Language (UML) is the industry standard notation for
Glossary of Object Oriented Terms
Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction
ABSTRACT. Keywords Virtual Reality, Java, JavaBeans, C++, CORBA 1. INTRODUCTION
Tweek: Merging 2D and 3D Interaction in Immersive Environments Patrick L Hartling, Allen D Bierbaum, Carolina Cruz-Neira Virtual Reality Applications Center, 2274 Howe Hall Room 1620, Iowa State University
Java CPD (I) Frans Coenen Department of Computer Science
Java CPD (I) Frans Coenen Department of Computer Science Content Session 1, 12:45-14:30 (First Java Programme, Inheritance, Arithmetic) Session 2, 14:45-16:45 (Input and Programme Constructs) Materials
Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective
Orit Hazzan's Column Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective This column is coauthored with Jeff Kramer, Department of Computing, Imperial College, London ABSTRACT
1/20/2016 INTRODUCTION
INTRODUCTION 1 Programming languages have common concepts that are seen in all languages This course will discuss and illustrate these common concepts: Syntax Names Types Semantics Memory Management We
Programming Languages
Programming Languages Qing Yi Course web site: www.cs.utsa.edu/~qingyi/cs3723 cs3723 1 A little about myself Qing Yi Ph.D. Rice University, USA. Assistant Professor, Department of Computer Science Office:
The Java Series. Java Essentials I What is Java? Basic Language Constructs. Java Essentials I. What is Java?. Basic Language Constructs Slide 1
The Java Series Java Essentials I What is Java? Basic Language Constructs Slide 1 What is Java? A general purpose Object Oriented programming language. Created by Sun Microsystems. It s a general purpose
AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping
AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping 3.1.1 Constants, variables and data types Understand what is mean by terms data and information Be able to describe the difference
Efficiency Considerations of PERL and Python in Distributed Processing
Efficiency Considerations of PERL and Python in Distributed Processing Roger Eggen (presenter) Computer and Information Sciences University of North Florida Jacksonville, FL 32224 [email protected] 904.620.1326
Class 16: Function Parameters and Polymorphism
Class 16: Function Parameters and Polymorphism SI 413 - Programming Languages and Implementation Dr. Daniel S. Roche United States Naval Academy Fall 2011 Roche (USNA) SI413 - Class 16 Fall 2011 1 / 15
PROBLEM SOLVING SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON
PROBLEM SOLVING WITH SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON Addison Wesley Boston San Francisco New York London
Definitions. Software Metrics. Why Measure Software? Example Metrics. Software Engineering. Determine quality of the current product or process
Definitions Software Metrics Software Engineering Measure - quantitative indication of extent, amount, dimension, capacity, or size of some attribute of a product or process. Number of errors Metric -
Lecture 9. Semantic Analysis Scoping and Symbol Table
Lecture 9. Semantic Analysis Scoping and Symbol Table Wei Le 2015.10 Outline Semantic analysis Scoping The Role of Symbol Table Implementing a Symbol Table Semantic Analysis Parser builds abstract syntax
McGraw-Hill The McGraw-Hill Companies, Inc., 20 1. 01 0
1.1 McGraw-Hill The McGraw-Hill Companies, Inc., 2000 Objectives: To describe the evolution of programming languages from machine language to high-level languages. To understand how a program in a high-level
Access Tutorial 8: Combo Box Controls
Access Tutorial 8: Combo Box Controls 8.1 Introduction: What is a combo box? So far, the only kind of control you have used on your forms has been the text box. However, Access provides other controls
SOFTWARE ESTIMATING RULES OF THUMB. Version 1 - April 6, 1997 Version 2 June 13, 2003 Version 3 March 20, 2007
SOFTWARE ESTIMATING RULES OF THUMB Version 1 - April 6, 1997 Version 2 June 13, 2003 Version 3 March 20, 2007 Abstract Accurate software estimating is too difficult for simple rules of thumb. Yet in spite
THE OPEN UNIVERSITY OF TANZANIA
THE OPEN UNIVERSITY OF TANZANIA FACULTY OF SCIENCE, TECHNOLOGY AND ENVIRONMENTAL STUDIES ODM 103: INTRODUCTION TO COMPUTER PROGRAMMING LANGUAGES Said Ally i ODM 103 INTRODUCTION TO COMPUTER PROGRAMMING
Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages. Corky Cartwright Swarat Chaudhuri November 30, 20111
Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages Corky Cartwright Swarat Chaudhuri November 30, 20111 Overview I In OO languages, data values (except for designated non-oo
