Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Phoebe

 Phoebe

Our undergrad project

Rahul Goma Phulore

April 01, 2011
Tweet

More Decks by Rahul Goma Phulore

Other Decks in Programming

Transcript

  1. Phoëbë A Domain-Specific Programming Language for Mathematics and Image Processing

    Group #14 Justin Jose Rahul Phulore Siddharth Raina Pea… Bee…
  2. Programming Language targeted to a particular kind of problem or

    domain Limited Scope Provides many domain-specific constructs Highly Expressive Domain Specific Language? What the heck is that?!?
  3. The DSL Showdown External DSL Internal DSL I have more

    syntactic freedom. I get a parser, compiler, and runtime for free. It’s easier to validate. It’s easier to design. …and easier to extend too!!! …
  4. So how did you get going with this thing?!?! We

    implemented it as an internal DSL in Scala. Scala is a new object-oriented and functional programming language that runs on JVM. Scala lends itself very easily to creation of embedded languages.
  5. But aren’t there already so many systems that do kinda

    same things?! Yes, but all of those have some flaws!!!
  6. MATLAB is very minimal, gives good performance, and has an

    extensive library. …but mom, it’s weakly typed, has no support for functional programming, and is hard to extend!!!
  7. SageMath is an open source Python DSL , has an

    extensive library, and is easily extensible. …but dude, it’s dynamically typed, has a slow runtime, and Python is hardly amenable to DSLs in the first place!!!
  8. So what all stuffs do I need to use your

    DSL? 2 Gigs of RAM, 10 Megabytes of free disk space, a Scala compiler (2.8.1 or higher), any Scala IDE, and JRE version 6 or later. That’s all!
  9. In future, Phoëbë will also support video processing, and will

    have an expanded standard library. We will also be working on parallelization of performance- intensive algorithms.