Give me a lever long enough and a fulcrum on which to place it, and - - PowerPoint PPT Presentation

give me a lever long enough and a fulcrum on which to
SMART_READER_LITE
LIVE PREVIEW

Give me a lever long enough and a fulcrum on which to place it, and - - PowerPoint PPT Presentation

Give me a lever long enough and a fulcrum on which to place it, and I shall move the world. - Archimedes Team Members Project Manager - Roy Hermann Language Guru - Chaiwen Chou System Architect - Mahd Tauseef System Engineer - Zissis


slide-1
SLIDE 1

“Give me a lever long enough and a fulcrum on which to place it, and I shall move the world.” - Archimedes

slide-2
SLIDE 2

Project Manager - Roy Hermann Language Guru - Chaiwen Chou System Architect - Mahd Tauseef System Engineer - Zissis Konstas Verification and Validation - Eden Dolev

Team Members

slide-3
SLIDE 3
  • High-level programming language for retrieving

useful information from the abundance of data that is available through social networks.

What is Lever?

slide-4
SLIDE 4

Why Lever?

slide-5
SLIDE 5

Lever is….

Simple Weakly typed Powerful Concise

slide-6
SLIDE 6

Language Guru

Chaiwen Chou

slide-7
SLIDE 7

$ ./leverc HelloWorld.lever $ ./lever HelloWorld

Hello World!

1 program { 2 output “helloworld”; 3 } HelloWorld.lever Compile and run in unix shell

slide-8
SLIDE 8

Lever Social Constructs

1 program { 2 var topic = #input; 3 var user = @input; 4 var result = get topic, user; 5 output result; 6 } SimpleProgram.lever

@pratapabhyudaya - Conservatives touch 300 mark #ConservativesMustWin #UKElectionsFri May 08 03:21:59 EDT 2015 @CidobBarcelona - .@oopenblog: triunfo personal de Cameron limita el impacto de la ala derecha del partido conservador #UKelectionsFri

example output:

slide-9
SLIDE 9

System Architect

Mahd Tauseef

slide-10
SLIDE 10

Translator Architecture

slide-11
SLIDE 11

Translator Walkthrough

program {

  • utput “hello world”;

}

slide-12
SLIDE 12

Translator Walkthrough

Semantic Check Symbol Table Identifier Type a String Code Generator

.java file

1 // HelloWorld.lever 2 program { 3 var a = “hello world”; 4 output a; 5 }

slide-13
SLIDE 13

Systems Engineer

Zissis Konstas

slide-14
SLIDE 14

Development and Runtime Environment

slide-15
SLIDE 15

Antlr 4 - Compiler Generation Tool

Lexer Parser Grammar Lexer Rules Node Visitor Listener

slide-16
SLIDE 16

Verification and Validation

Eden Dolev

slide-17
SLIDE 17

Automated Testing

  • Bash
  • Test Cases
  • Bugs
slide-18
SLIDE 18

Sample Test Output

/* Test for: WHILE LOOPS Expected output: "YES\nYES\nYES\nYES\n" */ program { var counter = 1; while(counter <= 3) {

  • utput "YES";

counter++; } while(counter <=6) counter++; if(counter == 7) {

  • utput "YES";

} else {

  • utput "NO: braceless while failed\n";

} }

whileLoopTest.lever example output:

user$ ./tester ifTest.lever whileLoopTest.lever testing... Compiling Lever into intermediate code... Compiling and JARing API... Compiling program... Removing intermediate files... ifTest.lever compiled successfully! Compiling Lever into intermediate code... Compiling and JARing API... Compiling program... Removing intermediate files... whileLoopTest.lever compiled successfully! FAILURE - ifTest.lever - Exp:YES YES YES Act:YES YES NO: Third if statement failed. SUCCESS - whileLoopTest.lever 0 compile-errors, 0 runtime-errors, 1 failures and 1 successes

slide-19
SLIDE 19

Live Demo - UK Elections

slide-20
SLIDE 20

Conclusions

  • Eden Dolev
  • Zissis Konstas
  • Mahd Tauseef
  • Chaiwen Chou
  • Roy Hermann