Dynamically Linked Libraries DLL. Juha JärvensivuJ
|
|
- Phyllis Bridges
- 6 years ago
- Views:
Transcription
1 Dynamically Linked Libraries DLL Juha JärvensivuJ
2 Content and goals Overview Implementation techniques Plugins Managing memory consumption Using DLLs Mobile Java implementation Symbian OS implementation DLL structure ECOM Summary
3 Motivation Several applications use the same code; ; no need to link it with all applications Application-specific tailoring in cases where similar functions are needed (plugins) Smaller compilations and deliveries; smaller upgrades Flexible composition Enables focused testing Scoping of system management (smallest( unit addressed in e.g. build or release management) Work allocation
4 Dynamically linked libraries Before loading After loading Single application file Multiple files that are loaded dynamically
5 Release Definition with DLLs Defines what files and auxiliaries are needed for performing compilation and installation for a complete system Several levels of release definitions Device Platform Application Enables decomposition of the system into different subsystems
6 Required Implementation Dynamic loading unloading Facilities Copy in processes own memory vs. in- place execution Data must be instantiated in any case Restrictions All code should not be active all the time; memory related problems
7 Static and Dynamic DLLs Static DLL (Commonly) Instantiated at application startup Resides in the memory until the application terminates Dynamic DLL (plugin) Loaded and unloaded whenever needed E.g. different plugin for different messaging types ( /sms/mms)
8 Challenges Fragmentation of the system into an unmanageable collection of DLLs Versioning Managing dependencies between libraries Application-specific DLLs Interface compatibility when market requirements force to change hardware characteristics Platform continuity by freezing the interface for some period of time
9 Content and goals Overview Implementation techniques Plugins Managing memory consumption Using DLLs Mobile Java implementation Symbian OS implementation DLL structure ECOM Summary
10 Implementing DLLs DLL Code External interface Code Code
11 Option 1: Off-set based linking APP DLL (support for plugins) Code LIB Ordinal Code Code
12 Option 2 Signature based linking DLL methodx() methody(int i, j) methodz(string myname) External interface Code Code Code
13 Comparison Offset based linking is more efficient (no need to look for the method) more error-prone (what happens when somebody adds a new method?) Signature based linking is more natural (one can call methods from different libraries with ease) more memory hungry (signatures must be saved somewhere)
14 Content and goals Overview Implementation techniques Plugins Managing DLL memory consumption Using DLLs Mobile Java implementation Symbian OS implementation DLL structure ECOM Summary
15 Plugin Principle No plugins loaded Plugin P2 loaded Plugin P2 unloaded and P1 loaded P1 Application Plugin interface P2 P3 Plugin implementations Application P2 P1 P3 Plugin implementations Application P1 P2 P3 Plugin implementations
16 Abstract Factory as Implementation mechanism Client <<interface>> AbsFactory <<interface>> AbsDLLA operax operay <<interface>> AbsDLLB operbx operby CreateProductA CreateProductB ConcDLLA1 ConcDLLA2 ConcDLLB1 ConcDLLB2 ConcFactory1 CreateDLLA CreateDLLB ConcFactory2 CreateDLLA CreateDLLB
17 Infrastructure and implementation level concerns Loading and unloading framework Resolution (searching and selecting the right plugin) Policy for registering and removing of plugins to enable dynamic creation of new (or( improved) features Who should be able to do this? Compatibility issues Plugin use can also introduce side-effects effects E.g. Response to a message
18 Content and goals Overview Implementation techniques Plugins Managing DLL memory consumption Using DLLs Mobile Java implementation Symbian OS implementation DLL structure ECOM Summary
19 Principles 1. Use the simplest structure needed! 2. Make all DLLs (and DLL developers) responsible for the memory they allocate Needed for realistically defining a release in any case 3. When in doubt, consider what will eventually happen at the level of implementation
20 Interface design Select the right operation granularity Allow client to control transmissions Minimize the amount of data to be transmitted Especially important if thread/process interfaces are to be crossed Select the best way to transmit data (Lend, Borrow, Steal)
21 Lend Borrow Steal Client Get(d) Provider Client Get():d Rel(d) Provider Client Get():d Provider Set(d = 1) Set(d = 1) new(1) delete d:data d:data d:data Lend Borrow Steal
22 Merging Elements Merging packages and DLLs Reduces overhead of referring to the methods of the packages/dlls Flattening hierarchies Reduces the number of identifiers, reduces the number of virtual function tables Embedding objects Alters the layout of the data structure
23 Example: Embedded Pointers next object ref next object object next object ref next object object next object ref object next object
24 Content and goals Overview Implementation techniques Plugins Managing DLL memory consumption Using DLLs Mobile Java implementation Symbian OS implementation DLL structure ECOM Summary
25 Rules of Thumb for DLL Creation Shareable component Variation or management point Several different implementations (or alternatives) Test process requirements Testing needs a concrete subject Automated testing with binary deliveries End product of an organizational unit Release management can be eased if compilations are not to be managed as a part of it Black-box subcontracting
26 Content and goals Overview Implementation techniques Plugins Managing DLL memory consumption Using DLLs Mobile Java implementation Symbian OS implementation DLL structure ECOM Summary
27 Mobile Java and DLLs All class files can be considered as more or less similar to DLLs Linking is a built-in in feature at class level Performed automatically for a complete class -> Smaller classes have certain advantages Class memory overhead -> Larger classes have certain advantages No support for plugins due to CLDC restrictions
28 Average Class File Content (CLDC library classes) Metadata 45.4% (about half is debug info) Strings 34.8% Bytecode 19.1% Class field data 0.4% Instance field data 0.4%
29 Library Considerations Prelinking of most commonly used standard libraries Only interface must be visible Internals can be implemented as e.g.. a part of the virtual machine Uses more memory, but linking/loading loading becomes easier
30 Content and goals Overview Implementation techniques Plugins Managing DLL memory consumption Using DLLs Mobile Java implementation Symbian OS implementation DLL structure ECOM Summary
31 Offset-based linking APP DLL (support for plugins) Code LIB Ordinal Code Code
32 Expressed in Code with Macros (IMPORT_C, EXPORT_C) EXPORT_C CQAEng * CQAEng::NewL() class CQAEng : public CBase { { CQAEng* * self = public: new (ELeave( ELeave) CQAEng; IMPORT_C static CQAEng* NewL(); CleanupStack::PushL(self);... self->constructl ConstructL(); protected: CleanupStack::Pop(); CQAEng(); return self;... } }; CQAEng::CQAEng() { iquestion = 0; ianswer = 0; iused = EFalse; }
33 Expressed in Code with Macros (IMPORT_C, EXPORT_C) EXPORT_C CQAEng * CQAEng::NewL() class CQAEng : public CBase { { CQAEng* * self = public: new (ELeave( ELeave) CQAEng; IMPORT_C static CQAEng* NewL(); CleanupStack::PushL(self);... self->constructl ConstructL(); protected: CleanupStack::Pop(); CQAEng(); return self;... } }; CQAEng::CQAEng() { iquestion = 0; ianswer = 0; iused = EFalse; }
34 Managing Binary Compatibility Absolute Do not change the size of a class object Do not remove anything accessible Do not rearrange accessible class member data Do not rearrange the ordinal of exported functions Do no re-order virtual functions Do not modify documented semantics of API Do not remove const Do not change from pass by value to pass by reference, or vice versa Future-proof Do not inline functions Do not expose public or protected member data Allow object initialization to leave Override virtual functions that are expected to be overridden in the future Provide spare member data
35 Programmer Options API extensions Private internals of a class can be modified Access specification can be relaxed Pointers can be substituted with references and vice versa Names of exported non-virtual functions can be modified Input can be widened and output can be narrowed Specifier const can be applied
36 Content and goals Overview Implementation techniques Plugins Managing DLL memory consumption Using DLLs Mobile Java implementation Symbian OS implementation DLL structure ECOM Summary
37 ECOM Framework Symbian OS implementation for plugin components From version 8.0
38 ECOM Framework Interface client NewL Interface (CCryptoIF) REComSession::CreateImplementationL Implements ECOM Framework Implementation (CCryptoSW) Implementation (CCryptoSW) Resolves and instantiates
39 ECOM Interface Requirements Abstract class with a set of one or more pure virtual functions Provides one or more factory functions to allow the client to instantiate an interface implementation object Provides means for clients to release it (e.g. destructor,, Release, Close,,...) TUid data member, which is used internally to identify an implementation instance for cleanup purposes
40 Content and goals Overview Implementation techniques Plugins Managing DLL memory consumption Using DLLs Mobile Java implementation Symbian OS implementation DLL structure ECOM Summary
41 Summary Dynamically linked libraries offer a way to save memory,, as code can be shared by several units It is also possible to use DLLs to management purposes (e.g.. release definition and management) Linking can be based on e.g. method signatures (Java) or offset (Symbian( OS) Plugins are special DLLs that can be dynamically loaded and unloaded Common interface Implementation for the interface Framework for loading the interface
4. Dynamic Linking. Summary. DLL structure ECOM
4. Dynamic Linking Overview Implementation techniques Plugins Managing memory consumption Using DLLs Mobile Java implementation Symbian OS implementation DLL structure ECOM Summary 1 Motivation Several
More informationMemory Management.
Memory Management juha.jarvensivu@tut.fi Content and goals Basics of memory usage in mobile devices Static and dynamic allocation Managing memory organization Memory management in Mobile Java Memory management
More information2. Memory Management
2. Memory Management Basics of memory usage in mobile devices Static and dynamic allocation Managing memory organization Memory management in Symbian OS Memory management in Mobile Java Summary 1 Rationale
More information2. Memory Management. Rationale. Memory. Program and Stack. Example. Activation. Dynamic allocation. devices
2. Memory Management Rationale Memory usage is a tangling concern in mobile devices All programs use memory In order to reduce costs, only limited amount of memory available in mobile devices Also power
More informationEliminating Memory Leaks in Symbian OS C++ Projects
Eliminating Memory Leaks in Symbian OS C++ Projects John Pagonis, Symbian Developer Network, January 2005 In Symbian OS, the programming framework, in debug mode, makes sure memory allocations are tracked
More informationCS201 - Introduction to Programming Glossary By
CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with
More information7. Concurrency. Motivation Infrastructure Faking concurrency Mobile Java implementation Symbian OS implementation. Maemo implementation Summary
7. Concurrency Motivation Infrastructure Faking concurrency Mobile Java implementation Symbian OS implementation Threads Active objects Maemo implementation Summary 1 Motivation Mobile devices are fundamentally
More informationShort Notes of CS201
#includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system
More informationExpert C++/CLI:.NET for Visual C++ Programmers
Expert C++/CLI:.NET for Visual C++ Programmers Marcus Heege Contents About the Author About the Technical Reviewer Acknowledgments xiii xv xvii CHAPTER 1 Why C++/CLI? 1 Extending C++ with.net Features
More informationCPS 506 Comparative Programming Languages. Programming Language
CPS 506 Comparative Programming Languages Object-Oriented Oriented Programming Language Paradigm Introduction Topics Object-Oriented Programming Design Issues for Object-Oriented Oriented Languages Support
More informationOPERATING SYSTEM. Chapter 4: Threads
OPERATING SYSTEM Chapter 4: Threads Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues Operating System Examples Objectives To
More informationPlugin Architectures. Customizable application with plugin architecture
Plugin Architectures Customizable application with plugin architecture What is a plugin? From Wikipedia: In computing, a plug-in (also called plugin, addin, add-in, addon, addon, snap-in or snapin, but
More informationObject oriented programming. Encapsulation. Polymorphism. Inheritance OOP
OOP Object oriented programming Polymorphism Encapsulation Inheritance OOP Class concepts Classes can contain: Constants Delegates Events Fields Constructors Destructors Properties Methods Nested classes
More informationChapter 4: Threads. Operating System Concepts 9 th Edition
Chapter 4: Threads Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues Operating System Examples
More informationThe goal of the Pangaea project, as we stated it in the introduction, was to show that
Chapter 5 Conclusions This chapter serves two purposes. We will summarize and critically evaluate the achievements of the Pangaea project in section 5.1. Based on this, we will then open up our perspective
More informationChapter 4: Threads. Operating System Concepts 9 th Edition
Chapter 4: Threads Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues Operating System Examples
More informationLearning Objectives. C++ For Artists 2003 Rick Miller All Rights Reserved xli
Identify and overcome the difficulties encountered by students when learning how to program List and explain the software development roles played by students List and explain the phases of the tight spiral
More informationUNIT V *********************************************************************************************
Syllabus: 1 UNIT V 5. Package Diagram, Component Diagram, Deployment Diagram (08 Hrs, 16 Marks) Package Diagram: a. Terms and Concepts Names, Owned Elements, Visibility, Importing and Exporting b. Common
More informationC++ Programming: Polymorphism
C++ Programming: Polymorphism 2018 년도 2 학기 Instructor: Young-guk Ha Dept. of Computer Science & Engineering Contents Run-time binding in C++ Abstract base classes Run-time type identification 2 Function
More informationOperating Systems 2 nd semester 2016/2017. Chapter 4: Threads
Operating Systems 2 nd semester 2016/2017 Chapter 4: Threads Mohamed B. Abubaker Palestine Technical College Deir El-Balah Note: Adapted from the resources of textbox Operating System Concepts, 9 th edition
More informationThe basic operations defined on a symbol table include: free to remove all entries and free the storage of a symbol table
SYMBOL TABLE: A symbol table is a data structure used by a language translator such as a compiler or interpreter, where each identifier in a program's source code is associated with information relating
More informationCSE 504: Compiler Design. Runtime Environments
Runtime Environments Pradipta De pradipta.de@sunykorea.ac.kr Current Topic Procedure Abstractions Mechanisms to manage procedures and procedure calls from compiler s perspective Runtime Environment Choices
More informationC++ (Non for C Programmer) (BT307) 40 Hours
C++ (Non for C Programmer) (BT307) 40 Hours Overview C++ is undoubtedly one of the most widely used programming language for implementing object-oriented systems. The C++ language is based on the popular
More informationCS250 Intro to CS II. Spring CS250 - Intro to CS II 1
CS250 Intro to CS II Spring 2017 CS250 - Intro to CS II 1 Topics Virtual Functions Pure Virtual Functions Abstract Classes Concrete Classes Binding Time, Static Binding, Dynamic Binding Overriding vs Redefining
More informationOBJECT ORIENTED PROGRAMMING USING C++ CSCI Object Oriented Analysis and Design By Manali Torpe
OBJECT ORIENTED PROGRAMMING USING C++ CSCI 5448- Object Oriented Analysis and Design By Manali Torpe Fundamentals of OOP Class Object Encapsulation Abstraction Inheritance Polymorphism Reusability C++
More informationPatterns for polymorphic operations
Patterns for polymorphic operations Three small object structural patterns for dealing with polymorphism Alexander A. Horoshilov hor@epsylontech.com Abstract Polymorphism is one of the main elements of
More informationBinding and Storage. COMP 524: Programming Language Concepts Björn B. Brandenburg. The University of North Carolina at Chapel Hill
Binding and Storage Björn B. Brandenburg The University of North Carolina at Chapel Hill Based in part on slides and notes by S. Olivier, A. Block, N. Fisher, F. Hernandez-Campos, and D. Stotts. What s
More information12: Memory Management
12: Memory Management Mark Handley Address Binding Program goes through multiple steps from compilation to execution. At some stage, addresses in the program must be bound to physical memory addresses:
More informationC++ for System Developers with Design Pattern
C++ for System Developers with Design Pattern Introduction: This course introduces the C++ language for use on real time and embedded applications. The first part of the course focuses on the language
More informationChapter 4: Threads. Chapter 4: Threads
Chapter 4: Threads Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues Operating System Examples
More informationEI 338: Computer Systems Engineering (Operating Systems & Computer Architecture)
EI 338: Computer Systems Engineering (Operating Systems & Computer Architecture) Dept. of Computer Science & Engineering Chentao Wu wuct@cs.sjtu.edu.cn Download lectures ftp://public.sjtu.edu.cn User:
More informationC++\CLI. Jim Fawcett CSE687-OnLine Object Oriented Design Summer 2017
C++\CLI Jim Fawcett CSE687-OnLine Object Oriented Design Summer 2017 Comparison of Object Models Standard C++ Object Model All objects share a rich memory model: Static, stack, and heap Rich object life-time
More informationWhat are the characteristics of Object Oriented programming language?
What are the various elements of OOP? Following are the various elements of OOP:- Class:- A class is a collection of data and the various operations that can be performed on that data. Object- This is
More informationLanguage Translation. Compilation vs. interpretation. Compilation diagram. Step 1: compile. Step 2: run. compiler. Compiled program. program.
Language Translation Compilation vs. interpretation Compilation diagram Step 1: compile program compiler Compiled program Step 2: run input Compiled program output Language Translation compilation is translation
More informationwith TestComplete 12 Desktop, Web, and Mobile Testing Tutorials
with TestComplete 12 Desktop, Web, and Mobile Testing Tutorials 2 About the Tutorial With TestComplete, you can test applications of three major types: desktop, web and mobile: Desktop applications - these
More informationQUIZ on Ch.5. Why is it sometimes not a good idea to place the private part of the interface in a header file?
QUIZ on Ch.5 Why is it sometimes not a good idea to place the private part of the interface in a header file? Example projects where we don t want the implementation visible to the client programmer: The
More informationCompiling Java For High Performance on Servers
Compiling Java For High Performance on Servers Ken Kennedy Center for Research on Parallel Computation Rice University Goal: Achieve high performance without sacrificing language compatibility and portability.
More informationProgramming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur
Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 43 Dynamic Binding (Polymorphism): Part III Welcome to Module
More informationData Abstraction. Hwansoo Han
Data Abstraction Hwansoo Han Data Abstraction Data abstraction s roots can be found in Simula67 An abstract data type (ADT) is defined In terms of the operations that it supports (i.e., that can be performed
More informationInheritance (Chapter 7)
Inheritance (Chapter 7) Prof. Dr. Wolfgang Pree Department of Computer Science University of Salzburg cs.uni-salzburg.at Inheritance the soup of the day?! Inheritance combines three aspects: inheritance
More information<Insert Picture Here> Symmetric multilanguage VM architecture: Running Java and JavaScript in Shared Environment on a Mobile Phone
Symmetric multilanguage VM architecture: Running Java and JavaScript in Shared Environment on a Mobile Phone Oleg Pliss Pavel Petroshenko Agenda Introduction to Monty JVM Motivation
More informationAnd Even More and More C++ Fundamentals of Computer Science
And Even More and More C++ Fundamentals of Computer Science Outline C++ Classes Special Members Friendship Classes are an expanded version of data structures (structs) Like structs, the hold data members
More informationRole of OS in virtual memory management
Role of OS in virtual memory management Role of OS memory management Design of memory-management portion of OS depends on 3 fundamental areas of choice Whether to use virtual memory or not Whether to use
More informationC++ Inheritance and Encapsulation
C++ Inheritance and Encapsulation Private and Protected members Inheritance Type Public Inheritance Private Inheritance Protected Inheritance Special method inheritance 1 Private Members Private members
More informationCertified Core Java Developer VS-1036
VS-1036 1. LANGUAGE FUNDAMENTALS The Java language's programming paradigm is implementation and improvement of Object Oriented Programming (OOP) concepts. The Java language has its own rules, syntax, structure
More informationObjectives and Functions Convenience. William Stallings Computer Organization and Architecture 7 th Edition. Efficiency
William Stallings Computer Organization and Architecture 7 th Edition Chapter 8 Operating System Support Objectives and Functions Convenience Making the computer easier to use Efficiency Allowing better
More informationEffective Web Dynpro - Adaptive RFC Models
Effective Web Dynpro - Adaptive RFC Models Bertram Ganz, NWF Web Dynpro Foundation for Java Overview In many Web Dynpro applications, backend access is based on RFC modules in SAP systems. The Web Dynpro
More informationSingleton, Factory Method, Abstract Factory, Named Constructor. Using one or more base classes to hide details from the client
Idioms & Design Patterns Creational Introduction to Design Patterns Patterns and idioms can be grouped roughly into: Creational Patterns and idioms Singleton, Factory Method, Abstract Factory, Named Constructor
More informationOperating System Support
Operating System Support Objectives and Functions Convenience Making the computer easier to use Efficiency Allowing better use of computer resources Layers and Views of a Computer System Operating System
More informationChapter 10 Classes Continued. Fundamentals of Java
Chapter 10 Classes Continued Objectives Know when it is appropriate to include class (static) variables and methods in a class. Understand the role of Java interfaces in a software system and define an
More informationa process may be swapped in and out of main memory such that it occupies different regions
Virtual Memory Characteristics of Paging and Segmentation A process may be broken up into pieces (pages or segments) that do not need to be located contiguously in main memory Memory references are dynamically
More informationSERIOUS ABOUT SOFTWARE. Qt Core features. Timo Strömmer, May 26,
SERIOUS ABOUT SOFTWARE Qt Core features Timo Strömmer, May 26, 2010 1 Contents C++ refresher Core features Object model Signals & slots Event loop Shared data Strings Containers Private implementation
More informationChapter 9 Real Memory Organization and Management
Chapter 9 Real Memory Organization and Management Outline 9.1 Introduction 9.2 Memory Organization 9.3 Memory Management 9.4 Memory Hierarchy 9.5 Memory Management Strategies 9.6 Contiguous vs. Noncontiguous
More informationChapter 9 Real Memory Organization and Management
Chapter 9 Real Memory Organization and Management Outline 9.1 Introduction 9.2 Memory Organization 9.3 Memory Management 9.4 Memory Hierarchy 9.5 Memory Management Strategies 9.6 Contiguous vs. Noncontiguous
More informationRenderMonkey SDK Version 1.71
RenderMonkey SDK Version 1.71 OVERVIEW... 3 RENDERMONKEY PLUG-IN ARCHITECTURE PHILOSOPHY... 3 IMPORTANT CHANGES WHEN PORTING EXISTING PLUG-INS... 3 GENERAL... 4 GENERATING A RENDERMONKEY PLUG-IN FRAMEWORK...
More informationSoftware Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.
Software Design Patterns Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University J. Maletic 1 Background 1 Search for recurring successful designs emergent designs from practice
More informationCompile: compiler. Load: loader. compiler linker loader memory. source object load code module module 2
Part III Storage Management Chapter 8: Memory Management Fall 2010 1 Address Generation Address generation has three stages: Compile: compiler Link: linker or linkage editor Load: loader compiler linker
More informationBuilding custom components IAT351
Building custom components IAT351 Week 1 Lecture 1 9.05.2012 Lyn Bartram lyn@sfu.ca Today Review assignment issues New submission method Object oriented design How to extend Java and how to scope Final
More informationIntroduction to Java Programming
Introduction to Java Programming Lecture 1 CGS 3416 Spring 2017 1/9/2017 Main Components of a computer CPU - Central Processing Unit: The brain of the computer ISA - Instruction Set Architecture: the specific
More informationMEMORY MANAGEMENT. Jo, Heeseung
MEMORY MANAGEMENT Jo, Heeseung TODAY'S TOPICS Why is memory management difficult? Old memory management techniques: Fixed partitions Variable partitions Swapping Introduction to virtual memory 2 MEMORY
More informationFile Management. Marc s s first try, Please don t t sue me.
File Management Marc s s first try, Please don t t sue me. Introduction Files Long-term existence Can be temporally decoupled from applications Sharable between processes Can be structured to the task
More informationIntro to OOP Visibility/protection levels and constructors Friend, convert constructor, destructor Operator overloading a<=b a.
Intro to OOP - Object and class - The sequence to define and use a class in a program - How/when to use scope resolution operator - How/when to the dot operator - Should be able to write the prototype
More informationCOP 3330 Final Exam Review
COP 3330 Final Exam Review I. The Basics (Chapters 2, 5, 6) a. comments b. identifiers, reserved words c. white space d. compilers vs. interpreters e. syntax, semantics f. errors i. syntax ii. run-time
More informationWritten by John Bell for CS 342, Spring 2018
Advanced OO Concepts Written by John Bell for CS 342, Spring 2018 Based on chapter 3 of The Object-Oriented Thought Process by Matt Weisfeld, with additional material from other sources. Constructors Constructors
More informationQUIZ. Write the following for the class Bar: Default constructor Constructor Copy-constructor Overloaded assignment oper. Is a destructor needed?
QUIZ Write the following for the class Bar: Default constructor Constructor Copy-constructor Overloaded assignment oper. Is a destructor needed? Or Foo(x), depending on how we want the initialization
More informationMemory Management. Reading: Silberschatz chapter 9 Reading: Stallings. chapter 7 EEL 358
Memory Management Reading: Silberschatz chapter 9 Reading: Stallings chapter 7 1 Outline Background Issues in Memory Management Logical Vs Physical address, MMU Dynamic Loading Memory Partitioning Placement
More informationMemory Management. Jo, Heeseung
Memory Management Jo, Heeseung Today's Topics Why is memory management difficult? Old memory management techniques: Fixed partitions Variable partitions Swapping Introduction to virtual memory 2 Memory
More informationInheritance. Benefits of Java s Inheritance. 1. Reusability of code 2. Code Sharing 3. Consistency in using an interface. Classes
Inheritance Inheritance is the mechanism of deriving new class from old one, old class is knows as superclass and new class is known as subclass. The subclass inherits all of its instances variables and
More informationObject Oriented Programming in Java. Jaanus Pöial, PhD Tallinn, Estonia
Object Oriented Programming in Java Jaanus Pöial, PhD Tallinn, Estonia Motivation for Object Oriented Programming Decrease complexity (use layers of abstraction, interfaces, modularity,...) Reuse existing
More information2.4 Structuring programs
2.4 Structuring programs While theoretically a program could be written as one big expression, in reality we want some structure so that l The programmer has it easier to read the program l A compiler
More informationDesign Engineering. Overview
Design Engineering Overview What is software design? How to do it? Principles, concepts, and practices High-level design Low-level design N. Meng, B. Ryder 2 1 Design Engineering The process of making
More informationNews in RSA-RTE 10.0 updated for sprint Mattias Mohlin/Anders Ek, June 2016
News in RSA-RTE 10.0 updated for sprint 2016.29 Mattias Mohlin/Anders Ek, June 2016 Overview of Improvements (1/3) Now based on Eclipse Mars (4.5.2) New installation scheme RSARTE is now installed as a
More informationConcepts of Programming Languages
Concepts of Programming Languages Lecture 10 - Object-Oriented Programming Patrick Donnelly Montana State University Spring 2014 Patrick Donnelly (Montana State University) Concepts of Programming Languages
More informationMotivation was to facilitate development of systems software, especially OS development.
A History Lesson C Basics 1 Development of language by Dennis Ritchie at Bell Labs culminated in the C language in 1972. Motivation was to facilitate development of systems software, especially OS development.
More informationCPSC 427: Object-Oriented Programming
CPSC 427: Object-Oriented Programming Michael J. Fischer Lecture 11 October 3, 2018 CPSC 427, Lecture 11, October 3, 2018 1/24 Copying and Assignment Custody of Objects Move Semantics CPSC 427, Lecture
More informationOptimization Techniques
Smalltalk Implementation: Optimization Techniques Prof. Harry Porter Portland State University 1 Optimization Ideas Just-In-Time (JIT) compiling When a method is first invoked, compile it into native code.
More informationCpt S 122 Data Structures. Course Review Midterm Exam # 2
Cpt S 122 Data Structures Course Review Midterm Exam # 2 Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Midterm Exam 2 When: Monday (11/05) 12:10 pm -1pm
More informationAgenda. CSE P 501 Compilers. Java Implementation Overview. JVM Architecture. JVM Runtime Data Areas (1) JVM Data Types. CSE P 501 Su04 T-1
Agenda CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Summer 2004 Java virtual machine architecture.class files Class loading Execution engines Interpreters & JITs various strategies
More informationOOPS Viva Questions. Object is termed as an instance of a class, and it has its own state, behavior and identity.
OOPS Viva Questions 1. What is OOPS? OOPS is abbreviated as Object Oriented Programming system in which programs are considered as a collection of objects. Each object is nothing but an instance of a class.
More informationComponent Design. Systems Engineering BSc Course. Budapest University of Technology and Economics Department of Measurement and Information Systems
Component Design Systems Engineering BSc Course Budapest University of Technology and Economics Department of Measurement and Information Systems Traceability Platform-based systems design Verification
More informationLecture 03 Bits, Bytes and Data Types
Lecture 03 Bits, Bytes and Data Types Computer Languages A computer language is a language that is used to communicate with a machine. Like all languages, computer languages have syntax (form) and semantics
More informationTitle. EMANE Developer Training 0.7.1
Title EMANE Developer Training 0.7.1 1 Extendable Mobile Ad-hoc Emulator Supports emulation of simple as well as complex network architectures Supports emulation of multichannel gateways Supports model
More informationPreface... (vii) CHAPTER 1 INTRODUCTION TO COMPUTERS
Contents Preface... (vii) CHAPTER 1 INTRODUCTION TO COMPUTERS 1.1. INTRODUCTION TO COMPUTERS... 1 1.2. HISTORY OF C & C++... 3 1.3. DESIGN, DEVELOPMENT AND EXECUTION OF A PROGRAM... 3 1.4 TESTING OF PROGRAMS...
More informationCS11 Introduction to C++ Fall Lecture 7
CS11 Introduction to C++ Fall 2012-2013 Lecture 7 Computer Strategy Game n Want to write a turn-based strategy game for the computer n Need different kinds of units for the game Different capabilities,
More informationDesign Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1
What is a Design Pattern? Each pattern Describes a problem which occurs over and over again in our environment,and then describes the core of the problem Novelists, playwrights and other writers rarely
More informationCreating the C++ auto_ptr<> utility for Symbian OS
Creating the C++ auto_ptr utility for Symbian OS Sander van der Wal Revision 1.0, Aug 2002 Introduction Before becoming a Symbian OS C++ developer, Sander van der Wal worked with Pascal as a systems
More informationConcept as a Generalization of Class and Principles of the Concept-Oriented Programming
Computer Science Journal of Moldova, vol.13, no.3(39), 2005 Concept as a Generalization of Class and Principles of the Concept-Oriented Programming Alexandr Savinov Abstract In the paper we describe a
More informationASD:Suite - Code Generation 2013 Verum 1
ASD:Suite - Code Generation 2013 Verum 1 The generated ASD component in code is actually the component factory. This component factory is used to generate component instances. ASD component creation is
More informationObject Oriented Programming is a programming method that combines: Advantage of Object Oriented Programming
Overview of OOP Object Oriented Programming is a programming method that combines: a) Data b) Instructions for processing that data into a self-sufficient object that can be used within a program or in
More informationCSE P 501 Compilers. Java Implementation JVMs, JITs &c Hal Perkins Winter /11/ Hal Perkins & UW CSE V-1
CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Winter 2008 3/11/2008 2002-08 Hal Perkins & UW CSE V-1 Agenda Java virtual machine architecture.class files Class loading Execution engines
More informationCSCD01 Engineering Large Software Systems. Design Patterns. Joe Bettridge. Winter With thanks to Anya Tafliovich
CSCD01 Engineering Large Software Systems Design Patterns Joe Bettridge Winter 2018 With thanks to Anya Tafliovich Design Patterns Design patterns take the problems consistently found in software, and
More informationEND TERM EXAMINATION
END TERM EXAMINATION THIRD SEMESTER [BCA] DECEMBER 2007 Paper Code: BCA 209 Subject: Object Oriented Programming Time: 3 hours Maximum Marks: 75 Note: Attempt all questions. Internal choice is indicated.
More informationObject Oriented Design Final Exam (From 3:30 pm to 4:45 pm) Name:
Object Oriented Design Final Exam (From 3:30 pm to 4:45 pm) Name: Section 1 Multiple Choice Questions (40 pts total, 2 pts each): Q1: Employee is a base class and HourlyWorker is a derived class, with
More informationMadhya Pradesh Bhoj (Open) University, Bhopal Diploma in Computer Application (DCA) Assignment Question Paper I
Subject : - Fundamental of Computer and IT Maximum Marks : 30 1. Explain various characteristics of computer & various uses of it. 2. What is the software? Discuss the characteristics of user-friendly
More informationChapter 12. File Management
Operating System Chapter 12. File Management Lynn Choi School of Electrical Engineering Files In most applications, files are key elements For most systems except some real-time systems, files are used
More informationToday s Big Adventure
Today s Big Adventure - How to name and refer to things that don t exist yet - How to merge separate name spaces into a cohesive whole Readings - man a.out & elf on a Solaris machine - run nm or objdump
More informationG Programming Languages - Fall 2012
G22.2110-003 Programming Languages - Fall 2012 Lecture 4 Thomas Wies New York University Review Last week Control Structures Selection Loops Adding Invariants Outline Subprograms Calling Sequences Parameter
More informationToday s Big Adventure
1/34 Today s Big Adventure - How to name and refer to things that don t exist yet - How to merge separate name spaces into a cohesive whole Readings - man a.out & elf on a Solaris machine - run nm or objdump
More informationFundamentals of Programming Languages
Fundamentals of Programming Languages 1. DEFINITIONS... 2 2. BUILT-IN TYPES AND PRIMITIVE TYPES... 3 TYPE COMPATIBILITY... 9 GENERIC TYPES... 14 MONOMORPHIC VERSUS POLYMORPHIC... 16 TYPE IMPLEMENTATION
More informationFixed-Point Math and Other Optimizations
Fixed-Point Math and Other Optimizations Embedded Systems 8-1 Fixed Point Math Why and How Floating point is too slow and integers truncate the data Floating point subroutines: slower than native, overhead
More information