RPG Does XML! New Language Features in V5R4

Size: px
Start display at page:

Download "RPG Does XML! New Language Features in V5R4"

Transcription

1 RPG Does XML! New Language Features in V5R4 Common Europe Congress 2007 Jon Paris Partner400.com SystemiDeveloper.com Your Partner in System i Education This presentation may contain small code examples that are furnished as simple examples to provide an illustration. These examples have not been thoroughly tested under all conditions. We therefore, cannot guarantee or imply reliability, serviceability, or function of these programs. All code examples contained herein are provided to you "as is". THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY DISCLAIMED. The authors, Jon Paris and Susan Gantner, are co-founders of Partner400, a firm specializing in customized education and mentoring services for AS/400 and iseries developers. After individual careers with IBM, including workimg at both the Rochester and Toronto laboratories, Jon and Susan are now devoted to educating developers on techniques and technologies to extend and modernize their applications and development environments. Jon and Susan author regular technical articles for the IBM publication, IBM Systems Magazine, i5 edition, and the companion electronic newsletter, iseries Extra. You may view articles in current and past issues and/or subscribe to the free newsletter at: Feel free to contact the authors at: partner400.com or visit the Partner400 web site at Partner400, RPG Does XML - V5R4 Language Features - Page: 1-2

2 Agenda New Op-codes XML-INTO XML-SAX ** New BIFs %XML( ) %HANDLER ( ) ** If we have time Basic Syntax - XML-INTO variable XML-INTO { ( E H ) } variable %XML (... ) E extender allows you to handle errors via testing of %Error H extender controls half-adjust during assignment of numeric values variable is the target for the operation It can be a field, an array, a Data Structure or a Data Structure array If assignment is to a numeric field, the rules of %DEC conversion etc. apply %XML(...) this BIF identifies the XML document It is also used to supply processing options For example when the XML document is contained within a file in the IFS Matching is based on names The hierarchy of the name(s) of the elements and attributes in the XML are matched with that of the variable parameter XML-INTO recordcount %XML(XML_Input1: 'path=customers case=any'); Partner400, RPG Does XML - V5R4 Language Features - Page: 3-4

3 %XML BIF Details The %XML BIF is used with both XML-INTO and XML-SAX Syntax: %XML ( xml_document : options ) xml_document - Identifies the source of the XML By default the XML is contained within the named variable If option 'doc=file' is specified then the variable contains the name of the IFS file which contains the XML document options - Controls the processing of the XML stream Format is optionname1=value1 optionname2=value2 No space allowed between the option name and the equal sign Or between the equal sign and the value Options can be specified in any case. e.g. doc=file or DOC=FILE or Doc=File Can be a literal string, a named constant or a character variable We will look at some of the options as we use them XML Used in Examples 1, 2, and 3 This is the XML data that will be used in our initial examples Although very few of the XML documents you see will be this simple! There is a single instance of the RecordCount element Followed by multiple Company name elements This data is stored in variable XML_Input1 And in the IFS file /partner400/xml_input1.xml <Customers> <RecordCount> 6 </RecordCount> <Company>Phones R Us</Company> <Company>Suchadeal Bank</Company> <Company>Rinky Dinky Toy Co.</Company> <Company>Partner400</Company> <Company>BlackHole Navigation</Company> <Company>Banker's Trust</Company> </Customers> Partner400, RPG Does XML - V5R4 Language Features - Page: 5-6

4 XML-INTO - Example 1 - Fill a Variable Extract the value of a single element Two %XML options are used case=any Deals with the fact that our XML document contains mixed-case names path=customers/recordcount Directs the XML parser to the correct starting point // XML looks like this: // <Customers> // <RecordCount> 6 </RecordCount> D recordcount S 5p 0 /Free dsply ('Record Count before = ' + %Char(recordCount)); XML-INTO recordcount %XML(XML_Input1: 'path=customers/recordcount + case=any'); dsply ('Record Count after = ' + %Char(recordCount)); XML-INTO - Example 2 - Fill an Array Extracting into an array Note that xmlelements is a new field added to the PSDS It contains the number of elements loaded into the array 'path=... ' is not needed as the "shape" of the customers DS matches the XML document i.e. <Customers><Company>...</Company><Company> d customers DS d company 32a Dim(99) D progstatus SDS D xmlelements 20i 0 Overlay(progStatus: 372) d i s 10i 0 /Free XML-INTO company %XML(XML_Input1: 'case=any' ); dsply ( %Char(xmlElements) + ' elements loaded' ); for i = 1 to xmlelements; dsply company(i); endfor; Results 6 elements loaded Phones R Us Suchadeal Bank Rinky Dinky Toy Co. Partner400 BlackHole Navigation Bankers Trust Partner400, RPG Does XML - V5R4 Language Features - Page: 7-8

5 XML-INTO - Example 2A - XML in IFS This is the same basic example as the previous one But it demonstrates how to handle an XML document that is in the IFS The option 'doc=file' informs the compiler that the variable XML_Input contains the name of the XML file Not the actual XML data as it did before d customers DS d company 32a Dim(99) D progstatus SDS D xmlelements 20i 0 Overlay(progStatus: 372) d XML_Input s 256a Varying d Inz('/Partner400/XML_Input1.xml') /Free XML-INTO company %XML(XML_Input: 'case=any doc=file' ); XML-INTO using %HANDLER XML-INTO { ( E H ) } %HANDLER (... ) %XML (... ) Use this version when the XML data exceeds RPG limits Either because the number of elements exceeds RPG's 32,767 Or because the size of the data exceeds the 64K named DS size limit You can also use this approach if you simply want to process the XML "in pieces" For example one order at a time The %HANDLER BIF Identifies the handling procedure It will be called as each "INTO" action is completed. It can then process the data in any way that you like Partner400, RPG Does XML - V5R4 Language Features - Page: 9-10

