A Checklist for Migrating Big Iron Cobol Applications

Total Page:16

File Type:pdf, Size:1020Kb

A Checklist for Migrating Big Iron Cobol Applications • Cognizant 20-20 Insights A Checklist for Migrating Big Iron Cobol Applications Migrating common business oriented language (Cobol) applications from HP NonStop Tandem systems to IBM z/OS mainframes requires detailed analysis of program structuring, variable declaration and keywords and a methodical conversion approach. Executive Summary • Environment division. CIOs facing the rising challenges of higher total • Data division. cost of operations (TCO) of HP NonStop Tandem • Procedure division. systems need to find alternatives.1 The bulk of applications created for these HP systems use Also included is a case study that offers insights the Cobol programming language. IBM z/OS into compilation issues found when recompiling mainframes provide an alternative with stability an HP Tandem COBOL program on the IBM z/ and reliability similar to the HP NonStop OS mainframe COBOL Enterprise compiler. The Tandem systems. However, migrating Cobol paper concludes by assessing various conversion applications written for HP Tandem to IBM approaches and tools. mainframes is fraught with complexity and is often time-consuming. Not covered is the use of Screen COBOL (SCOBOL) language to find differences. The SCO- This white paper delves into recent versions BOL language on HP Tandem is similar to Cobol of Cobol on both systems and provides a and is used to generate graphical user-based comprehensive listing of code differences and interfaces. In addition, we do not tackle embed- similarities. The aim is to provide all the relevant ded SQL programming. information CIOs and application developers need when considering migrating from HP Program Organization and Format Tandem to the IBM z/OS mainframe. Figure 1 (on next page) illustrates the difference between the HP Tandem and IBM Cobol reference The differences and similarities covered include: format. • Program organization and format. • Identification division. cognizant 20-20 insights | june 2013 Organization of the Two Reference Formats Tandem Reference Format IBM Reference Format Margin: CA BR1 234567 8910 11 12 13 … 71 72 Sequence Area Area A Area B Indicator Area Column: 12345678910…nxxn<= 132 Area A Area B Indicator Area Line Figure 1 The differences can be summarized as shown in Configuration Section Figure 2. This optional section can be used to describe the computer environment on which the program is Identification Division compiled and executed. Figure 4 (on next page) Identification division must be the first division compares the paragraph of the configuration in each Cobol source program. It names the pro- section. gram, the date of compilation and other docu- mentary information (see Figure 3, on next page). Input-Output Section Figure 5 (on page 4) compares the paragraph of Environment Division the input-output section. Environment division is optional. It contains two sections, namely CONFIGURATION and The function of the FILE-CONTROL paragraph is INPUT-OUTPUT. described in detail below. Summary of Differences in the Two Formats HP Tandem COBOL IBM z/OS Enterprise COBOL Number of columns where code lines are Number of columns where code lines are accepted is 72. accepted is 132. There is no area known as “Sequence Number The first six columns are taken as “Sequence Number Area” Area.” which is used to label a source statement line. The indicator area begins at column 1. It can be The indicator area begins at column 7. It can be empty or empty or it can contain a single character that it can contain a single character that describes the type of describes the type of information on the line. information on the line. ? Compiler directive * Ordinary comment * Ordinary comment / Comment for top of next page / Comment for top of next page D Debugging line D Debugging line d Debugging line d Debugging line - Continuation line - Continuation line Space Text line Space Text line There is no distinction made between Area A Specific items must begin in Area A. and Area B. • Division headers • Section headers • Paragraph headers or paragraph names • Level indicators (FD and SD) or level-numbers (01 and 77) • DECLARATIVES and END DECLARATIVES Specific items must begin in Area B. • Entries, sentences, statements and clauses • Continuation lines Figure 2 cognizant 20-20 insights 2 Identification Divisions: Defined and Compared PARAGRAPH HP Tandem COBOL IBM z/OS Enterprise COBOL PROGRAM-ID Present. Provides an optional clause of The paragraph specifies the name by which RECURSIVE to recursively enter a the program is known and assigns selected program while previous invocation program attributes to that program. is still active. AUTHOR Present and similar in both versions. Name of the author of the program. INSTALLATION Name of the company or location. DATE-WRITTEN Date the program was written. DATE-COMPILED Date the program was compiled. SECURITY Level of confidentiality of the program. Figure 3 The Paragraph uses the SELECT clause to connect Figure 6 (on page 5) summarizes the File-Entry an operating system file name to Cobol file name. clause for both HP Tandem COBOL and IBM z/OS The various files possible along with the detailed Enterprise COBOL. As seen, the requirement is clause such as ASSIGN, ORGANIZATION, ACCESS the same in both versions; wherever differences MODE, RECORD KEY, etc. are described. are present on Enterprise COBOL, they have been marked with a dark gray background. The ASSIGN clause associates the name of a file in a program with the actual external name The SORT-MERGE file is not mentioned here of the data file. The #DYNAMIC used in Tandem as the handling for them is the same in both COBOL cannot be used in Enterprise COBOL; versions of Cobol dialect. instead an alphanumeric literal must be men- tioned. During the execution of the program, a Data Division job control language (JCL) assignment by the use The Data division is the place where all variables of data dictionary (DD) and data source name to be used in the program are defined at various (DSN) commands takes care of assigning the levels, namely from 01-49, 66, 77 and 88. The external name of the file. The PASSWORD clause level has similar meaning in both the HP Tandem is present only in Enterprise COBOL which COBOL and IBM z/OS Enterprise COBOL. controls access to files. Configuration Section Paragraphs: Defined and Compared PARAGRAPH HP Tandem COBOL IBM z/OS Enterprise COBOL SOURCE-COMPUTER The syntax is similar in both the versions of Cobol. The paragraph describes the computer on which the source text is to be compiled. OBJECT-COMPUTER An additional clause of “CHARACTER- The syntax is similar to HP The paragraph specifies the SET” is present which enables it to Tandem COBOL with the system for which the object specify the national character set absence of “CHARACTER- program is designated. defining the ALPHABETIC data class. SET” clause. SPECIAL-NAMES An additional “SYSTEM-NAME” “SYSTEM-NAME” clause is The paragraph assigns user- clause having values of CONSOLE, absent. defined names to certain MYTERM, CHANNEL-1 through More options available to aid system-name parameters. CHANNEL-2 is available. in object-oriented program development. Figure 4 cognizant 20-20 insights 3 The Data division is optional. It contains four can be found in the respective COBOL manuals optional sections on HP Tandem COBOL. (mentioned in the reference section). • FILE. • WORKING-STORAGE. Declarative Section • EXTENDED-STORAGE. Declaratives provide one or more special-purpose • LINKAGE. sections that are executed when an exceptional condition occurs on a program file. Each declara- The EXTENDED-STORAGE section is specific to HP tive section starts with a USE statement that Tandem COBOL, wherein variables will exceed the identifies the section's function. The series of 64KB boundary. This section is completely absent procedures that follow specify the actions that in IBM z/OS Enterprise COBOL which has a section are to be taken when an exception occurs. Each named LOCAL-STORAGE which is not a replace- declarative section ends with another section- ment of the EXTENDED-STORAGE. Figure 7 name followed by a USE statement or with the (on page 6) describes more of the Cobol sections. keywords END DECLARATIVES. The data-types of NATIVE-2, NATIVE-4 and The USE statement has three formats in which NATIVE-8 available on HP Tandem COBOL are not the EXCEPTION/ERROR and DEBUGGING declara- available on IBM z/OS Enterprise COBOL. These tives are similar in both HP Tandem COBOL and data types will be replaced by corresponding IBM z/OS Enterprise COBOL. The LABEL declara- signed numeric data types on IBM z/OS Enter- tive is present only in Enterprise COBOL. prise COBOL. In addition, there are options for double byte character set (DBCS) type literals Statements which are specific to IBM z/OS Enterprise COBOL. There are many statements present in HP Tandem COBOL but not on IBM z/OS Enterprise COBOL, Procedure Division and vice versa. They are divided into imperative Procedure division is the place where Cobol verbs and conditional types. and statements carry out the business logic determined for the program. This section details • Imperative statements: This either specifies the verbs and word names only; a detailed syntax an unconditional action to be taken by the Input-Output Section Paragraphs: Defined and Compared PARAGRAPH HP Tandem COBOL IBM z/OS Enterprise COBOL FILE-CONTROL The Paragraph is present in both versions and is described in detail A file-control entry connects an in the text on pages 2 and 3. operating system file name to a Cobol file name, specifies the file’s organization and keys and provides additional information needed for input and output. I-O-CONTROL The Paragraph is similar in both versions. The one difference is that The optional I-O-CONTROL Enterprise COBOL contains APPLY WRITE-ONLY Clause.
Recommended publications
  • Declaring Pointers in Functions C
    Declaring Pointers In Functions C isSchoolgirlish fenestrated Tye or overlain usually moltenly.menace some When babbling Raleigh orsubmersing preappoints his penetratingly. hums wing not Calvinism insidiously Benton enough, always is Normie outdance man? his rectorials if Rodge Please suggest some time binding in practice, i get very complicated you run this waste and functions in the function pointer arguments Also allocated on write in c pointers in declaring function? Been declared in function pointers cannot declare more. After taking these requirements you do some planning start coding. Leave it to the optimizer? Web site in. Functions Pointers in C Programming with Examples Guru99. Yes, here is a complete program written in C, things can get even more hairy. How helpful an action do still want? This title links to the home page. The array of function pointers offers the facility to access the function using the index of the array. If you want to avoid repeating the loop implementations and each branch of the decision has similar code, or distribute it is void, the appropriate function is called through a function pointer in the current state. Can declare functions in function declarations and how to be useful to respective function pointer to the basic concepts of characters used as always going to? It in functions to declare correct to the declaration of your site due to functions on the modified inside the above examples. In general, and you may publicly display copies. You know any type of a read the licenses of it is automatically, as small number types are functionally identical for any of accessing such as student structure? For this reason, every time you need a particular behavior such as drawing a line, but many practical C programs rely on overflow wrapping around.
    [Show full text]
  • Project Management © Adrienne Watt
    Project Management © Adrienne Watt This work is licensed under a Creative Commons-ShareAlike 4.0 International License Original source: The Saylor Foundation http://open.bccampus.ca/find-open-textbooks/?uuid=8678fbae-6724-454c-a796-3c666 7d826be&contributor=&keyword=&subject= Contents Introduction ...................................................................................................................1 Preface ............................................................................................................................2 About the Book ..............................................................................................................3 Chapter 1 Project Management: Past and Present ....................................................5 1.1 Careers Using Project Management Skills ......................................................................5 1.2 Business Owners ...............................................................................................................5 Example: Restaurant Owner/Manager ..........................................................................6 1.2.1 Outsourcing Services ..............................................................................................7 Example: Construction Managers ..........................................................................8 1.3 Creative Services ................................................................................................................9 Example: Graphic Artists ...............................................................................................10
    [Show full text]
  • Computer Organization and Architecture Designing for Performance Ninth Edition
    COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION William Stallings Boston Columbus Indianapolis New York San Francisco Upper Saddle River Amsterdam Cape Town Dubai London Madrid Milan Munich Paris Montréal Toronto Delhi Mexico City São Paulo Sydney Hong Kong Seoul Singapore Taipei Tokyo Editorial Director: Marcia Horton Designer: Bruce Kenselaar Executive Editor: Tracy Dunkelberger Manager, Visual Research: Karen Sanatar Associate Editor: Carole Snyder Manager, Rights and Permissions: Mike Joyce Director of Marketing: Patrice Jones Text Permission Coordinator: Jen Roach Marketing Manager: Yez Alayan Cover Art: Charles Bowman/Robert Harding Marketing Coordinator: Kathryn Ferranti Lead Media Project Manager: Daniel Sandin Marketing Assistant: Emma Snider Full-Service Project Management: Shiny Rajesh/ Director of Production: Vince O’Brien Integra Software Services Pvt. Ltd. Managing Editor: Jeff Holcomb Composition: Integra Software Services Pvt. Ltd. Production Project Manager: Kayla Smith-Tarbox Printer/Binder: Edward Brothers Production Editor: Pat Brown Cover Printer: Lehigh-Phoenix Color/Hagerstown Manufacturing Buyer: Pat Brown Text Font: Times Ten-Roman Creative Director: Jayne Conte Credits: Figure 2.14: reprinted with permission from The Computer Language Company, Inc. Figure 17.10: Buyya, Rajkumar, High-Performance Cluster Computing: Architectures and Systems, Vol I, 1st edition, ©1999. Reprinted and Electronically reproduced by permission of Pearson Education, Inc. Upper Saddle River, New Jersey, Figure 17.11: Reprinted with permission from Ethernet Alliance. Credits and acknowledgments borrowed from other sources and reproduced, with permission, in this textbook appear on the appropriate page within text. Copyright © 2013, 2010, 2006 by Pearson Education, Inc., publishing as Prentice Hall. All rights reserved. Manufactured in the United States of America.
    [Show full text]
  • Refining Indirect-Call Targets with Multi-Layer Type Analysis
    Where Does It Go? Refining Indirect-Call Targets with Multi-Layer Type Analysis Kangjie Lu Hong Hu University of Minnesota, Twin Cities Georgia Institute of Technology Abstract ACM Reference Format: System software commonly uses indirect calls to realize dynamic Kangjie Lu and Hong Hu. 2019. Where Does It Go? Refining Indirect-Call Targets with Multi-Layer Type Analysis. In program behaviors. However, indirect-calls also bring challenges 2019 ACM SIGSAC Conference on Computer and Communications Security (CCS ’19), November 11–15, 2019, to constructing a precise control-flow graph that is a standard pre- London, United Kingdom. ACM, New York, NY, USA, 16 pages. https://doi. requisite for many static program-analysis and system-hardening org/10.1145/3319535.3354244 techniques. Unfortunately, identifying indirect-call targets is a hard problem. In particular, modern compilers do not recognize indirect- call targets by default. Existing approaches identify indirect-call 1 Introduction targets based on type analysis that matches the types of function Function pointers are commonly used in C/C++ programs to sup- pointers and the ones of address-taken functions. Such approaches, port dynamic program behaviors. For example, the Linux kernel however, suffer from a high false-positive rate as many irrelevant provides unified APIs for common file operations suchas open(). functions may share the same types. Internally, different file systems have their own implementations of In this paper, we propose a new approach, namely Multi-Layer these APIs, and the kernel uses function pointers to decide which Type Analysis (MLTA), to effectively refine indirect-call targets concrete implementation to invoke at runtime.
    [Show full text]
  • SI 413, Unit 3: Advanced Scheme
    SI 413, Unit 3: Advanced Scheme Daniel S. Roche ([email protected]) Fall 2018 1 Pure Functional Programming Readings for this section: PLP, Sections 10.7 and 10.8 Remember there are two important characteristics of a “pure” functional programming language: • Referential Transparency. This fancy term just means that, for any expression in our program, the result of evaluating it will always be the same. In fact, any referentially transparent expression could be replaced with its value (that is, the result of evaluating it) without changing the program whatsoever. Notice that imperative programming is about as far away from this as possible. For example, consider the C++ for loop: for ( int i = 0; i < 10;++i) { /∗ some s t u f f ∗/ } What can we say about the “stuff” in the body of the loop? Well, it had better not be referentially transparent. If it is, then there’s no point in running over it 10 times! • Functions are First Class. Another way of saying this is that functions are data, just like any number or list. Functions are values, in fact! The specific privileges that a function earns by virtue of being first class include: 1) Functions can be given names. This is not a big deal; we can name functions in pretty much every programming language. In Scheme this just means we can do (define (f x) (∗ x 3 ) ) 2) Functions can be arguments to other functions. This is what you started to get into at the end of Lab 2. For starters, there’s the basic predicate procedure?: (procedure? +) ; #t (procedure? 10) ; #f (procedure? procedure?) ; #t 1 And then there are “higher-order functions” like map and apply: (apply max (list 5 3 10 4)) ; 10 (map sqrt (list 16 9 64)) ; '(4 3 8) What makes the functions “higher-order” is that one of their arguments is itself another function.
    [Show full text]
  • Implementing Concurrent Engineering and QFD Method to Achieve Realization of Sustainable Project
    sustainability Article Implementing Concurrent Engineering and QFD Method to Achieve Realization of Sustainable Project Lidija Rihar and Janez Kušar * Faculty of Mechanical Engineering, University of Ljubljana, SI-1000 Ljubljana, Slovenia; [email protected] * Correspondence: [email protected] Abstract: In this paper, we present the impact of concurrent engineering strategies, methods, and tools on product sustainability. Concurrent engineering can be used to achieve the primary goals of a product realization project: lower costs, shorter times, high quality, and increasing value. Currently, it is important that new products also meet product sustainability goals, such as economic, environmental, and social goals. The sustainability of a product can be influenced the most in the early stages of product development, so in this paper, we present a customized quality function deployment (QFD) method called the house of sustainability, which translates sustainability requirements into technical solutions for a product. A seven-step process for implementing a sustainable product realization project is also proposed, in which the house of sustainability is one of the most important tools. The proposed process is illustrated with an example of a concurrent product realization project in engineering to order production. Keywords: concurrent engineering; product sustainability; production sustainability; new product development; QFD Citation: Rihar, L.; Kušar, J. 1. Introduction Implementing Concurrent Sustainability has lately become one of the key features of new products. Sustainabil- Engineering and QFD Method to ity implies product properties that characterize it from the idea, through development, Achieve Realization of Sustainable production, use, and maintenance, to the end of the life of the product (disposal).
    [Show full text]
  • Microcomputers: NQS PUBLICATIONS Introduction to Features and Uses
    of Commerce Computer Science National Bureau and Technology of Standards NBS Special Publication 500-110 Microcomputers: NQS PUBLICATIONS Introduction to Features and Uses QO IGf) .U57 500-110 NATIONAL BUREAU OF STANDARDS The National Bureau of Standards' was established by an act ot Congress on March 3, 1901. The Bureau's overall goal is to strengthen and advance the Nation's science and technology and facilitate their effective application for public benefit. To this end, the Bureau conducts research and provides; (1) a basis for the Nation's physical measurement system, (2) scientific and technological services for industry and government, (3) a technical basis for equity in trade, and (4) technical services to promote public safety. The Bureau's technical work is per- formed by the National Measurement Laboratory, the National Engineering Laboratory, and the Institute for Computer Sciences and Technology. THE NATIONAL MEASUREMENT LABORATORY provides the national system of physical and chemical and materials measurement; coordinates the system with measurement systems of other nations and furnishes essential services leading to accurate and uniform physical and chemical measurement throughout the Nation's scientific community, industry, and commerce; conducts materials research leading to improved methods of measurement, standards, and data on the properties of materials needed by industry, commerce, educational institutions, and Government; provides advisory and research services to other Government agencies; develops, produces, and
    [Show full text]
  • Object-Oriented Programming in C
    OBJECT-ORIENTED PROGRAMMING IN C CSCI 5448 Fall 2012 Pritha Srivastava Introduction Goal: To discover how ANSI – C can be used to write object- oriented code To revisit the basic concepts in OO like Information Hiding, Polymorphism, Inheritance etc… Pre-requisites – A good knowledge of pointers, structures and function pointers Table of Contents Information Hiding Dynamic Linkage & Polymorphism Visibility & Access Functions Inheritance Multiple Inheritance Conclusion Information Hiding Data types - a set of values and operations to work on them OO design paradigm states – conceal internal representation of data, expose only operations that can be used to manipulate them Representation of data should be known only to implementer, not to user – the answer is Abstract Data Types Information Hiding Make a header file only available to user, containing a descriptor pointer (which represents the user-defined data type) functions which are operations that can be performed on the data type Functions accept and return generic (void) pointers which aid in hiding the implementation details Information Hiding Set.h Example: Set of elements Type Descriptor operations – add, find and drop. extern const void * Set; Define a header file Set.h (exposed to user) void* add(void *set, const void *element); Appropriate void* find(const void *set, const Abstractions – Header void *element); file name, function name void* drop(void *set, const void reveal their purpose *element); Return type - void* helps int contains(const void *set, const in hiding implementation void *element); details Set.c Main.c - Usage Information Hiding Set.c – Contains void* add (void *_set, void *_element) implementation details of { Set data type (Not struct Set *set = _set; struct Object *element = _element; exposed to user) if ( !element-> in) The pointer Set (in Set.h) is { passed as an argument to element->in = set; add, find etc.
    [Show full text]
  • Development of a Multi-Bus Platform for Automation Testbed
    A Master Thesis Work in Electronics Development of a Multi‐bus platform for automation testbed By Lukas Knapik and Mathias Isaksson Examiner: Professor Lars Asplund, Mälardalens University Supervisor: Martin Ekström, PhD Student in Electronics, Mälardalen University Dan Olsson, M.SC Physics, Infotiv AB Lukas Knapik Mathias Isaksson 070‐7124691 073‐8079350 [email protected] [email protected] Mälardalen University, Västerås 2010‐02‐17 Development of a Multi‐bus platform for automation testbed Master Thesis CEL505 ABSTRACT The task for this thesis was to develop, construct and evaluate a multi‐bus communication system, connected to a PC via USB and capable of communicating in CAN, I2C and SPI and develop drivers for it in National Instruments LabVIEW. In the beginning a study was made of the communication buses followed by an investigation of what type of hardware that could accomplish this task. A microcontroller unit was selected and programmed in MikroElektronika MikroC Pro v.3.2 to act as the interface between the communication busses and PC. A PCB prototype of the system was constructed by using Eagle Cad software v.5.6.0. General drivers for this system where created in LabVIEW v.8.6.1 so the end‐user simply can create their own applications and control the compatible hardware depending on their type of purposes. The system was tested on criteria’s such as: speed, power consumption, burst performance and transmission length depending on which communication bus was used. Lukas Knapik, Mathias Isaksson Mälardalen University, Västerås 2010‐02‐17 Development of a Multi‐bus platform for automation testbed Master Thesis CEL505 ACKNOWLEDGEMENTS We would like to thank Infotiv AB for giving us the opportunity to do this thesis.
    [Show full text]
  • DAVID J. ERICKSON 6 Oak Drive Topsfield, MA 01983 978-887-0125 [email protected]
    DAVID J. ERICKSON 6 Oak Drive Topsfield, MA 01983 978-887-0125 [email protected] Objective: To develop successful products from concept to production using my skills in analog, digital and firmware design engineering, team and project management Management: Hands-on Engineering Management, Hardware Engineering and Project Management Education: B.S.E.E., 1976 Worcester Polytechnic Institute, Worcester, MA Design Analog processing including video, PLL, A/D, D/A, video timing, Specialties: video analog and digital LSI, graphics LCDs. Digital circuitry: Image memory (DRAM), multiport memory, pipelined image processors, bus interfaces, state machine, digital components used: PALs, DRAMs, SRAMs, PROMs, ASICs, TTL, ECL, PGAs (Xilinx, Actel, Altera), DSP blocks, FIFOs bit slice, VLSI. Instrument design for chemical and ATE industries. Medical (patient monitoring and display) electronics. Sensor interfacing, power supplies, low power design. Microprocessor hardware and firmware design, C and assembler: AVR, Z80 and 68hc11. Audio processing and control, amplifiers, test equipment. Marine and weather electronics. Troubleshooting all types of problems. Bus interfacing to MicroBus, VME/VXI, PC/AT, Multibus, Q-Bus LabView Experience: STH Company (Consultant, part time) Wayland, MA 4/02 - 9/02 Hardware and firmware design of Colorimeter Instrument complete redesign. Product development from specification to final release. Instrument uses an AVR microprocessor to implement a complete optical / chemical measurement instrument. Implemented complex acquisition timing, math, communications, display and serial interface, menu system. Development cost and product cost goals were met. Analogic Corp., Peabody, MA 1/98 to 6/02 Chief Engineer, Test and Measurement Division Directed the engineering department of the division that was the leading 3rd party supplier of mixed-signal instruments to the ATE industry.
    [Show full text]
  • Call Graph Generation for LLVM (Due at 11:59Pm 3/7)
    CS510 Project 1: Call Graph Generation for LLVM (Due at 11:59pm 3/7) 2/21/17 Project Description A call graph is a directed graph that represents calling relationships between functions in a computer program. Specifically, each node represents a function and each edge (f, g) indicates that function f calls function g [1]. In this project, you are asked to familiarize yourself with the LLVM source code and then write a program analysis pass for LLVM. This analysis will produce the call graph of input program. Installing and Using LLVM We will be using the Low Level Virtual Machine (LLVM) compiler infrastructure [5] de- veloped at the University of Illinois Urbana-Champaign for this project. We assume you have access to an x86 based machine (preferably running Linux, although Windows and Mac OS X should work as well). First download, install, and build the latest LLVM source code from [5]. Follow the instructions on the website [4] for your particular machine configuration. Note that in or- der use a debugger on the LLVM binaries you will need to pass --enable-debug-runtime --disable-optimized to the configure script. Moreover, make the LLVM in debug mode. Read the official documentation [6] carefully, specially the following pages: 1. The LLVM Programmers Manual (http://llvm.org/docs/ProgrammersManual.html) 2. Writing an LLVM Pass tutorial (http://llvm.org/docs/WritingAnLLVMPass.html) Project Requirements LLVM is already able to generate the call graphs of the pro- grams. However, this feature is limited to direct function calls which is not able to detect calls by function pointers.
    [Show full text]
  • C++ Overview Building a Project Integrated Development Environments Submission Instructions
    Outline Task List C++ Overview Building a Project Integrated Development Environments Submission Instructions CPSC 427: Object-Oriented Programming Michael J. Fischer Lecture 2 September 2, 2016 CPSC 427, Lecture 2 1/38 Outline Task List C++ Overview Building a Project Integrated Development Environments Submission Instructions Task List C++ Overview C++ Language Design Goals Comparison of C and C++ Building a Project C/C++ Compilation Model Project management A sample project Integrated Development Environments Submission Instructions CPSC 427, Lecture 2 2/38 Outline Task List C++ Overview Building a Project Integrated Development Environments Submission Instructions Tasks for this week I Sign up for a Zoo account and a CPSC 427 course account. I Read Chapters 1{3 of Exploring C++. I Do problem set 1. CPSC 427, Lecture 2 3/38 Outline Task List C++ Overview Building a Project Integrated Development Environments Submission Instructions C++ Overview CPSC 427, Lecture 2 4/38 Outline Task List C++ Overview Building a Project Integrated Development Environments Submission Instructions C++ Language Design Goals Why did C need a ++? Chapter 2 of Exploring C++ 1. C was designed and constructed a long time ago (1971) as a language for writing Unix. 2. The importance of data modeling was very poorly understood at that time. 3. Data types were real, integer, character, and array, of various sizes and precisions. 4. It was important for C to be powerful and flexible but not to have clean semantics. 5. Nobody talked about portability and code re-use. Today, we demand much more from a language. CPSC 427, Lecture 2 5/38 Outline Task List C++ Overview Building a Project Integrated Development Environments Submission Instructions C++ Language Design Goals C++ was Designed for Modeling Design goals for C++ (Bjarne Stroustrup) 1.
    [Show full text]