arcascript language academic language grammar n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
ArcaScript Language: Academic Language Grammar PowerPoint Presentation
Download Presentation
ArcaScript Language: Academic Language Grammar

Loading in 2 Seconds...

play fullscreen
1 / 19

ArcaScript Language: Academic Language Grammar - PowerPoint PPT Presentation


  • 97 Views
  • Uploaded on

ArcaScript Language: Academic Language Grammar. CS 4800 By Brandon Andrews. Introduction. Specifications Goals Applications Design Steps Testing. Specifications.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

ArcaScript Language: Academic Language Grammar


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
introduction
Introduction

Specifications

Goals

Applications

Design Steps

Testing

specifications
Specifications

Create the grammar for a strongly typed imperative language that merges features of common languages like ECMAscript, and C# and others.

Braces language

Grammar will be in EBNF notation

goals
Goals

To create a complete grammar for a language.

Try to make it unambiguous if possible.

applications
Applications

The languages could act as a scripting language running in a virtual machine or be compiled.

I plan to use it for a scripting language for a game’s GUI.

design
Design

Broken the design down into parts and solved each part mostly separately.

Data Types, Allocators (new/delete when not garbage collected), Constant Types, Control Structures, Namespaces, OOP (classes, methods, etc.), Iterators, Exception Handling, Threading, Function “Pointers”, Macro Preprocessor, and Remote Procedure Call functionality built into the language.

data types
Data Types

Strongly type

bool, char, string, uint, int, uint<n>, int<n>, float, double, enum

Tuple and NamedTuple

Simple data types

Constant modifiers (apply to immediate right)

Reference types

int<8> foo = 5; // can change

int<8>& foo = bar; // can change

const int<8> foo = 5; // value can't change

int8 const& foo = bar; // reference can't

// change

const int<8> const& foo = bar; // reference and value

// can't change

control structures
Control Structures

if, else, while, for, do, switch, case, default, break, continue

namespaces
Namespaces

ECMAscript and C# both have them

namespace Name { }

using Name;

Uses :: as the scope operator for namespaces and classes.

slide10
OOP

Normal class structure

public, private, protected, static, abstract modifiers

modifier class Name : InheritedClass … { }

methods
Methods

Methods with support for pass by value, reference, and name allowing automatic macro generation even at run-time.

Optional and Named parameters

void Foo(intfoo, name);

Where data types without types are pass by name with explicit conversion from strings for run-time purposes

Tuple and “NamedTuple” return types allowing things like:

return x, y; or return x:0, y:0;

iterators
Iterators

foreach mixed with the yield language feature like in C# and Python

(yield can be abused, but it’s very useful).

exception handling
Exception Handling

try, catch, finally, throw features

threading
Threading

Designed in mind for user level and kernel level threads.

Thread keyword with operations in it’s class namespace like Thread.Wait(10); to wait the current thread.

function pointers
Function Pointers

Delegate system taken from C#.

macro preprocessor
Macro Preprocessor

Language feature like

#{ }

Allows for compile-time and run-time compilation of code.

remote procedure call
Remote Procedure Call

Complicated.

Allows Server and Client communications seamlessly between scripts.

testing
Testing

Manual testing using sample programs.

conclusion
Conclusion

While just being the grammar for the language, the main goal later would be to implement it for actual applications.

Currently most of the language features are decided upon and the style for certain parts of the grammar are designed.