The TASKADE Programming Language by TEAM 9 Andrey Dimitrov - Project manager Christopher Riedered - Language Guru Avner May - System Architect Joyce Kim - System Inegrator Taury Di Cioccio - System Tester
TASKADE When life gives you tasks...
Conventional scheduling applications are context specific. TAKSADE allows the user to program their own context is a simple and intuitive language. Taskade Usage
Students and Professionals can use TASKADE to schedule work, study, and everything in between Taskade Usage
Scheduling with Taskade
o Accessible o Intuitive o Flexible o Productive o Multi-Platform Language Keywords
o Accessible o Intuitive o Flexible o Productive o Multi-Platform A syntax with clear, English keywords. For example: if, else, end, Number Language Keywords
o Accessible o Intuitive o Flexible o Productive o Multi-Platform Appearance similar to other languages like Matlab, Python, SQL. Few and simple programming constructs make sure new users can't get into too much trouble. Language Keywords
o Accessible o Intuitive o Flexible o Productive o Multi-Platform Scheduling commands with variables allow for a variety of scheduling options. Input files give users the ability to schedule multiple sets of tasks the same way. Language Keywords
o Accessible o Intuitive o Flexible o Productive o Multi-Platform Easy to quickly create a schedule. Taskade handles tasks large and small. Language Keywords
o Accessible o Intuitive o Flexible o Productive o Multi-Platform Taskade compiles to Java bytecode, making it easily runnable from any computer with a JVM. Language Keywords
MyScheduler.ts: TaskType homework(String class_name); TaskType exercise(String gym_name); FINISH homework AT LEAST 1:00 BEFORE START exercise; March23.ti: homework make_parser(duration 3:00, priority 9, deadline class_name "PLT"); homework networks_pset( duration 1:00, priority 3, deadline class_name "Networks"); exercise jog( duration 1:00, priority 7, deadline gym "Great Outdoors"); exercise lift(duration 1:00, priority 7, deadline gym "Columbia"); Language Example
OptionScheduler.ts: Input String mode; TaskType homework(String class_name); TaskType television(); if mode is "relax": START television BEFORE START homework; else FINISH homework AT LEAST 3:00 BEFORE START television; end NowThatOurCompilerIsComplete.ti: // Woohoo! Done writing the compiler! String mode = "relax"; television GameOfThrones(duration 1:00, priority 9, deadline Language Example
Development Environment
Translator Architecture
From source.ts to java code...
Runtime Architecture
Runtime Scheduling Engine
Testing Method
Explore protected methods Confirm basic functionality White-Box Testing Method - Node
Focus on testing critical functions White-Box Testing Method - Trees
"Ideal" schedules to verify consistency "Impossible" schedules to see what happens Focus on helpful error output Black-Box Testing: Simulation
Live Demo!!!