GUI and Object Oriented Programming in COBOL

Total Page:16

File Type:pdf, Size:1020Kb

GUI and Object Oriented Programming in COBOL DOCUMENT RESUME ED 422 922 IR 057 080 AUTHOR Lorents, Alden C. TITLE GUI and Object Oriented Programming in COBOL. PUB DATE 1997-00-00 NOTE 9p.; In: Proceedings of the International Academy for Information Management Annual Conference (12th, Atlanta, GA, December 12-14, 1997); see IR 057 067. PUB TYPE Reports Descriptive (141) Speeches/Meeting Papers (150) EDRS PRICE MF01/PC01 Plus Postage. DESCRIPTORS *Computer Interfaces; *Computer Science Education; Computer Software Development; *Computer System Design; Curriculum Development; Design Preferences; Higher Education; *Programming; *Programming Languages IDENTIFIERS COBOL Programming Language; *Graphical User Interfaces; *Object Oriented Programming ABSTRACT Various schools are struggling with the introduction of Object Oriented (00) programming concepts and GUI (graphical user interfaces) within the traditional COBOL sequence. 00 programming has been introduced in some of the curricula with languages such as C++, Smalltalk, and Java. Introducing 00 programming into a typical COBOL sequence presents some interesting challenges. There are a number of new concepts to introduce along with various design issues that are relatively new to 00 program design, such as file maintenance and data objects. Most C++ programming courses tend to work with objects that are more user interface related, such as traditional GUI objects. This paper describes an example of using 00 COBOL and Dialog Systems (GUI builder) in an advanced programming applications course. (Author/AEF) ******************************************************************************** Reproductions supplied by EDRS are the best that can be made from the original document. ******************************************************************************** GUI AND OBJECT ORIENTED PROGRAMMING IN COBOL U.S. DEPARTMENT OF EDUCATION "PERMISSION TO REPRODUCE THIS Office of Educational Research and Improvement .C4 EDUCATIONAL RESOURCES INFORMATION MATERIAL HAS BEEN GRANTED BY C1 CENTER (ERIC) Alden C. Lorents ON 0 This document has been reproducedas T. Case CN 1 received from the person or organization Northern Arizona University originating it. Tr 0 Minor changes have been madeto 0 improve reproduction quality. 44 TO THE EDUCATIONAL RESOURCES Points of view or opinions stated inthis document do not necessarilyrepresent INFORMATION CENTER (ERIC)." official OERI position or policy. Various schools are struggling with the introduction of Object Oriented (00) programming concepts and GUI within the traditional COBOL sequence. 00 programming has been introduced in some of the curriculums with languages such as C++, Smalltalk, and Java.Introducing 00 programming into a typical COBOL sequence presents some interesting challenges.There are a number of new concepts to introduce along with various design issues that are relatively new to 00 program design such as file maintenance and data objects. Most C++ programming courses tend to work with objects that are more user interface related such as traditional GUI objects. This paper describes an example of using 00 COBOL and Dialog Systems (GUI builder) in an Advanced Programming Applications course. INTRODUCTION GUI AND COBOL USING DIALOG SYSTEMS "COBOL is in a unique position to bridge the past with the future. COBOL practitioners bring a Adding GUI (windows) to COBOL program wealth of experience spanning all phases of the development is very easy today with the use of software life cycle including analysis, design, either Micro-Focus Dialog Systems or IBM Visual implementation,databaseintegration,and Age for COBOL. The examples shown in this maintenance" [Arranga, 1997]. The inventory of paper were done using Dialog Systems. The legacy systems continues to be estimated at window shown in figure1is a passenger around 180 billion lines of COBOL code. Some reservation window that is used to maintain data organizations (typically technology and using a traditional VSAM file structure with a engineering based companies) have migrated primary key(itinerarynumber) and two away from using COBOL. They have done this by alternate keys (passenger name and flight going to client-server systems using databases number). such as Oracle, Sybase and DB2 along with client tools such as Visual Basic, Powerbuilder, and FIGURE 1 Oracle tools.Many organizations are still committed to their COBOL based systems file because of the high investment in these systems, Passenger the high cost to rebuild the systems, and the Itinerary No:1000005 Name: !Anderson Ole inability of the newer client-server technologies to Phone:520.526.8396 handle the loads in large systems (salability). 00 COBOL, GUI builders (such as Micro Focus Date:01/25/1997 Flight No:0099 Fare: 10101.00 Dialog Systems and IBM Visual Age for COBOL) and the integration of these products with common objectstandards (Common Object NEXT OUERY COMPLETED Request Broker Architecture CORBA), may provide an alternativefor many of these OFM1 I organizations to migrate their legacy systems into jaP. !plant newer systems based on the new technologies. Proceedings of the 12°' Annual Conference of the International Academy for Information Management 107 2 FIGURE 2 .',',.:111MMIN11111:111::: :::: iiii::::::1:1111i1:::. :': :'oi -I .1,::.:..::::11.1.1. .:::: .:::::. : '''::::::: .. ':::::101119::: l'''' FileEditObjectScreensetViewOjitionsiools H lp ia :17,' :.,:,..kz T'pe Window insole DEFAULT II7 48.0 Ilt 1896.106 It*I Nieto00e r Reservation LIktjt Passenger----%-- ----- a ifinetary No: Pii-jNOM et:x(20) i ti Phoncix(1 2) I) ate.; i x(1 0) night No;9(4) FarC 9(4).9(2) ; I Too , rr- In pc14 01 r 0 ,.._._.,. I A r f Cl 0 Add mom L.,1104:1 Exit Rein! F4 1 ' -- ' r qfj Lsmrlitz.1 Print ViRizti Frta* 1 E tilkirv WIR,PAS 5 I The window is built using the Dialog Systems object palette or object pull down menu shown in FIGURE 3 figure 2. Objects available include primary window,secondarywindow(clippedand FLD NO FIELDNAME FORMATLENGTH unclipped), dialog box, message box, entry field, multiple line entry field, push button, radio 1 X300-ITINERARY-NO 9 6.00 button, check box, list box, selection box, text box, group box, bitmap and notebook. 2 X300-NAME X 20.00 3 X300-PHONE X 12.00 Normally you start the build process by defining a set of data to be used with the window. The data 4 X300-DATE X 10.00 is referred to as a data block and is defmed 5 X300-FLIGHT-NO 9 4.00 similar to COBOL. The data block can be entered in Dialog Systems or imported from a COBOL 6 X300-FARE 9 4.02 data definition.The data block used for this X300-ACTION X 1.00 window is shown in figure 3. 8 X300-MESSAGE X 40.00 Normally a data element is defined for each field supported on the window along with any other application program knows which button theuser fields necessary to support communication pushed when control is turnedover to the between the window and theapplication application program. Each of the other fields is program. X300-Action is used to communicate a associated with a entry field or display fieldon codetotheapplication program,sothe the window.A copy block (file) of COBOL 108 Proceedings of the 12 'h Annual Conference of the International Academyfor Information Management definitions corresponding to each field on the FIGURE 4 window is generated by a command on the file menu. This file is called using a copy statement GLOBAL DIALOG: in the Working Storage Section of the COBOL ESC program. This assures that the data definitions MOVE "X" X300-ACTION in the application program are exactly the same RETC as the data definitions on the window. CLOSED-WINDOW MOVE "X" X300-ACTION The operation of a window is controlled by events. RETC Events can be trapped at various levels such global (events associated with all windows in the LOCAL DIALOG: set), for each specific window, and for each @MNU-EXIT specific object on a window. Examples of events MOVE "X" X300-ACTION include window created, closed window, item RETC selected, mouse over, button selected, gained focus, lost focus and various other events. Each DIALOG FOR PUSH BUTTON : PB-ADD event can be trapped at different levels and BUTTON-SELECTED programmed to carry out various functions. This MOVE "A" X300-ACTION programming is called script and is executed as RETC part of the windows operating system. Figure 4 REFRESH-OBJECT $WINDOW shows some examples of script that are used on this window. Escape and Closed-Window have been defined in this application to exit the Two blocks of data (data block and control block) application. The application program has been pass between the application program and the programmed to exit when it sees an 'X' in the Dialog Systems Program (DSRUN) each time action code. The command RETC is a script control is passed from one to the other. The command to leave the window and return to the application program calls the Dialog Systems calling (application) program.The local dialog program with a subprogram Call Statement. The for the window traps the exit menu selection code in the application program that is used to under File and also closes the application. If the communicate with Dialog Systems is shown in escape and closed-window events under GLOBAL Figure 5.The program-initialize routine is were moved to LOCAL for the window win-pass, executed once at the beginning of the application then those events would be trapped only when to set up some of the parameters in the control that window is in focus. block. The Call-Dialog routine is used each time the application program returns control to the Script is written for each button to tell the window. Note that the Call statement calls application program which routine to execute Dialog-System as a subprogram using the control when control is returned to the application block and the data block. program. When the application program returns to the window, the window program continues to Setting up windows like this allows faculty to execute the script that is was on when it turned illustrate all of the components of client-server control over to the application program.
Recommended publications
  • Cobol/Cobol Database Interface.Htm Copyright © Tutorialspoint.Com
    CCOOBBOOLL -- DDAATTAABBAASSEE IINNTTEERRFFAACCEE http://www.tutorialspoint.com/cobol/cobol_database_interface.htm Copyright © tutorialspoint.com As of now, we have learnt the use of files in COBOL. Now, we will discuss how a COBOL program interacts with DB2. It involves the following terms: Embedded SQL DB2 Application Programming Host Variables SQLCA SQL Queries Cursors Embedded SQL Embedded SQL statements are used in COBOL programs to perform standard SQL operations. Embedded SQL statements are preprocessed by SQL processor before the application program is compiled. COBOL is known as the Host Language. COBOL-DB2 applications are those applications that include both COBOL and DB2. Embedded SQL statements work like normal SQL statements with some minor changes. For example, that output of a query is directed to a predefined set of variables which are referred as Host Variables. An additional INTO clause is placed in the SELECT statement. DB2 Application Programming Following are rules to be followed while coding a COBOL-DB2 program: All the SQL statements must be delimited between EXEC SQL and END-EXEC. SQL statements must be coded in Area B. All the tables that are used in a program must be declared in the Working-Storage Section. This is done by using the INCLUDE statement. All SQL statements other than INCLUDE and DECLARE TABLE must appear in the Procedure Division. Host Variables Host variables are used for receiving data from a table or inserting data in a table. Host variables must be declared for all values that are to be passed between the program and the DB2. They are declared in the Working-Storage Section.
    [Show full text]
  • Modern Programming Languages CS508 Virtual University of Pakistan
    Modern Programming Languages (CS508) VU Modern Programming Languages CS508 Virtual University of Pakistan Leaders in Education Technology 1 © Copyright Virtual University of Pakistan Modern Programming Languages (CS508) VU TABLE of CONTENTS Course Objectives...........................................................................................................................4 Introduction and Historical Background (Lecture 1-8)..............................................................5 Language Evaluation Criterion.....................................................................................................6 Language Evaluation Criterion...................................................................................................15 An Introduction to SNOBOL (Lecture 9-12).............................................................................32 Ada Programming Language: An Introduction (Lecture 13-17).............................................45 LISP Programming Language: An Introduction (Lecture 18-21)...........................................63 PROLOG - Programming in Logic (Lecture 22-26) .................................................................77 Java Programming Language (Lecture 27-30)..........................................................................92 C# Programming Language (Lecture 31-34) ...........................................................................111 PHP – Personal Home Page PHP: Hypertext Preprocessor (Lecture 35-37)........................129 Modern Programming Languages-JavaScript
    [Show full text]
  • 10 Programming Languages You Should Learn Right Now by Deborah Rothberg September 15, 2006 8 Comments Posted Add Your Opinion
    10 Programming Languages You Should Learn Right Now By Deborah Rothberg September 15, 2006 8 comments posted Add your opinion Knowing a handful of programming languages is seen by many as a harbor in a job market storm, solid skills that will be marketable as long as the languages are. Yet, there is beauty in numbers. While there may be developers who have had riches heaped on them by knowing the right programming language at the right time in the right place, most longtime coders will tell you that periodically learning a new language is an essential part of being a good and successful Web developer. "One of my mentors once told me that a programming language is just a programming language. It doesn't matter if you're a good programmer, it's the syntax that matters," Tim Huckaby, CEO of San Diego-based software engineering company CEO Interknowlogy.com, told eWEEK. However, Huckaby said that while his company is "swimmi ng" in work, he's having a nearly impossible time finding recruits, even on the entry level, that know specific programming languages. "We're hiring like crazy, but we're not having an easy time. We're just looking for attitude and aptitude, kids right out of school that know .Net, or even Java, because with that we can train them on .Net," said Huckaby. "Don't get fixated on one or two languages. When I started in 1969, FORTRAN, COBOL and S/360 Assembler were the big tickets. Today, Java, C and Visual Basic are. In 10 years time, some new set of languages will be the 'in thing.' …At last count, I knew/have learned over 24 different languages in over 30 years," Wayne Duqaine, director of Software Development at Grandview Systems, of Sebastopol, Calif., told eWEEK.
    [Show full text]
  • GNU Cobol FAQ
    GNU Cobol FAQ | Status This is a 2.1 work in progress release of the GNU Cobol FAQ. Sourced at gcfaqrrst. Courtesty of ReStructuredText, Sphinx and Pygments. GNU Cobol 2.1 is not currently rolled out, but is available for testing. GNUCobolFAQppdf is also available, but broken, as a work in progress, with no work done yet, using Texlive and Sphinx. This FAQ is more than a FAQ and less than a FAQ. Someday that will change and this document will be split into a GNU Cobol manual and a simplified Frequently Asked Questions file. Website favicon by Mark James, help.png from the FAMFAMFAM Silk icon set. http://creativecommons.org/licenses/by/2.5/ Banner courtesy of the GIMP, Copyright © 2008-2014 Brian Tif- fin licensed under Creative Commons Attribution-Share Alike 2.0 Generic License http://creativecommons.org/licenses/by-sa/2.0/ Authors Brian Tiffin [btiffin]_ Answers, quotes and contributions: John Ellis [jrls_swla]_, Vincent Coen, Jim Currey, Bill Klein [wmk- lein]_, Ganymede, Simon Sobisch [human]_, Rildo Pragana, Sergey Kashyrin, Federico Priolo, Frank Swarbrick, Angus, DamonH, Parhs, Gerald Chudyk Compiler by: *Roger While* [Roger]_, *Keisuke Nishida* [Keisuke]_, *Ron Norman* [Ron]_, *Sergey Kashyrin* [Sergey]_, (with the invaluable assistance of many others) Special credits to *Gary Cutler* author of the GNU Cobol Programmers Guide Joseph James Frantz for hosting and advocacy [aoirthoir]_ 1 Version 2.1.17, May 24th, 2014 Status never complete; like a limit, limaq→0 f(aq) = 42 Copyright Copyright © 2008-2014 Brian Tiffin ChangeLog ChangeLog_ note Regarding COBOL Standards, Official COBOL Standards: There are many references to standards in this document.
    [Show full text]
  • CITA 385 COBOL for Business and Accounting
    STATE UNIVERSITY OF NEW YORK COLLEGE OF TECHNOLOGY CANTON, NEW YORK MASTER SYLLABUS CITA 385 – COBOL for Business and Accounting Created by: Robert House Updated by: Minhua Wang CANINO SCHOOL OF ENGINEERING TECHNOLOGY DECISION SYSTEMS FALL 2018 A. TITLE: Visual Programming and Development Tools B. COURSE NUMBER: CITA 385 C. CREDIT HOURS: (Hours of Lecture, Laboratory, Recitation, Tutorial, Activity) # Credit Hours: 3 # Lecture Hours: 2 per week # Lab Hours: 1 (two-hour lab) per week Other: per week Course Length: 15 Weeks D. WRITING INTENSIVE COURSE: No E. GER CATEGORY: None F. SEMESTER(S) OFFERED: As required G. COURSE DESCRIPTION: This course provides students with the knowledge and experience to write and modify programs written in the COBOL programming language. Classroom exercises use real world scenarios so students will gain an understanding of where COBOL fits in the business world. H. PRE-REQUISITES/CO-REQUISITES: a. Pre-requisite(s): CITA 152 Computer Logic b. Co-requisite(s): none c. Pre- or co-requisite(s): none I. STUDENT LEARNING OUTCOMES: By the end of this course, the student will be able to: Course Student Learning Outcome PSLO ISLO [SLO] a. Design algorithms to solve 3. Demonstrate a solid understanding of 5 application problems the methodologies and foundations of IT b. Compile, test, and debug COBOL 3. Demonstrate a solid understanding of 5 programs the methodologies and foundations of IT c. Define data elements used in a 3. Demonstrate a solid understanding of 5 COBOL program the methodologies and foundations of IT d. Create procedures using COBOL 3. Demonstrate a solid understanding of 5 statements the methodologies and foundations of IT e.
    [Show full text]
  • The Latest IBM Z COBOL Compiler: Enterprise COBOL V6.2!
    The latest IBM Z COBOL compiler: Enterprise COBOL V6.2! Tom Ross Captain COBOL SHARE Providence August 7,2017 1 COBOL V6.2 ? YES! • The 4 th release of the new generation of IBM Z COBOL compilers • Announced: July 17, 2017 • The same day as IBM z14 hardware…coincidence? • GA: September 8, 2017 • Compiler support for the new IBM z14 hardware and IBM z/OS V2.3 • Ability to exploit the new Vector Packed Decimal Facility of z14 • ‘OLD’ news: • COBOL V5 EOM Sept 11, 2017 (announced Dec 6, 2016) • EOS for COBOL V4 ‘might’ be earlier than 2020, still discussing 2 COBOL V6.2 ? What else does it have? • New and changed COBOL statements, such as the new JSON PARSE statement • Support of COBOL 2002/2014 standards with the addition of the COBOL Conditional Compilation language feature • New and changed COBOL options for increased flexibility • Improved compiler listings with compiler messages at the end of the listing as in previous releases of the compiler • Improved interfaces to optional products and tools such as IBM Debug for z Systems (formerly Debug Tool for z/OS) and IBM Application Discovery and Delivery Intelligence (formerly EzSource) • Compile-time and runtime performance enhancements • Improved usability of the compiler in the z/OS UNIX System Services environment 3 Vector Packed Decimal Facility of z14 • Enterprise COBOL V6.2 adds support for exploiting the new Vector Packed Decimal Facility in z14 through the ARCH(12) compiler option. • The Vector Packed Decimal Facility allows the dominant COBOL data types, packed and zoned decimal, to be handled in wide 16-byte vector registers instead of in memory.
    [Show full text]
  • JTC1 and SC22 - Terminology
    JTC1 AD Hoc Terminology, August 2005 1 JTC1 and SC22 - Terminology Background Following my offer to collect together the definitions from SC22 standards, SC22 accepted my offer and appointed me as its terminology representative (I was later also asked to represent UK and BSI) on the JTC1 ad hoc group on terminology. These notes summarise the results of collecting the SC22 definitions, and my impressions of the JTC1 ad hoc group. Roger Scowen August 2005 A collection of definitions from SC22 standards SC22 asked me to prepare a collected terminology for SC22 containing the definitions from standards for which SC22 is responsible, and asked the project editors to send me the definitions in text form. Many, but not all, project editors did so. However there are sufficient for SC22 to judge whether to complete the list or abandon it as an interesting but unprofitable exercise. Adding definitions to the database The project editor of a standard typically sends the definitions from the standard as a Word file, but it may be plain text or in Latex or nroff format. These definitions are transformed into a uniform format by a series of global ‘find & replace’ operations to produce a Word file where each definition is represented as a row of a table with three columns: the term, its definition, and any notes and/or examples. It is often easier to check this has been accomplished by copying and pasting successive attempts into Excel than examining the Word file itself. Sometimes there are special cases such as exotic characters (for example Greek or mathematical characters), special fonts, illustrations, diagrams, or tables.
    [Show full text]
  • Programming Language "EASY"
    Programming Language "EASY" Rahul Kumar IIT Kanpur Outline • What is "EASY"? • Why use "EASY"? • Basic idea taken from NLP • Programming with NLP • How it works... • Example • Why can't computers be designed in "EASY" • Future Goals • References What is "EASY"? • A programming language • A programming language is a vocabulary and set of grammatical rules for instructing a computer or computing device to perform specific tasks. • The term programming language usually refers to high-level languages, such as BASIC, C, C++, COBOL, Java, FORTRAN, Ada, and Pascal. • Each language has a unique set of keywords (words that it understands) and a special syntax for organizing program instructions. Why use "EASY"? • Textbooks and scientific publications related to computer science and numerical computation can use English sentences in description of algorithms, so that all programmers can understand them. • A programmer who needs to implement a specific algorithm, especially an unfamiliar one, will often start with a pseudocode description, and then "translate" that description into the target programming language and modify it to interact correctly with the rest of the program. However, this won't be needed while using "EASY". • It can also be used in schools to teach programming to kids as they can use the words and syntax freely. Natural Language Programming • Natural language programming (NLP) is an ontology-assisted way of programming in terms of natural language sentences, e.g. English. A structured document with Content, sections and subsections for explanations of sentences forms a NLP document, which is actually a computer program. Programming with NLP • Do we really need computer languages to tell our computers what to do? Why can’t we just use natural human languages, like English, instead? • So the first question is: how might we represent these programs? • In principle we could use pretty much any programming language.
    [Show full text]
  • International Standard ISO/IEC 14977
    ISO/IEC 14977 : 1996(E) Contents Page Foreword ................................................ iii Introduction .............................................. iv 1Scope:::::::::::::::::::::::::::::::::::::::::::::: 1 2 Normative references :::::::::::::::::::::::::::::::::: 1 3 Definitions :::::::::::::::::::::::::::::::::::::::::: 1 4 The form of each syntactic element of Extended BNF :::::::::: 1 4.1 General........................................... 2 4.2 Syntax............................................ 2 4.3 Syntax-rule........................................ 2 4.4 Definitions-list...................................... 2 4.5 Single-definition . 2 4.6 Syntactic-term...................................... 2 4.7 Syntacticexception.................................. 2 4.8 Syntactic-factor..................................... 2 4.9 Integer............................................ 2 4.10 Syntactic-primary.................................... 2 4.11 Optional-sequence................................... 3 4.12 Repeatedsequence................................... 3 4.13 Grouped sequence . 3 4.14 Meta-identifier...................................... 3 4.15 Meta-identifier-character............................... 3 4.16 Terminal-string...................................... 3 4.17 First-terminal-character................................ 3 4.18 Second-terminal-character . 3 4.19 Special-sequence.................................... 3 4.20 Special-sequence-character............................. 3 4.21 Empty-sequence....................................
    [Show full text]
  • Embedded SQL Guide for RM/Cobol
    Firebird Embedded SQL Guide for RM/Cobol Embedded SQL Guide for RM/Cobol 3 Table of Contents 1. Program Structure...............................................................................................................................6 1.1. General...........................................................................................................................................6 1.2. Reading this Guide.........................................................................................................................6 1.3. Definition of Terms........................................................................................................................6 1.4. Declaring Host Variables...............................................................................................................7 1.5. Declaring and Accessing Databases...............................................................................................7 1.6. Transactions....................................................................................................................................7 1.7. SQL Statements..............................................................................................................................8 1.8. Statement Handles..........................................................................................................................8 1.9. Dynamic SQL (DSQL)...................................................................................................................8 1.10. Error
    [Show full text]
  • The Pascal Programming Language
    The Pascal Programming Language http://pascal-central.com/ppl/index.html The Pascal Programming Language Bill Catambay, Pascal Developer Updated: 9-5-01 The Pascal Programming Language by Bill Catambay Table of Contents I. Introduction About the Author Origins of Pascal II. The Pascal Architecture Block Structure Style Manageability III. Pascal Standards Unextended Pascal Extended Pascal Object Pascal IV. Myths Uncovered Myth 1: C and Pascal Are Basically the Same Language Myth 2: Pascal is Limited in Power Myth 3: Pascal Has Weak String Handling Capabilities Myth 4: Pascal Does Not Support Object Oriented Programming Myth 5: Pascal is Only an Instructional Language Myth 6: Pascal is Not For Serious Programmers V. Pascal Today Platforms Compilers Internet VI. Summary VII. Bibliography I. Introduction This paper is a review of the Pascal programming language. I will address the origin of the language, discuss the architecture, and talk about the language standards for unextended Pascal and Extended Pascal. I will confront the major criticisms of the language, explaining the origin and inaccuracy of the many myths about Pascal. Finally, I will address the Pascal implementations available today, comparing the 1 of 5 11/9/07 11:42 AM The Pascal Programming Language http://pascal-central.com/ppl/index.html different compilers and the different platforms on which Pascal is currently available. My experience with Pascal dates back to the PDP-11, the system used at Santa Clara University where I received my Bachelor of Science in Computer Science in 1984. During my college years, I learned and worked with several languages on campus, ranging from FORTRAN to Pascal, COBOL to Assembly.
    [Show full text]
  • CMSC 330: Organization of Programming Languages
    CMSC 330: Organization of Programming Languages Administrivia CMSC330 Spring 2020 1 Course Goals Understand why there are so many languages Describe and compare their main features Choose the right language for the job Write better code • Code that is shorter, more efficient, with fewer bugs In short: • Become a better programmer with a better understanding of your tools. CMSC330 Spring 2020 2 Course Activities Learn different types of languages Learn different language features and tradeoffs • Programming patterns repeat between languages Study how languages are specified • Syntax, Semantics — mathematical formalisms Study how languages are implemented • Parsing via regular expressions (automata theory) and context free grammars • Mechanisms such as closures, tail recursion, lazy evaluation, garbage collection, … Language impact on computer security CMSC330 Spring 2020 3 Syllabus Dynamic/ Scripting languages (Ruby) Functional programming (OCaml) Regular expressions & finite automata Context-free grammars & parsing Lambda Calculus Safe, “zero-cost abstraction” programming (Rust) Secure programming Scoping, type systems, parameter passing, Comparing language styles; other topics CMSC330 Spring 2020 4 Calendar / Course Overview Tests • 4 quizzes, 2 midterm exams, 1 final exam • Do not schedule your interviews on exam dates Clicker quizzes • In class, graded, during the lectures Projects • Project 1 – Ruby • Project 2-5 – OCaml (and parsing, automata) Ø P2 and P4 are split in two parts • Project 6 – Security CMSC330 Spring 2020 5 Clickers Turning Technology subscription is free. Physical clicker is preferred. • Clicker device: any of LCD, NXT, or QT2 models • Phone App: needs wifi CMSC330 Spring 2020 6 Quiz time! According to IEEE Spectrum Magazine which is the “top” programming language of 2018? A.
    [Show full text]