150 likes | 273 Views
Introducing NetRexx. IBM ISV Independent Software Vendors Technical Information Days 27.09. – 28.09.2011, Linz, Austria Thomas.Schneider@thsitc.com www.thsitc.com. NetRexx – the easier way to program the Java Virtual Machine (JVM). General purpose programming language
E N D
Introducing NetRexx IBM ISV Independent Software Vendors Technical Information Days 27.09. – 28.09.2011, Linz, Austria Thomas.Schneider@thsitc.com www.thsitc.com
NetRexx – the easier way to program the Java Virtual Machine (JVM) • General purpose programming language • Inspired by IBM Rexx and Java • Designed for PEOPLE, *not* Computers • Originally designed & implemented by Mike F. Cowlishaw, IBM Fellow, IBM UK Laboratories (who is also the father and author of IBM Rexx) • Now OPEN SOURCE, maintained by RexxLA
NetRexx – the more human oriented way to program the JVM • Readable Syntax • Readable by all kind of programmers • May they know Rexx, PL/I, COBOL, RPG, Java, BASIC, C, or whatever • NetRexx Introduction course lasts 1 day! • Next course scheduled for 25.10.2011, IBM Forum Vienna, Austria
NetRexx derives from Java (1) • Static typing • A type may be any Java primitive type • *or* a user defined class • *or* a Java system class • *or* any class of any used Java-Library • Java Libraries stored in so called .JAR files
NetRexx derives from Java (2) • Object Model (including classes, interfaces, etc) • Exception Handling • All Exceptions might be CATCHED • Robust Trace-Back in case of an error (un-catched exception) • Robust initialization and finalization of any used objects • Sophisticated garbage collection mechanisms • Just in Time (JIT) Compilation
NetRexx derives from Rexx (1) • Ease of Syntax & Semantics • Powerful String Operations (abut, blank separated, concatenated) • Powerful PARSE Statement to separate a STRING into it‘s components • Ease of access to ASSOCIATIVE storage (called Stems in Rexx, called Indexed Strings in NetRexx, but functionally equivalent)
NetRexx derives from Rexx (2) • Concise set of INSTRUCTIONS • Readable, and thus self-documenting • No semicolon needed to end an instruction • Special character (-) used to indicate continuation of an instruction at the next line • Note (inline comment) may follow the instruction (denoted by --)
NetRexx derives from Rexx (3) • Comments denoted by /* … */ • As, for instance, also in PL/I, Java, or C • But: • Comments may be NESTED (unlike PL/I, or Java) • Thus allowing to quickly out-comment pieces of code, for instance for tests, without the need to retype a lot of /* … */ pairs!
NetRexx derives from Rexx (4) • Builtin DECIMAL ARITHMETIC • With any arbitrary PRECISION (Pi with 40 decimals, for instance) • Hence: • No Rounding errors due to binary arithmetic • Decimal Arithmetic optionally performed by special Hardware Chip (IBM zOS 10) • Real Break-Thru for programming Computers
NetRexx derives from Rexx (5) • Concise SET of INSTRUCTIONS • DO … END for groups of instructions (no braces as in Java, or C dialects) • LOOP … END for repetitions (new in NetRexx) • LOOP WHILE condition • LOOP UNTIL condition • LOOP FOR 16 (repeat 16 times) • LOOP i=15 to 33 by 2 (indexed loop) • All sub-clauses above may be combined in single LOOP statement, or used by their own
NetRexx derives from Rexx (6) • Concise SET of INSTRUCTIONS • IF condition THEN instruction [ELSE instruction] • SELECT • WHEN condition1 THEN … • WHEN condition2 THEN … • OTHERWISE instructions • SELECT CASE selector (may be any type, even Strings) • WHEN selector1 THEN … • WHEN selector2 THEN … • WHEN selector3 THEN … • OTHERWISE instructions
NetRexx might be used (1) • As an INTERPRETER (for quick program development and tests) • As a COMPILER • The so called TRANSLATOR is always the same • Hence, no language differences for interpreted SCRIPTS vs. COMPILED Modules (as JavaScript vs. Java)
NetRexx might be used (2) • Directly via command from the console • Thru one of the currently supported Integrated Development Environments • jEDIT PLUGIN NetRexxScript (Interpreter) • jEDIT PLUGIN NetRexxDE (Compilation) • ECLIPSE PLUGIN (Interpreting, Translation, Compilation, Project Management)
NetRexx Sources of Information • www.netrexx.org – the NetRexx home-page • www.rexxla.org – the Rexx Language Associations home-page • www.kenai.com, project netrexx • Netrexx developers group • Issues and bug reporting • Advance release („next“ versions) • ibm-netrexx@hursley.ibm.com • The NetRexx users group (Questions and Answers)
NetRexx – the easier way • Thank you for your attention • Contact us for further informations • and/or trainings • Thomas.Schneider@thsitc.com • www.thsitc.com