6 How the %Handler Process Operates This is a "call-back" process C functions such as qsort and bsearch use same approach XML-INTO (or -SAX) starts the process by calling the XML parser The parser notifies the handler when it has data ready to process The handler processes the data and returns control to the parser The parser returns to step 2 unless parsing is completed at which time... The parser returns control to the main-line RPG Main Line Code XML-INTO (or XML-SAX) %HANDLER identifes handling routine 1 RPG Handler Subprocedure Passes communications area Receives data passed to it by the parser Plus the original communications area 4 2 Parser processes XML document 3 %HANDLER BIF - XML-INTO Version %HANDLER ( prototype : communication_area) The first parameter names the prototype of the handling procedure This procedure will be called as each "INTO" action completes Handler's Parameter requirements are shown below Return value can be set non-zero to terminate the processing First parameter is the communications area Second is the area to be filled (i.e. the -INTO area) It must be an array - even if it only contains 1 element Third is the count of the number of array elements filled Highlighted keywords are required The communication area is any variable/array/ds that you would like to be passed to your handler Use it to communicate between your main program and the handler You might want to do this because the handler subprocedure may not be in the same program as the main line code and will be called indirectly d pr 10i 0 d commarea LikeDS(myCommArea) d company Like(companyName) Dim(4) Const d numelements 10u 0 Value Partner400, RPG Does XML - V5R4 Language Features - Page: 11-12

7 XML-INTO - Example 3 - %HANDLER This is similar to Example 2 but uses %Handler This allows us to process documents which exceed RPG's limitations e.g. The Number of array elements or size maximum size of an array or DS Each time the company array is filled the handler routine is called It will also be called to handle the final group of elements We will look at the Handler procedure on the next chart d HandleCompany PR 10i 0 d commarea 10i 0 d company 32a Dim(4) Const d numelements 10i 0 Value d customers DS d company 32a Dim(4) d count S 10i 0 Inz /Free XML-INTO %Handler( HandleCompany: count ) %XML(XML_Input1: 'path=customers/company case=any' ); dsply ('Processed ' + %char(count) + ' total elements'); Partner400, RPG Does XML - V5R4 Language Features - Page: 13-14

8 XML-INTO - Example 3 - The handler numelements contains the count of elements passed It will only be less than the maximum on the final call Comm Area is used to provide a total count of the p HandleCompany b elements processed d pi 10i 0 d count 10i 0 d company 32a Dim(4) Const d numelements 10i 0 Value d i s 10i 0 /Free for i = 1 to numelements; dsply company(i); endfor; // add current count to total in Comm Area and display current count count += numelements; dsply ( %Char(numElements) + ' elements loaded on this call' ); return 0; /End-Free p HandleCompany e Our sample XML contains 6 customer entries and the array we have defined handles 4 at a time. This is the result of running our example program against that XML stream. As you can see the field passed as the communications area has been used to keep a count of the total number of customers processed. DSPLY Phones R Us DSPLY Suchadeal Bank DSPLY Rinky Dinky Toy Co. DSPLY Partner400 DSPLY 4 elements loaded on this call DSPLY BlackHole Navigation DSPLY Bankers Trust DSPLY 2 elements loaded on this call DSPLY Processed 6 total elements Partner400, RPG Does XML - V5R4 Language Features - Page: 15-16

9 XML For Example 4 <Customers> <RecordCount> 25 </RecordCount> <Customer type="wholesale"> <Contact>John Jones</Contact> <Company>Phones R Us</Company> <Address> <Street>5678 High Street</Street> <City>Mytown</City> <State>GA</State> <Zip>30033</Zip> </Address> </Customer> <Customer type="retail"> <Contact>Meanold Miser</Contact> <Company>Suchadeal Bank</Company> <Address> <Street>91011 Important Ave.</Street> <City>Bankville</City> <State>MN</State> <Zip>55901</Zip> </Address> </Customer> </Customers> Example 4 - Compound Structure The nested Data Structures below map the shape of the XML Note that attributes of an element such as "type" are at the same level in the hierarchy as nested elements such as "Company" The recordcount is ignored in the first example More on how this is done in a moment D customers DS Qualified D recordcount 3p 0 D customer LikeDS(customer) Dim(99) D customer DS Qualified D type 10a D company 32a D discountcode 1a D address LikeDS(address) D address DS D street 32a D city 24a D state 2a D zip 5s 0 Partner400, RPG Does XML - V5R4 Language Features - Page: 17-18

10 Example 4 - Program Logic First version uses the "path=... " option This steers the processing to the customer element But it will only process the first customer element in the XML Second does not need a path option - the DS maps the XML i.e. The DS "customers" contains the nested DS "customer" allowextra - XML can contain elements not included in the DS The XML element "Contact" allowmissing - DS can include fields not present in the XML The field "discountcode" in the customer DS XML-INTO customer %XML(XML_Input: 'path=customers/customer case=any + allowextra=yes allowmissing=yes'); XML-INTO customers %XML(XML_Input : 'case=any allowextra=yes + allowmissing=yes'); XML-SAX "SAX" stands for Simple API for XML But there's no such thing as a truly "Simple" example of SAX parsing So we will simply demonstrate the basic process of identifying events With XML-SAX the %HANDLER BIF must always be specified The parameters to the Handler routine are somewhat different though The return value and the Communications are the same The second parameter is a numeric value representing the event It can be compared with RPG IV Special Words such as *XML_ATTR_NAME The third is a pointer to the string containing the current token i.e. The attribute or element name, or data content The fourth is the length of that string Fifth contains an exception Id. when event *XML_EXCEPTION is signaled D myhandler Pr 10I 0 D commarea LikeDS(myCommArea) D event 10I 0 VALUE D pstring * VALUE D stringlen 20I 0 VALUE D exceptionid 10I 0 VALUE Partner400, RPG Does XML - V5R4 Language Features - Page: 19-20

11 XML-SAX Events These inlcude: *XML_START_DOCUMENT Indicates that parsing has begun *XML_START_ELEMENT The name of the XML element that is starting *XML_CHARS The value of the XML element *XML_END_ELEMENT The name of the XML element that is ending *XML_ATTR_NAME The name of the attribute *XML_ATTR_CHARS The value of the attribute *XML_END_ATTR Indicates the end of the attribute *XML_END_DOCUMENT Indicates the end of the document XML-SAX Example As noted a simple SAX example is a contradiction So our example will simply demonstrate the basic mechanism We will use it to simply identify and count the different elements We will be building up an array of element names Plus a count of the number of Start of Element and End of Element events that we encounter. The Communications Area will be used to pass this information back to our main line program // Communications area definition d mycommarea ds d namecount 10i 0 d elementdata Dim(500) d name 64a Overlay(elementData) d startcount 10i 0 Overlay(elementData: *next) d endcount 10i 0 Overlay(elementData: *next) Partner400, RPG Does XML - V5R4 Language Features - Page: 21-22

