SASSi Carl Morgan Group Leader Paul Salama Xiaotang Zhang Why be SASSi Our motivation was to design a language to let a user make quick and simple programs to deal with various statistical problems But what about SAS and other statistics programs Unlike SASSi SAS and other programs like it are big and bulky in terms of maintenance learning curve and installation They also cost a bunch bad SASSi is free currently SASSi is simple easy to learn and easy to use What can SASSi do Handles many standard statistical problems such as getting the mean median standard deviation etc for a set of numbers Defined as a vector in SASSi Supports more complicated statistical problems like regressions distributions etc Graphical output What SASSi looks like Double b Vector a 1 1 2 3 5 8 b mean a print The mean of a is print b plot bar a More Samples SASSi allows users to define their own procedure calls Example procedure Vector foo Double sheep Double cow Double dog sheep cow sheep sheep 1 Vector animals sheep cow dog etc return animals SASSi grammar 1 Types of data bool Boolean values that can either be true or false and True False and TRUE FALSE int standard 32 bit integers double 64 bit IEEE double floating point format string a string of characters procedure a user defined procedure vector an M by 1 vector of doubles Expressions Very similar to C Primary expression Identifiers constants procedure calls and access to vector types Arithmetic expressions Relational expressions and SASSi grammar 2 Constants implemented by const int a 3 xconst Include statement include path name SASSi grammar 3 Statements Assignments Direct assignment in the form left valued expression right valued expression Conditional Statements if relational expression statement else statement For Loops for assignment relation expression action statement SASSi built in procedures Basic statistic methods mean median stdDev etc Dealing with vectors sort range union intersect etc Distributions normal standard geometric etc Regression linear SASSi Plotting SASSi supports five built in graphing functions Bar Pie Chart Line Error Curve SASSi printing Printing variables Doubles Int and Vector print v Printing strings print Who knows why you name something foo SASSi implementation ANTLR ssi file LEXER Tokens PARSER AST Tree AST WALKER Interm Code CODE GENERATOR Java Bytecode SASSi Summary SASSi is an efficient small FREE statistics language Expandable with user procedures plots So even though we didn t include Poisson distributions someone could include it in the future Enough functionality for a base of statistics Lessons Learned Not sticking to your schedule is bad Meeting twice a week is far more effective and comforting than just once Don t try to implement all statistics functions or all of C Get feedback from your TA They re there to help and have been there before Think big build small Decide if what you think is a language would be better off as a program If so don t try to implement it as a language THE END
View Full Document
Unlocking...