CS 4800 By Brandon Andrews.  Specifications  Goals  Applications  Design Steps  Testing.

Slides:



Advertisements
Similar presentations
Lecture Computer Science I - Martin Hardwick The Programming Process rUse an editor to create a program file (source file). l contains the text of.
Advertisements

What's new in Microsoft Visual C Preview
Programming Languages and Paradigms
C# Language Report By Trevor Adams. Language History Developed by Microsoft Developed by Microsoft Principal Software Architect Principal Software Architect.
C++ Programming Languages
C++ Basics Variables, Identifiers, Assignments, Input/Output.
OOP in Java Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Names and Scopes CS 351. Program Binding We should be familiar with this notion. A variable is bound to a method or current block e.g in C++: namespace.
Principles of Object-Oriented Software Development The language Java.
C#.NET C# language. C# A modern, general-purpose object-oriented language Part of the.NET family of languages ECMA standard Based on C and C++
CS-341 Dick Steflik Introduction. C++ General purpose programming language A superset of C (except for minor details) provides new flexible ways for defining.
OOP in Java Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
March 2005Java Programming1. March 2005Java Programming2 Why Java? Platform independence Object Oriented design Run-time checks (fewer bugs) Exception.
Differences between C# and C++ Dr. Catherine Stringfellow Dr. Stewart Carpenter.
Principles of Computer Programming (using Java) Review Haidong Xue Summer 2011, at GSU.
Programming Languages and Paradigms Object-Oriented Programming.
CS 192 Lecture 3 Winter 2003 December 5, 2003 Dr. Shafay Shamail.
“is a”  Define a new class DerivedClass which extends BaseClass class BaseClass { // class contents } class DerivedClass : BaseClass { // class.
1 Identifiers  Identifiers are the words a programmer uses in a program  An identifier can be made up of letters, digits, the underscore character (
Introduction to Object Oriented Programming. Object Oriented Programming Technique used to develop programs revolving around the real world entities In.
Distributed Systems (236351) Tutorial 1 - Getting Started with Visual Studio C#.NET.
1 Chapter 10: Data Abstraction and Object Orientation Aaron Bloomfield CS 415 Fall 2005.
Putting it all together: LINQ as an Example. The Problem: SQL in Code Programs often connect to database servers. Database servers only “speak” SQL. Programs.
The Java Programming Language
Programming Language C++ Xulong Peng CSC415 Programming Languages.
CS212: Object Oriented Analysis and Design Lecture 6: Friends, Constructor and destructors.
Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.
Netprog: Java Intro1 Crash Course in Java. Netprog: Java Intro2 Why Java? Network Programming in Java is very different than in C/C++ –much more language.
Computer Science and Software Engineering University of Wisconsin - Platteville 2. Pointer Yan Shi CS/SE2630 Lecture Notes.
C# D1 CSC 298 Elements of C# code (part 2). C# D2 Writing a class (or a struct)  Similarly to Java or C++  Fields: to hold the class data  Methods:
Basic Semantics Associating meaning with language entities.
E FFECTIVE C# 50 Specific Ways to Improve Your C# Second Edition Bill Wagner محمد حسین سلطانی.
C++ History C++ was designed at AT&T Bell Labs by Bjarne Stroustrup in the early 80's Based on the ‘C’ programming language C++ language standardised in.
Advanced Java Programming CS 537 – Data Structures and Algorithms.
CS 2130 Lecture 5 Storage Classes Scope. C Programming C is not just another programming language C was designed for systems programming like writing.
Introduction to C#. Why C#? Develop on the Following Platforms ASP.NET Native Windows Windows 8 / 8.1 Windows Phone WPF Android (Xamarin) iOS (Xamarin)
C# Classes and Inheritance CNS 3260 C#.NET Software Development.
Computing with C# and the.NET Framework Chapter 2 C# Programming Basics ©2003, 2011 Art Gittleman.
Variables and Data Types.  Variable: Portion of memory for storing a determined value.  Could be numerical, could be character or sequence of characters.
Processes CS 6560: Operating Systems Design. 2 Von Neuman Model Both text (program) and data reside in memory Execution cycle Fetch instruction Decode.
C Sharp Web & Internet Programming Group Diana, Aren, Jeff, & Adam, Farrin 5/5/20081CS 311.
Bill Campbell, UMB Microsoft's.NET C# and The Common Language Runtime.
Copyright © 2015 Curt Hill Java for Minecraft Those things you should know.
Server-Side C++ Mapping Copyright © ZeroC, Inc. Ice Programming with C++ 6. Server-Side C++ Mapping.
CS-1030 Dr. Mark L. Hornick 1 Basic C++ State the difference between a function/class declaration and a function/class definition. Explain the purpose.
Quick Review of OOP Constructs Classes:  Data types for structured data and behavior  fields and methods Objects:  Variables whose data type is a class.
Exception Handling How to handle the runtime errors.
C# Fundamentals An Introduction. Before we begin How to get started writing C# – Quick tour of the dev. Environment – The current C# version is 5.0 –
Object Oriented Programming Lecture 2: BallWorld.
 It is a pure oops language and a high level language.  It was developed at sun microsystems by James Gosling.
C++ Lesson 1.
C# for C++ Programmers 1.
Data types Data types Basic types
Methods Attributes Method Modifiers ‘static’
Review: Two Programming Paradigms
University of Central Florida COP 3330 Object Oriented Programming
Computing with C# and the .NET Framework
C++ History C++ was designed at AT&T Bell Labs by Bjarne Stroustrup in the early 80's Based on the ‘C’ programming language C++ language standardised in.
Reserved Words.
C# In many ways, C# looks similar to Java
null, true, and false are also reserved.
Conditional Statements
Introduction to Java Programming
An overview of Java, Data types and variables
JavaScript Reserved Words
Prof. Bhushan Trivedi Director GLS Institute of Computer Technology
Module 2 Variables, Assignment, and Data Types
Welcome back to Software Development!
C Language B. DHIVYA 17PCA140 II MCA.
SPL – PS1 Introduction to C++.
Presentation transcript:

CS 4800 By Brandon Andrews

 Specifications  Goals  Applications  Design Steps  Testing

 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

 To create a complete grammar for a language.  Try to make it unambiguous if possible.

 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.

 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.

 Strongly type  bool, char, string, uint, int, uint, int, float, double, enum  Tuple and NamedTuple  Simple data types  Constant modifiers (apply to immediate right)  Reference types int foo = 5; // can change int & foo = bar; // can change const int foo = 5; // value can't change int8 const& foo = bar; // reference can't // change const int const& foo = bar; // reference and value // can't change

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

 ECMAscript and C# both have them  namespace Name { }  using Name;  Uses :: as the scope operator for namespaces and classes.

 Normal class structure  public, private, protected, static, abstract modifiers  modifier class Name : InheritedClass … { }

 Methods with support for pass by value, reference, and name allowing automatic macro generation even at run-time.  Optional and Named parameters  void Foo(int foo, 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;

 foreach mixed with the yield language feature like in C# and Python  (yield can be abused, but it’s very useful).

 try, catch, finally, throw features

 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.

 Delegate system taken from C#.

 Language feature like  #{ }  Allows for compile-time and run-time compilation of code.

 Complicated.  Allows Server and Client communications seamlessly between scripts.

 Manual testing using sample programs.

 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.