12 XML-SAX Processing - Data Definition XML-SAX %Handler(MyHandler: mycommarea ) %XML( XML_Input ); for i = 1 to namecount; dsply ('Name = ' + %subst(name(i): 1: 40) ); dsply ('Counts = ' + %char(startcount(i)) + '/' + %char(endcount(i)) endfor;... // Handler procedure begins here P myhandler B D PI 10I 0 D commarea LikeDS(myCommArea) D event 10I 0 VALUE D pstring * VALUE D stringlen 20I 0 VALUE D exceptionid 10I 0 VALUE D string S 65535A Based(pString) D returncode S 10I 0 INZ(0) D name S 256a Varying D element s 10i 0 This is the display produced by the XML-SAX program when processing the sample XML document which contains two complete Customer entries. Note that the names are displayed at the end of the run, but appear in the sequence in which they are first encountered. A quick review of the XML will confirm this if you have any doubts. DSPLY Starting parse DSPLY Name = Customers DSPLY Counts = 1/1 DSPLY Name = RecordCount DSPLY Counts = 1/1 DSPLY Name = Customer DSPLY Name = Contact DSPLY Name = Company DSPLY Name = Address DSPLY Name = Street DSPLY Name = City DSPLY Name = State DSPLY Name = Zip Partner400, RPG Does XML - V5R4 Language Features - Page: 23-24

13 XML-SAX Processing - Handler Logic /free select; // Initialize communications area on start of document when event = *XML_START_DOCUMENT; clear commarea; // If this is an attribute name then add it to the list // if we haven't seen it already when event = *XML_START_ELEMENT or event = *XML_END_ELEMENT; name = %subst(string : 1 : stringlen); element = %lookup( name: commarea.name: 1: commarea.namecount ); if element = 0; commarea.namecount += 1; element = commarea.namecount; commarea.name( element ) = name; endif; if event = *XML_START_ELEMENT; commarea.startcount(element) += 1; else; commarea.endcount(element) += 1; EndIf; endsl; return returncode; Not on V5R4 & Need to Process XML? Write your own parser in RPG Cumbersome, but may be fun! Invoke Java Parser Methods from RPG using V5R1 support Several samples out on the web There are some non-ibm C and C++ based parsers available Scott Klement iseries port of the Expat C parser See ScottKlement.com for more details See Appendix for details of third party options IBM's XML Toolkit for RPG Provides API interfaces to IBM's C++ parser RPG APIs from the RPG-XML Suite V5R3: SAX Parser built into the ILE COBOL compiler V5R4: XML Generation - Coming to RPG in V5R5??? Partner400, RPG Does XML - V5R4 Language Features - Page: 25-26

Processing XML with RPG

Processing XML with RPG Processing XML with RPG Jon Paris Jon.Paris @ Partner400.com www.partner400.com This presentation may contain small code examples that are furnished as simple examples to provide an illustration. These

More information

Generating XML With RPG

Generating XML With RPG Generating XML With RPG Jon Paris Jon.Paris @ Partner400.com www.partner400.com www.systemideveloper.com This presentation may contain small code examples that are furnished as simple examples to provide

More information

Paramount Insurance Becomes Resilient with System i Page 19. Traditional Roots

Paramount Insurance Becomes Resilient with System i Page 19. Traditional Roots i5 Business Systems ISSUE # 53 APRIL 2006 ASEAN/SA EDITION Enterprise Generation Language Helps Integrate Web Development Page 10 Paramount Insurance Becomes Resilient with System i Page 19 Traditional

More information

ILE Essentials, Part 1 Static Binding and Service Programs

ILE Essentials, Part 1 Static Binding and Service Programs ILE Essentials, Part 1 Static Binding and Service Programs Susan Gantner susan.gantner@partner400.com www.partner400.com SystemiDeveloper.com Your partner in IBM i Education In this session, we will take

More information

A Modern Programmers Tool Set: CODE

A Modern Programmers Tool Set: CODE A Modern Programmers Tool Set: CODE OCEAN Technical Conference Catch the Wave Susan M. Gantner Partner400 susan.gantner @ partner400.com www.partner400.com Your partner in AS/400 and iseries Education

More information

RPG IV Subprocedure Basics

RPG IV Subprocedure Basics RPG IV Subprocedure Basics Jon Paris & Susan Gantner jon.paris@partner400.com susan.gantner@partner400.com www.partner400.com SystemiDeveloper.com Your partner in System i Education The author, Susan Gantner,

More information

A Nerd's Guide to. DATA-INTO in RPG

A Nerd's Guide to. DATA-INTO in RPG A Nerd's Guide to DATA-INTO in RPG Presented by Scott Klement http://www.profoundlogic.com 2018, Scott Klement Two bytes meet. The first byte asks, Are you ill? The second byte replies, No, just feeling

More information

Getting Session Started A58 with APIs. from RPG

Getting Session Started A58 with APIs. from RPG Getting Session Started A58 with APIs from RPG Getting Started with System APIs from RPG Susan Gantner susan.gantner@partner400.com www.partner400.com Your partner in AS/400 and iseries Education The author,

More information

Processing and Creating JSON from RPG

Processing and Creating JSON from RPG Processing and Creating JSON from RPG Jon Paris Jon.Paris @ Partner400.com www.partner400.com www.systemideveloper.com About Me: I am the co-founder of Partner400, a firm specializing in customized education

More information

"Instant" Web Services and Stored Procedures

Instant Web Services and Stored Procedures "Instant" Web Services and Stored Procedures Jon Paris Jon.Paris @ Partner400.com www.partner400.com www.systemideveloper.com Notes Jon Paris is co-founder of Partner400, a firm specializing in customized

More information

RPG Subprocedures Basics

RPG Subprocedures Basics RPG Subprocedures Basics Susan Gantner susan.gantner@partner400.com www.partner400.com SystemiDeveloper.com Your partner in IBM i Education Susan doesn t code subroutines any more. In her opinion, subprocedures

More information

Looking Inside the Developer s Toolkit: Introduction to Processing XML with RPG and SQL Too! Charles Guarino

Looking Inside the Developer s Toolkit: Introduction to Processing XML with RPG and SQL Too! Charles Guarino Looking Inside the Developer s Toolkit: Introduction to Processing XML with RPG and SQL Too! Charles Guarino Central Park Data Systems, Inc. @charlieguarino About The Speaker With an IT career spanning

More information

RPG IV: Subprocedures Beyond the Basics

RPG IV: Subprocedures Beyond the Basics RPG IV: Subprocedures Beyond the Basics Techniques to Leverage Subprocedures OEAN Technical onference atch the Wave Jon Paris jon.paris@partner400.com www.partner400.com Your Partner in AS/400 and iseries

More information

Vendor: IBM. Exam Code: Exam Name: ILE RPG Programmer. Version: Demo

Vendor: IBM. Exam Code: Exam Name: ILE RPG Programmer. Version: Demo Vendor: IBM Exam Code: 000-972 Exam Name: ILE RPG Programmer Version: Demo Questions: 1 Which of the following operation codes is supported in both fixed form and /Free form? A. CALL B. EVALR C. ALLOC

More information

Exam Code: Exam Name: ILE RPG Programmer. Vendor: IBM. Version: DEMO

Exam Code: Exam Name: ILE RPG Programmer. Vendor: IBM. Version: DEMO Exam Code: 000-972 Exam Name: ILE RPG Programmer Vendor: IBM Version: DEMO Part: A 1: Which of the following operation codes is supported in both fixed form and /Free form? A.CALL B.EVALR C.ALLOC D.EXTRCT

More information

RPG IV Subprocedures Basics

RPG IV Subprocedures Basics RPG IV Subprocedures Basics Jon Paris Jon.Paris@Partner400.com www.partner400.com Your Partner in AS/400 and iseries Education Partner400, 2002-2003 Unit 6 - Subprocedures Basics - Page 1-2 What is a Subprocedure?

More information

PASS4TEST. IT Certification Guaranteed, The Easy Way! We offer free update service for one year

PASS4TEST. IT Certification Guaranteed, The Easy Way!   We offer free update service for one year PASS4TEST IT Certification Guaranteed, The Easy Way! \ http://www.pass4test.com We offer free update service for one year Exam : 000-972 Title : ILE RPG Programmer Vendors : IBM Version : DEMO Get Latest

More information

ILE Activation Groups

ILE Activation Groups ILE Activation Groups & Binder Language Susan Gantner susan.gantner@partner400.com www.partner400.com www.systemideveloper.com Your partner in IBM i Education In this session in the ILE Essentials series,

More information

Working with JSON in RPG. (YAJL Open Source JSON Tool)

Working with JSON in RPG. (YAJL Open Source JSON Tool) Working with JSON in RPG (YAJL Open Source JSON Tool) Presented by Scott Klement http://www.scottklement.com 2014-2018, Scott Klement "A computer once beat me at chess, but it was no match for me at kick

More information

Rational Developer for i: What's New in 9.0.1

Rational Developer for i: What's New in 9.0.1 John Fellner, Developer, Rational Developer for i Rational Developer for i: What's New in 9.0.1 TUG Meeting of Members, Jan 22, 2014 Agenda Quick Product Intro What's New in Rational Developer for i v9.0.1

More information

Preface to the Second Edition... xi A Note About Source Entry... xi

Preface to the Second Edition... xi A Note About Source Entry... xi Contents Preface to the Second Edition... xi A Note About Source Entry... xi Chapter 1: Pre Free-Format RPG IV... 1 RPG IV... 1 Extended Factor 2... 2 Built-in Functions... 2 Subprocedures... 3 Other Changes...

More information

The Extensible Markup Language (XML) and Java technology are natural partners in helping developers exchange data and programs across the Internet.

The Extensible Markup Language (XML) and Java technology are natural partners in helping developers exchange data and programs across the Internet. 1 2 3 The Extensible Markup Language (XML) and Java technology are natural partners in helping developers exchange data and programs across the Internet. That's because XML has emerged as the standard

More information

FROM OPNQRYF TO SQL WITH RPG OPEN ACCESS

FROM OPNQRYF TO SQL WITH RPG OPEN ACCESS FROM OPNQRYF TO SQL WITH RPG OPEN ACCESS Alex Krashevsky AEK Solutions, Inc. May 9, 2018 aatkrash@gmail.com https://www.linkedin.com/in/alexkrashevsky-58930bb/ Objectives Getting to see a technical challenge

More information

Charles Guarino

Charles Guarino Looking Inside the Developer s Toolkit: REST Web Services for Everyday RPG and SQL Consumption Charles Guarino REST SERVICES Charles Guarino Twitter @charlieguarino Central Park Data Systems, Inc. About

More information

Brewing Mixed Java and RPG Applications

Brewing Mixed Java and RPG Applications Brewing Mixed Java and RPG Applications Yet More Things You Can o With Prototypes! Jon Paris Jon.Paris @ Partner400.com www.partner400.com Your Partner in AS/400 and iseries Education Agenda Syntax Extensions

More information

Jim Buck Phone Twitter

Jim Buck Phone Twitter Jim Buck Phone 262-705-2832 Email jbuck@impowertechnologies.com Twitter - @jbuck_impower www.impowertechnologies.com Presentation Copyright 2017 impowertechnologies.com 5250 & SEU Doesn t work anymore!

More information

OAR. Open Access for RPG. of KrengelTech. by Aaron Bartell. Copyright Aaron Bartell 2011

OAR. Open Access for RPG. of KrengelTech. by Aaron Bartell. Copyright Aaron Bartell 2011 OAR Open Access for RPG Copyright Aaron Bartell 2011 by Aaron Bartell of KrengelTech aaronbartell@mowyourlawn.com Abstract Open Access for RPG (OAR) has now been out for more than a couple years and is

More information

Some of the functions listed will only work properly on OS/400 V5R2 and higher. Enjoy!

Some of the functions listed will only work properly on OS/400 V5R2 and higher. Enjoy! If you are new to free-format RPG and deal with any kind of character or numeric date data, you have no doubt been frustrated trying to figure out how to convert data from one format to another. Or perhaps

More information

Procedures and Parameters

Procedures and Parameters Procedures and Parameters The Inside Story with Bob Cozzi What are Procedures SubProcedure can be a function or a procedure They can accept parameters and returns values Functions Subprocedures that return

More information

RPG Samples for Rendezvous

RPG Samples for Rendezvous 1 RPG Samples for Rendezvous The Rendezvous installation package for IBM i includes ILE RPG samples (source files and executables). The samples tibrvlisten.rpgle and tibrvsend.rpgle parallel the functionality

More information

Introduction. Chapter 1:

Introduction. Chapter 1: Introduction Chapter 1: SYS-ED/Computer Education Techniques, Inc. Ch 1: 1 SYS-ED/Computer Education Techniques, Inc. 1:1 Objectives You will learn: New features of. Interface to COBOL and JAVA. Object-oriented

More information

Are you covered? New tooling for Quality Assurance

Are you covered? New tooling for Quality Assurance Are you covered? New tooling for Quality Assurance Edmund Reinhardt IBM i Application Development Tooling Edmund.Reinhardt@ca.ibm.com TUG TEC Agenda Key: 23C Agenda What is code coverage Code Coverage

More information

IBM WebSphere Development Studio for iseries V5R4 provides tools to create modern IBM iseries solutions

IBM WebSphere Development Studio for iseries V5R4 provides tools to create modern IBM iseries solutions Software Announcement January 31, 2006 IBM WebSphere Development Studio for iseries V5R4 provides tools to create modern IBM iseries solutions Overview IBM WebSphere Development Studio (WDS) for iseries

More information

WebFacing Applications with. Leonardo LLames IBM Advanced Technical Support Rochester, MN. Copyright IBM 2002 ebusinessforu Pages 1

WebFacing Applications with. Leonardo LLames IBM Advanced Technical Support Rochester, MN. Copyright IBM 2002 ebusinessforu Pages 1 WebFacing 5250 Applications with Leonardo LLames IBM Advanced Technical Support Rochester, MN Copyright IBM 2002 ebusinessforu Pages 1 Disclaimer Acknowledgement: This presentation is a collaborative effort

More information

XML U.S.E.R David Andruchuk Computer Systems Design Associates, Inc. October 26, What can i do..i can do XML

XML U.S.E.R David Andruchuk Computer Systems Design Associates, Inc. October 26, What can i do..i can do XML David Andruchuk Computer Systems Design Associates, Inc. October 26, 2010 What can i do..i can do XML U.S.E.R. equates to UDTFs, SQL, Excel, RPG; all the tools that are present in your workplace environment.

More information

Excel Spreadsheets From RPG With Apache's POI / HSSF

Excel Spreadsheets From RPG With Apache's POI / HSSF Excel Spreadsheets From RPG With Apache's POI / HSSF Session 520059 46GF Presented by Scott Klement http://www.scottklement.com 2007-2008, Scott Klement There are 10 types of people in the world. Those

More information

XII- COMPUTER SCIENCE VOL-II MODEL TEST I

XII- COMPUTER SCIENCE VOL-II MODEL TEST I MODEL TEST I 1. What is the significance of an object? 2. What are Keyword in c++? List a few Keyword in c++?. 3. What is a Pointer? (or) What is a Pointer Variable? 4. What is an assignment operator?

More information

Putting the Pedal to the Metal RDi from *ZERO to *SIXTY. Charles Guarino Central Park Data Systems, Inc.

Putting the Pedal to the Metal RDi from *ZERO to *SIXTY. Charles Guarino Central Park Data Systems, Inc. Putting the Pedal to the Metal RDi from *ZERO to *SIXTY Charles Guarino Central Park Data Systems, Inc. About the Speaker With an IT career spanning over 30 years, Charles Guarino has been a consultant

More information

TIBCO ActiveMatrix BusinessWorks Plug-in for Data Conversion Release Notes

TIBCO ActiveMatrix BusinessWorks Plug-in for Data Conversion Release Notes TIBCO ActiveMatrix BusinessWorks Plug-in for Data Conversion Release Notes Software Release 4.2.0 November 2014 Two-Second Advantage 2 Important Information SOME TIBCO SOFTWARE EMBEDS OR BUNDLES OTHER

More information

Putting the Pedal to the Metal RDi from *ZERO to *SIXTY. Charles Guarino Central Park Data Systems, Inc.

Putting the Pedal to the Metal RDi from *ZERO to *SIXTY. Charles Guarino Central Park Data Systems, Inc. Putting the Pedal to the Metal RDi from *ZERO to *SIXTY Charles Guarino Central Park Data Systems, Inc. About the Speaker With an IT career spanning over 30 years, Charles Guarino has been a consultant

More information

Looking Inside the Developer s Toolkit: Web Services for Everyday RPG Consumption. Charles Guarino XML. Charles Guarino

Looking Inside the Developer s Toolkit: Web Services for Everyday RPG Consumption. Charles Guarino XML. Charles Guarino Looking Inside the Developer s Toolkit: Web Services for Everyday RPG Consumption Charles Guarino XML Charles Guarino Central Park Data Systems, Inc. Copyright Central Park Data Systems, Inc. 1 About the

More information

Featuring: Call Hierarchy and Program Structure diagrams,

Featuring: Call Hierarchy and Program Structure diagrams, IBM Software Group Rational Developer for IBM i (RDi) Application Diagram Viewer Featuring: Call Hierarchy and Program Structure diagrams, Last Update: 9/10/2009 2009 IBM Corporation Agenda Application

More information

.. Cal Poly CPE/CSC 366: Database Modeling, Design and Implementation Alexander Dekhtyar..

.. Cal Poly CPE/CSC 366: Database Modeling, Design and Implementation Alexander Dekhtyar.. .. Cal Poly CPE/CSC 366: Database Modeling, Design and Implementation Alexander Dekhtyar.. XML in a Nutshell XML, extended Markup Language is a collection of rules for universal markup of data. Brief History

More information

Mobile Web from the RPG and Dojo Perspectives

Mobile Web from the RPG and Dojo Perspectives Mobile Web from the RPG and Dojo Perspectives IBM has adopted the open-source Dojo toolkit as its internal standard! Is Open Source relevant to the IBM ILE community? How does Open Source Web and ILE work

More information

SOAP, WSDL, HTTP, XML, XSD, DTD, UDDI - what the?

SOAP, WSDL, HTTP, XML, XSD, DTD, UDDI - what the? SOAP, WSDL, HTTP, XML, XSD, DTD, UDDI - what the? By Aaron Bartell Copyright Aaron Bartell 2013 by Aaron Bartell aaron@mowyourlawn.com Agenda Why are we at this point in technology? XML Holding data the

More information

This is a sample chapter from Brad Stone s training e-rpg Powertools Stone on CGIDEV2 Get your copy of this important training now.

This is a sample chapter from Brad Stone s training e-rpg Powertools Stone on CGIDEV2 Get your copy of this important training now. Stone on CGIDEV2 This is a sample chapter from Brad Stone s training e-rpg Powertools Stone on CGIDEV2 Get your copy of this important training now. With Stone on CGIDEV2 RPG programmers quickly learn

More information

IBM XML Toolkit for z/os and OS/390, V1.5 Supports XML Open Standards for Java and C++ Parsers and Java XSLT Processor

IBM XML Toolkit for z/os and OS/390, V1.5 Supports XML Open Standards for Java and C++ Parsers and Java XSLT Processor Software Announcement February 18, 2003 OS/390, V1.5 Supports XML Open Standards for Java and C++ Parsers and Java XSLT Processor Overview IBM XML Toolkit for z/os and OS/390, V1.5 is designed to provide

More information

Server for IBM i. Dawn May Presentation created by Tim Rowe, 2008 IBM Corporation

Server for IBM i. Dawn May Presentation created by Tim Rowe, 2008 IBM Corporation Integrated Web Application Server for IBM i Dawn May dmmay@us.ibm.com Presentation created by Tim Rowe, timmr@us.ibm.com IBM i integrated Web application server the on-ramp to the Web 2 Agenda Integrated

More information

Calling Watson from RPG

Calling Watson from RPG Calling Watson from RPG Presented by Scott Klement http://www.profoundlogic.com 2017-2019, Scott Klement "Artificial intelligence is about replacing human decision making with more sophisticated techniques"

More information

APPLICATION MODERNIZATION. Brian May IBM i Modernization Specialist

APPLICATION MODERNIZATION. Brian May IBM i Modernization Specialist APPLICATION MODERNIZATION Brian May IBM i Modernization Specialist APPLICATION MODERNIZATION Three critical areas of modernization The future of RPG and Rational Open Access, RPG Edition MVC Modernize

More information

IBM i MSPLIB SMTP Toolkit Reference

IBM i MSPLIB SMTP Toolkit Reference IBM i MSPLIB SMTP Toolkit Reference Version 1 MSPLIB-04 First Edition (February 2003) This edition applies to Version 1, Release 0, Modification Level 0, of the MSP SMTP Toolkit, and to all subsequent

More information

Externally Described SQL -- An SQL iquery API

Externally Described SQL -- An SQL iquery API Externally Described SQL -- An SQL iquery API Introduced as a beta test API in SQL iquery v4r7, Externally Described SQL is a simple set of APIs that provide the ability for RPG programmers to leverage

More information

IBM i Application Development Strategy

IBM i Application Development Strategy IBM i Application Development Strategy Tim Rowe Application Business Architect, Development Environments, IBM i Development New Development Paradigms Graphical User Experiences Grown from GUIs to Experiences

More information

Externally Described SQL -- An SQL iquery API

Externally Described SQL -- An SQL iquery API Externally Described SQL -- An SQL iquery API Introduced as a beta test API in SQL iquery v4r7, Externally Described SQL is a simple set of APIs that provide the ability for RPG programmers to leverage

More information

Compiler Structure. Lexical. Scanning/ Screening. Analysis. Syntax. Parsing. Analysis. Semantic. Context Analysis. Analysis.

Compiler Structure. Lexical. Scanning/ Screening. Analysis. Syntax. Parsing. Analysis. Semantic. Context Analysis. Analysis. Compiler Structure Source Program Text Phases of Compilation Compilation process is partitioned into a series of four distinct subproblems called phases, each with a separate well-defined translation task

More information

Invasion of APIs and the BLOB,

Invasion of APIs and the BLOB, Invasion of APIs and the BLOB, or how I learned to stop worrying and love the acronym. By Eamonn Foley Senior Programmer Analyst Who I Am 15+ Years in Synon/2e DBA, Architect, Developer, Instructor, Consultant,

More information

Consuming Web Services using CA 2E and IBM Tooling

Consuming Web Services using CA 2E and IBM Tooling Consuming Web Services using CA 2E and IBM Tooling Raghunath Daita Senior Software Engineer Abstract Raghunath Daita CA Technologies, Senior Software Engineer Web Services is the buzzword in the IT industry

More information

About the Authors. Preface

About the Authors. Preface Contents About the Authors Acknowledgments Preface iv v xv 1: Introduction to Programming and RPG 1 1.1. Chapter Overview 1 1.2. Programming 1 1.3. History of RPG 2 1.4. Program Variables 6 1.5. Libraries,

More information

A Simple Syntax-Directed Translator

A Simple Syntax-Directed Translator Chapter 2 A Simple Syntax-Directed Translator 1-1 Introduction The analysis phase of a compiler breaks up a source program into constituent pieces and produces an internal representation for it, called

More information

Charles Guarino. About The Speaker

Charles Guarino. About The Speaker Get With The Program! It s Not Your Grandma s RPG Anymore Charles Guarino Twitter @charlieguarino Central Park Data Systems, Inc. About The Speaker With an IT career spanning over 30 years, Charles Guarino

More information

Chapter 3 EXPRESSIONS

Chapter 3 EXPRESSIONS Chapter 3 EXPRESSIONS EXPRESSIONS in RPG 97 NATURAL EXPRESSIONS 97 Priority of Operators 99 Expression Continuation 100 Expressions in Assignment Statements 100 Expressions in Compare Statements 102 Expressions

More information

Graphical debugging makes procedural SQL debugging on IBM i even easier

Graphical debugging makes procedural SQL debugging on IBM i even easier Graphical debugging makes procedural SQL debugging on IBM i even easier Kent Milligan IBM Systems and Technology Group ISV Enablement February 2014 Copyright IBM Corporation, 2014 Table of contents Abstract...1

More information

Using Google API s and Web Service in a CAWI questionnaire

Using Google API s and Web Service in a CAWI questionnaire Using Google API s and Web Service in a CAWI questionnaire Gerrit de Bolster, Statistics Netherlands, 27 September 2010 1. Introduction From the survey department of Traffic & Transport in Statistics Netherlands

More information

SimuSys. Super fast design & prototyping for the iseries 400 a White Paper

SimuSys. Super fast design & prototyping for the iseries 400 a White Paper SimuSys 400 Super fast design & prototyping for the iseries 400 a White Paper Table of contents 1. INTRODUCTION 2. HOW SIMUSYS SAVES TIME AND EFFORT 3. BUILDING PROTOTYPES 4. DOCUMENTING THE DESIGN 5.

More information

CODE TIME TECHNOLOGIES. Abassi RTOS. Porting Document C28X CCS

CODE TIME TECHNOLOGIES. Abassi RTOS. Porting Document C28X CCS CODE TIME TECHNOLOGIES Abassi RTOS Porting Document C28X CCS Copyright Information This document is copyright Code Time Technologies Inc. 2012-2013. All rights reserved. No part of this document may be

More information

Richard Dolewski DR Confessions the Movie: Conducting a Best Practices Audit of Your System i and i5/os Installing a New IBM i Release to Your System

Richard Dolewski DR Confessions the Movie: Conducting a Best Practices Audit of Your System i and i5/os Installing a New IBM i Release to Your System Speaker Excellence Awards 2009 Annual Meeting and Exposition Gold Medal Sessions Richard Dolewski Disaster Recovery Primer - Ready, Set, Plan John Earl IBM i Security by Object Type Randall Munson Success

More information

Ability to define a main procedure which does not use the RPG cycle

Ability to define a main procedure which does not use the RPG cycle v What's New in V3R7? on page xl v What's New in V3R6/V3R2? on page xliv You can use this section to link to and learn about new RPG IV functions. What's New in this Release Note: The information for this

More information

Why are there so many programming languages?

Why are there so many programming languages? Chapter 1 :: Introduction Programming Language Pragmatics, Fourth Edition Michael L. Scott Copyright 2016 Elsevier 1 Chapter01_ Introduction_4e - Tue November 21, 2017 Introduction Why are there so many

More information

SNiFF+ for Eiffel: A new programming environment for Eiffel

SNiFF+ for Eiffel: A new programming environment for Eiffel SNiFF+ for Eiffel: A new programming environment for Eiffel by Jan Willamowius Abstract: Until recently Eiffel developers were stuck with whatever programming environment was (or wasn t) provided by their

More information

Java and i. A Salesforce Recipe: Integrating Java and RPGLE

Java and i. A Salesforce Recipe: Integrating Java and RPGLE Java and i A Salesforce Recipe: Integrating Java and RPGLE Dr. Paul Coleman Systems Integration Consultant paul.coleman@averyinstitute.com April 13, 2011 Introduction Problem: Legacy RPGLE CRM to Salesforce.com

More information

Why are there so many programming languages? Why do we have programming languages? What is a language for? What makes a language successful?

Why are there so many programming languages? Why do we have programming languages? What is a language for? What makes a language successful? Chapter 1 :: Introduction Introduction Programming Language Pragmatics Michael L. Scott Why are there so many programming languages? evolution -- we've learned better ways of doing things over time socio-economic

More information

An Introduction to SQL for System i. A beginning overview of SQL in System i Navigator and Embedded SQL in RPGLE

An Introduction to SQL for System i. A beginning overview of SQL in System i Navigator and Embedded SQL in RPGLE An Introduction to SQL for System i A beginning overview of SQL in System i Navigator and Embedded SQL in RPGLE Quote heard from IBM at a Conference 80% of everything you will need to know three years

More information

Getting Started What?? Plan of Action Features and Function Short demo

Getting Started What?? Plan of Action Features and Function Short demo System & Technology Group WebSphere Development Studio Client for iseries WDSc - An Overview for iseries Developers Daniel Hiebert dhiebert@us.ibm.com St. Louis User Group - Gateway 400 February 9, 2005

More information

The Xlint Project * 1 Motivation. 2 XML Parsing Techniques

The Xlint Project * 1 Motivation. 2 XML Parsing Techniques The Xlint Project * Juan Fernando Arguello, Yuhui Jin {jarguell, yhjin}@db.stanford.edu Stanford University December 24, 2003 1 Motivation Extensible Markup Language (XML) [1] is a simple, very flexible

More information

Charles Guarino. About The Speaker

Charles Guarino. About The Speaker A Walk Through RDi Starting at Go! (Rational Developer for i) Charles Guarino Central Park Data Systems, Inc. About The Speaker With an IT career spanning over 30 years, Charles Guarino has been a consultant

More information

Installing WDI v3.3 on z/os

Installing WDI v3.3 on z/os IBM Software Group Installing WDI v3.3 on z/os Jon Kirkwood WDI/WPG L2 support WebSphere Support Technical Exchange Agenda Software requirements Install steps Migration considerations Operational changes

More information

Defining Program Syntax. Chapter Two Modern Programming Languages, 2nd ed. 1

Defining Program Syntax. Chapter Two Modern Programming Languages, 2nd ed. 1 Defining Program Syntax Chapter Two Modern Programming Languages, 2nd ed. 1 Syntax And Semantics Programming language syntax: how programs look, their form and structure Syntax is defined using a kind

More information

Absolute C++ Walter Savitch

Absolute C++ Walter Savitch Absolute C++ sixth edition Walter Savitch Global edition This page intentionally left blank Absolute C++, Global Edition Cover Title Page Copyright Page Preface Acknowledgments Brief Contents Contents

More information

C++ (Non for C Programmer) (BT307) 40 Hours

C++ (Non for C Programmer) (BT307) 40 Hours C++ (Non for C Programmer) (BT307) 40 Hours Overview C++ is undoubtedly one of the most widely used programming language for implementing object-oriented systems. The C++ language is based on the popular

More information

Page 1 of 6. tpfdf/rt/readme_sdo.txt. Service Data Objects (SDO) Access to z/tpfdf - PUT 05

Page 1 of 6. tpfdf/rt/readme_sdo.txt. Service Data Objects (SDO) Access to z/tpfdf - PUT 05 Page 1 of 6 tpfdf/rt/readme_sdo.txt Service Data Objects (SDO) Access to z/tpfdf - PUT 05 Copyright International Business Machines Corporation 2008. All Rights Reserved US Government Users Restricted

More information

OmniFind, Part II: Integrating OmniFind Text Search Server with DB2 Web Query

OmniFind, Part II: Integrating OmniFind Text Search Server with DB2 Web Query OmniFind, Part II: Integrating OmniFind Text Search Server with DB2 Web Query Published Wednesday, 08 July 2009 01:00 by MC Press On-line [Reprinted with permission from itechnology Manager, published

More information

Charles Guarino

Charles Guarino Raising the Bar: A Jumpstart to Using SOAP Web Services in RPG Charles Guarino SOAP SERVICES Charles Guarino Twitter @charlieguarino Central Park Data Systems, Inc. About The Speaker With an IT career

More information

COMPILER DESIGN LECTURE NOTES

COMPILER DESIGN LECTURE NOTES COMPILER DESIGN LECTURE NOTES UNIT -1 1.1 OVERVIEW OF LANGUAGE PROCESSING SYSTEM 1.2 Preprocessor A preprocessor produce input to compilers. They may perform the following functions. 1. Macro processing:

More information

XML: Managing with the Java Platform

XML: Managing with the Java Platform In order to learn which questions have been answered correctly: 1. Print these pages. 2. Answer the questions. 3. Send this assessment with the answers via: a. FAX to (212) 967-3498. Or b. Mail the answers

More information

XML. Rodrigo García Carmona Universidad San Pablo-CEU Escuela Politécnica Superior

XML. Rodrigo García Carmona Universidad San Pablo-CEU Escuela Politécnica Superior XML Rodrigo García Carmona Universidad San Pablo-CEU Escuela Politécnica Superior XML INTRODUCTION 2 THE XML LANGUAGE XML: Extensible Markup Language Standard for the presentation and transmission of information.

More information

XML Filtering Technologies

XML Filtering Technologies XML Filtering Technologies Introduction Data exchange between applications: use XML Messages processed by an XML Message Broker Examples Publish/subscribe systems [Altinel 00] XML message routing [Snoeren

More information

COMPILER CONSTRUCTION LAB 2 THE SYMBOL TABLE. Tutorial 2 LABS. PHASES OF A COMPILER Source Program. Lab 2 Symbol table

COMPILER CONSTRUCTION LAB 2 THE SYMBOL TABLE. Tutorial 2 LABS. PHASES OF A COMPILER Source Program. Lab 2 Symbol table COMPILER CONSTRUCTION Lab 2 Symbol table LABS Lab 3 LR parsing and abstract syntax tree construction using ''bison' Lab 4 Semantic analysis (type checking) PHASES OF A COMPILER Source Program Lab 2 Symtab

More information

Fundamental Concepts and Definitions

Fundamental Concepts and Definitions Fundamental Concepts and Definitions Identifier / Symbol / Name These terms are synonymous: they refer to the name given to a programming component. Classes, variables, functions, and methods are the most

More information

Programming Languages Third Edition. Chapter 7 Basic Semantics

Programming Languages Third Edition. Chapter 7 Basic Semantics Programming Languages Third Edition Chapter 7 Basic Semantics Objectives Understand attributes, binding, and semantic functions Understand declarations, blocks, and scope Learn how to construct a symbol

More information

XML Toolkit for z/os SA

XML Toolkit for z/os SA XML Toolkit for z/os User s Guide SA22-7932-06 XML Toolkit for z/os User s Guide SA22-7932-06 Note Before using this information and the product it supports, be sure to read the general information under

More information

In the old days, our beloved server was, in many cases, the only one used by the company to perform its business. That s no longer true.

In the old days, our beloved server was, in many cases, the only one used by the company to perform its business. That s no longer true. Introduction In the old days, our beloved server was, in many cases, the only one used by the company to perform its business. That s no longer true. IBM i is no longer an island. This book is about building

More information

Simply Java Programming: An Application Driven, Tutorial

Simply Java Programming: An Application Driven, Tutorial Simply Java Programming: An Application Driven, Tutorial st Approach, 1 Edition 2004 Georgia Competency-Based Curriculum Frameworks, Career & Technical Education, Information Technology, Programming and

More information

Test Driven Development Best practices applied to IBM i with the assistance of tooling. Barbara Morris RPG compiler lead Edmund Reinhardt RDi lead

Test Driven Development Best practices applied to IBM i with the assistance of tooling. Barbara Morris RPG compiler lead Edmund Reinhardt RDi lead Test Driven Development Best practices applied to IBM i with the assistance of tooling Barbara Morris RPG compiler lead Edmund Reinhardt RDi lead The Vision IBM i developers are able to confidently change

More information

Web-enable a 5250 application with the IBM WebFacing Tool

Web-enable a 5250 application with the IBM WebFacing Tool Web-enable a 5250 application with the IBM WebFacing Tool ii Web-enable a 5250 application with the IBM WebFacing Tool Contents Web-enable a 5250 application using the IBM WebFacing Tool......... 1 Introduction..............1

More information

looksoftware support for IBM Open Access for RPG Todd Ferguson & Nick Hampson

looksoftware support for IBM Open Access for RPG Todd Ferguson & Nick Hampson looksoftware support for IBM Open Access for RPG Todd Ferguson & Nick Hampson 2 ROA natively supports multi-channel green handler OA lnterface mobile Business Logic thin DB Access smart Web Services About

More information

IBM i MSPLIB Websphere MQ Toolkit Reference

IBM i MSPLIB Websphere MQ Toolkit Reference IBM i MSPLIB Websphere MQ Toolkit Reference Version 1 MSPLIB-13 First Edition (June 2006) This edition applies to Version 1, Release 0, Modification Level 0, of the MSP Websphere MQ Toolkit, and to all

More information

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS Objective PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS Explain what is meant by compiler. Explain how the compiler works. Describe various analysis of the source program. Describe the

More information

System i5: Maximizing Performance and Availability

System i5: Maximizing Performance and Availability System i5: Maximizing Performance and Availability Amy Anderson Rochester Executive Briefing Center aha@us.ibm.com Agenda Historical perspective on performance and availability management Performance tools

More information

LANGUAGE PROCESSORS. Introduction to Language processor:

LANGUAGE PROCESSORS. Introduction to Language processor: LANGUAGE PROCESSORS Introduction to Language processor: A program that performs task such as translating and interpreting required for processing a specified programming language. The different types of

More information

Introduction to JavaScript p. 1 JavaScript Myths p. 2 Versions of JavaScript p. 2 Client-Side JavaScript p. 3 JavaScript in Other Contexts p.

Introduction to JavaScript p. 1 JavaScript Myths p. 2 Versions of JavaScript p. 2 Client-Side JavaScript p. 3 JavaScript in Other Contexts p. Preface p. xiii Introduction to JavaScript p. 1 JavaScript Myths p. 2 Versions of JavaScript p. 2 Client-Side JavaScript p. 3 JavaScript in Other Contexts p. 5 Client-Side JavaScript: Executable Content

More information