JO - JSON Object Language Reference Manual Team [ { Name ...

[Pages:298]JO - JSON Object Language Reference Manual

Team [ { "Name" : "Abhinav Bajaj", "UNI" : "ab3900", "Role" : "System Architect" },

{ "Name" : "Arpit Gupta", "UNI" : "ag3418", "Role" : "Language Guru" }, { "Name" : "Chase Larson", "UNI" : "col2107", "Role" : "Manager" },

{ "Name" : "Sriharsha Gundappa", "UNI" : "sg3163", "Role" : "Verification & Validation" } ]

CONTENTS

1. Introduction 2. Language Tutorial

a. Program Execution b. Variable declaration c. Operators d. Control Flow e. Function Declaration 3. Reference Manual a. Intorduction b. Lexical Convention c. Type and Type Inference d. Operators e. Expressions f. Statement g. Scope h. Built-in functions 4. Project Plan a. Process b. Style guide c. Software environment d. Team Role e. Timeline f. Project Log 5. Architecture Design a. Pre processor b. Scanner c. Parser d. Analyzer e. Symbol Table f. Code Generation g. Team Contribution 6. Test Plan a. Test suite automation b. Test case selection c. Test suites d. Example programs 7. Lessons Learned 8. Appendix

1. INTRODUCTION

JSON or JavaScript Object Notation is an open standard format that uses human-readable text to transmit data objects consisting of attribute?value pairs. It is used as lightweight data interchange format to transmit data between a server and web application. JSON is also emerging as a preferred format in "NoSQL" databases. While languages like Python and Java have libraries to handle JSON data, they are not a native aspect of the language. JSON is presently a data format, rather than something fundamental to the language, like the object of an object oriented language, or the function of a functional language. With rise of trends in Big Data, Internet of Things, No-SQL databases, we believe that our language can provide a platform for building applications for these technologies with ease.

JO is simple yet powerful language to handle and manipulate JSON data. The language will treat JSON object as first class citizens and provide built-in functions that operate on these objects. These basic functions can be used to define complex libraries and applications like merging JSON, finding diff in JSON, SQL like queries on JSON objects. Our language attempts to facilitate any data operations by handling a lot of the business logic of handling JSON and their manipulations under the hood, and allowing the programmer to use JSON in a more native and intuitive way.

2. Language Tutorial

2 .1 P rogram Execution

All programs in JO require a main function. The main function is called first upon executing a program and has no return statement.

func main () [your code]

end

To Compile and run a JO program, run the following shell script: To compile and run a JO program, run the following script: ./runjo.sh

2 .2 Variable Initialization

Variables are declared using the "=" sign. The type is inferred and does not need to be specified upon declaration. The following is an example declaration of each type supported in JO.

String

Numbe r JSON Lis t Boolean null

a = "Hello World"

b = 10 c = #{"name":"harsha"}# d = [4,6,"seven"] e = true f = null

2.3 Operators

2.3.1 Basic Operators The following comparison operators work on all data types.

If a = 3 and b = 2:

Equality Not Equals

a == b a != b

returns false returns true

JO supports mathematical operations on Numbers.

Addition

Subtraction Multiplication Divis ion Modulo Greater Than Less Than

a ++ b

a -- b a ** b a // b a %% b a > b a < b

returns 5

returns 1 returns 6 returns 1.5 returns 1 returns true returns false

Greater Than Equal To Less Than Equal To

a >= b a ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download