Obix programming language documentation

Christian Neumanns


Table of Contents

Obix programming language tutorial
Preface
I. Simplicity
1. Creating a web application with data stored in a database
Step 1: Creating a new project
Step 2: Writing source code for task objects
Step 3: Adding persistence to store objects in a database
Step 4: Creating a web interface to manage tasks
Bonus 1: Adding a web interface to directly manipulate database tables
Bonus 2: Creating a command line utility to manage tasks in a terminal window
Summary of development steps
II. Versatility
2. Different ways to create and execute code
Executing a single instruction
Executing Obix script files
Executing Java source code in an Obix script
Developing a standalone PC application
Developing a web application
Overview
Servlet web application
JSP web application
Further information
The Obix developer console
III. Reliability
3. Basic concepts and concepts for more reliable code
The 'Random arcs' application
Step 1: Create a new application
Step 2: Creating objects
Step 3: Unit testing
Advantages (so far)
Step 4: Making data more reliable and secure
Step 5: Object conversions and error handling
Step 6: File input/output
Step 7: Creating the 'random arcs' picture
Step 8: Testing the application
IV. Productivity
4. Interacting with applications (PAIOF framework)
Application input output interfaces
What we could do ...
What we will do ...
Using PAIOF to quickly make your application usable
Creating a command line utility
Getting input values from different sources
Output destinations, formats and contents
Executing lists of commands
Embedded web services
Customizing PAIOF
Obix programming language manual
Preface
What is Obix?
About this manual
I. Fundamental concepts
1. Root software elements
Type
Object
Factory
Service
Summary
2. Source code
Source code files
Libraries
3. Simple example
II. Concepts for more reliable code
4. Contract Programming, also called Design by Contract (TM)
5. Testing
6. Void values
7. Object immutability
8. Static typing
9. Generic types
10. Feature redefinition
11. Runtime error handling
Introduction
Program error
Resource error
User input error
See also
12. Type inheritance
13. Source code templates
14. Enumerated data type
15. Embedded Java source code
III. Language reference
16. Syntax
Case sensitivity
Identifiers
Simple identifier
Prefixed identifier
Comments
Single-line comment
Multi-line comment
Line continuation
Literals
String literal
Integer literal
Yes_no literal
Character literal
Void literal
17. Root software elements (RSEs)
Type
Factory
Service
18. RSE features
Attribute
Command
Creator
Event
19. Scripts
Introduction to scripts
Command script
Attribute get script
Attribute set script
Check scripts
attribute_check script
Attribute check script
Command in_check script
Input argument check script
Command out_check script
Output argument check script
Default scripts
Attribute default script
Input argument default script
test script
20. Script instructions
Assignments
Variable declaration instruction
Constant declaration instruction
Assignment instruction
Assignment tail
Script execution
Object command execution instruction
Script execution instruction
Script execution tail
Flow control
if then else instruction
case type of instruction
exit script instruction
Loops
repeat while instruction
repeat for each instruction
repeat from to instruction
repeat times instruction
repeat forever instruction
repeat tail
exit repeat instruction
next repeat instruction
Events
generate event instruction
on event instruction
stop event handler instruction
Error handling
check instruction
check script instruction
error instruction
condition
error info
Testing
test instruction
verify instruction
verify error instruction
Embedded Java source code
java instruction
21. Expressions and operators
Obix's Extended Backus-Naur Form (EBNF)
1. Introduction
2. EBNF symbols used in this document
3. Obix's EBNF
Obix articles
The Fail fast! principle: Debug less and produce more reliable software
Why Obix? Reliable code and software developer productivity
Obix's 24 Fail fast! concepts for more reliable software
The Obix programming language: more reliable code in less time