Sample COBOL SQL

Total Page:16

File Type:pdf, Size:1020Kb

Sample COBOL SQL Standard Access to IMS Data Access from COBOL Using SQL Haley Fung, IBM [email protected] Disclaimer IBM’s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM’s sole discretion. Information regarding potential future products is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver any material, code or functionality. Information about potential future products may not be incorporated into any contract. The development, release, and timing of any future features or functionality described for our products remains at our sole discretion. IMS 13 SQL support for COBOL • Target Market – IMS TM and DB customers who would like to write or modify IMS COBOL applications to access IMS data using SQL • Challenge Addressed – No SQL access to IMS data from IMS COBOL applications – Lack of DL/I skills in AD community • Solution Statement – Enable SQL calls from COBOL applications in addition to the current Java-based solutions • Business Value – Expands IMS database access for application and database developers – Reduce application development cost by leveraging existing SQL skills – Provide a consolidated native SQL engine as the foundation of existing and future client exploitation Prerequisites • Software requirements – IMS 13 + PTF UK98028 – IMS Catalog function is required – COBOL compiler with IMS co-processor function • Enterprise COBOL Developer Trial z/OS V5.1 or • Enterprise COBOL for z/OS V5.1 + APAR PM92523 – Note: COBOL V5.1 requires z/OS 1.13 and above • Hardware requirements – Same as IMS 13 and COBOL V5.1 Solution Highlights • SQL support for COBOL – Offer SQL as a query language for COBOL programs to access IMS database in addition to DLI • SELECT/INSERT/UPDATE/DELETE – EXEC SQLIMS as the interface to execute IMS SQL calls • SQL processor in IMS – Process SQL calls natively by the IMS subsystem – Still perform DLI database call processing underneath – Provide a consolidated way for SQL processing – Uses database metadata in IMS Catalog • Support IMS TM/DB (MPP, IFP, BMP) and DBCTL BMP IMS SQL concepts What is SQL? • SQL stands for Structured Query Language – SQL is a standard and is well defined – Most common database language for relational databases – Support for SQL can be found in programming languages such as Java, .NET, C++, COBOL, PL/I, etc • IMS and SQL – Introduced SQL support since IMS V7 for Java application – IMS V11 provided Open Database Solution allowing Java applications to access IMS databases over TCP/IP networks and off platform – Supports both data access and data manipulation with SQL. It maps hierarchical structures to relational concepts Hierarchical to Relational Mapping Hierarchical Design Relational Design Dealer Table Dealer DealerID DealerName DealerAddress Segment Row 1 - 0 53SJ7 George 555 Bailey Ave. 1 53SJ8 Bob 240 Elm St. 53SJ9 | Mary | 111 Penny Lane 2 53SJ9 Mary 111 Penny Ln. Segment 1 53SJ8 | Bob | 240 Elm St. 53SJ7 | George | 555 Bailey Ave. Row N - ... ... ... ... (Row 1) - Model JPR27 | Dodge | Durango Segment WJ45 | Mercury | Cougar Model Table UU45 | Dodge | Viper ID Make Model Dealer PR27 | Dodge | Durango Row 1 - UU45 Dodge Viper 53SJ7 0 FF13 | Toyota | Camry PR27 Dodge Durango 53SJ7 0 FF13 Toyota Camry 53SJ7 0 JR27 Dodge Durango 53SJ8 1 WJ45 Mercury Cougar 53SJ8 1 Row N - ... ... ... ... ... Other Terminologies • Relational databases versus IMS databases – Table (relational DB) Segment (IMS DB) – Column Field – Row Segment Instance – Schema PCB – Table primary key Segment unique key • Basic definitions – Statement - standardized set of commands used for data access, manipulation. Similar to executing a series of DL/I calls against a DB PCB. – Result Set – statements return a set of results based on the command executed. Similar to the IO Area returned on a DL/I call. IMS Catalog • Trusted, comprehensive view of IMS database metadata (including application metadata) managed by IMS – PSB, DBD and copybooks • SQL support for COBOL directly access IMS Catalog for database metadata – No need to generate metadata for use in applications PSB PSBGEN source PSBLIB ACBLIB IMS IMS Explorer ACBGEN DBD DBDGEN source DBDLIB DBDLIB Catalog IMS 13 SQL support for COBOL Statements – SQL to access data • Data manipulation – SELECT… FROM… to retrieve data – INSERT INTO… VALUES… to insert data – UPDATE… SET… to update data – DELETE FROM… to delete data – WHERE… AND… OR… to perform conditional selection of data Statements – Declaration • Pre-compiler directives – DECLARE CURSOR, STATEMENT… to declare cursor, statement – INCLUDE SQLIMSCA, SQLIMSDA… to generate SQLIMSCA and SQLIMSDA structures – WHENEVER… to handle errors and warnings Statements – Execution • SQL statement execution – For executing a SELECT statement • PREPARE … to parse SQL statement • DESCRIBE (optional)… to get resultset metadata • OPEN … to open cursor • FETCH … to fetch data • CLOSE … to close cursor processing – For executing an INSERT/UPDATE/DELETE statement • PREPARE… to parse SQL statement • EXECUTE… to execute the non-SELECT statement Solution Details – Key application elements • Delimit SQL statement using EXEC SQLIMS ... END-EXEC • Dynamic SQL programming model – Must call PREPARE to process SQL statement • Host variables – Use for both to send and receive data processed by IMS • SQL communication area (SQLIMSCA) – Structure used by IMS to provide status feedback – SQLIMSCODE (error code), SQLIMSSTATE (state), SQLIMSERRM (error message) • SQL description area (SQLIMSDA) – Structure populated by IMS to provide result set metadata for a SELECT statement • Describe name, length, type of each column returned – Structure populated by application to provide input data Solution Details – Dynamic SQL • Enable SQL statement to be constructed at runtime – No need to hard code SQL statement in the application – Segment and field names associated with the SQL calls are not known at compile time – SQL accepts as input in the form of a character string • Use Prepare call to process SQL statement – Parse SQL statement for syntax and semantics validation at runtime. No bind process. – Convert SQL artifacts to DLI – Statement can be prepared once and then execute many times Coding - High-level application flow Declare host variable/structures for passing data between IMS and application Include SQLIMSCA for execution status Code SELECT, INSERT, UPDATE or DELETE statements to access IMS data Check SQLIMSCA for execution status Handle any SQL errors returned by IMS Coding - SELECT • SELECT statements are used to query one or more tables – SELECT column1, column2, … FROM table_name WHERE some_column=some_value ORDER BY column1, column2 • Programming models – PREPARE… OPEN… FETCH (one or more)… CLOSE – Fixed-list SELECT • Returns rows that contain a known number of values of unknown type and size. You can specify a list of host variables to contains the filled values. – Varying-list SELECT • Returns rows that contain an unknown number of values of unknown type and size. You do not know the exact number and types of host variables to store the result values. Coding Fixed-list SELECT 1. Include SQLIMSCA 2. Specify SQL statement in a COBOL variable 3. Declare host variable or structure for result data row 4. Declare a cursor for the statement name 5. Prepare the SELECT statement 6. Open the cursor 7. Fetch a row of data into host variable or structure. 8. Repeat previous step until not more data . When no more data, SQLIMSCODE=100 9. Handle any error 10.Close the cursor Sample COBOL SQL WORKING-STORAGE SECTION. * Declare SQLIMSCA EXEC SQLIMS INCLUDE SQLIMSCA END-EXEC. * Declare COBOL variable for SQL statement and result data 01 SQL-STATEMENT 49 SQL-STATEMENT-LEN PIC S9(4) COMP. 49 SQL-STATEMENT-TEXT PIC X(100). 01 HOSPITAL-RESULT-ROW 05 HOSPLL PIC S9(3) BINARY. 05 HOSPCODE PIC X(12). 05 HOSPNAME PIC X(17). PROCEDURE DIVISION. * Declare Cursor for the Prepared Statement EXEC SQLIMS DECLARE CURSOR cursor-name for prepared-statement-name END-EXEC. * Load SQL statement in the COBOL variable MOVE "SELECT * FROM PCB01.HOSPITAL” TO SELECT-STATEMENT-TXT. Sample COBOL SQL (Cont’d) * Prepared SQL statement string for processing EXEC SQLIMS PREPARE prepared-statement-name FROM :SQL-STATEMENT END-EXEC. * Open Cursor EXEC SQLIMS OPEN cursor-name END-EXEC. * Execute SQL statement * Fetch data from IMS into host variable until no more data is found PERFORM FETCH-PROC UNTIL SQLCODE EQUAL 100. : FETCH-PROC. EXEC SQLIMS FETCH cursor-name INTO :HOSPITAL-RESULT-ROW END-EXEC. : * Close Cursor EXEC SQLIMS CLOSE cursor-name END-EXEC. Coding Varying-list SELECT 1. Include SQLIMSCA 2. Include SQLIMSDA for result metadata 3. Specify SQL statement in a COBOL variable 4. Declare a cursor for the statement name 5. Prepare the SELECT statement 6. Call DESCRIBE to get result metadata 7. Declare and allocate storage for the result data variables 8. Open the cursor 9. Fetch a row of data into SQLIMSDA with result data variables 10. Repeat previous step until not more data . When no more data, SQLIMSCODE=100 11. Handle any error 12. Close the cursor SQL descriptor area (SQLIMSDA) • SQLIMSDA stores information about prepared SQL statements or host variables. • Can be read by IMS or the application – Read by application after a DESCRIBE statement for result set metadata – Read by IMS for the input host variables Coding – INSERT/UPDATE/DELETE
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]