Asteroid the Programming LanguageCheck out Asteroid, a multi-paradigm programming language heavily influenced by Python, Lua, ML, and Prolog currently under development at the University of Rhode Island. Asteroid implements a new programming paradigm called pattern-matching oriented programming. In this new programming paradigm patterns and pattern matching is supported by all major programming language constructs making programs succinct and robust.
Here is a program written in Asteroid that iterates through a list until only a
single element is left on the list printing out the values on the list,
Projects: If you are interested in programming languages and are looking for projects we have both senior level projects as well as MS and PhD level projects, e.g.:
Education: Doctorate from Oxford University 1997.
Research Interests: programming language design, semantics, and implementation; computer and AI applications in music, art, and design; logic and logic programming.
Teaching (Spring 2020):
Programming for Data Science, CSC/DSP 310
Previously Taught Courses:
Fundamentals of Programming Languages, CSC301
Programming Language Implementation, CSC402/CSC502
Programming Language Semantics, CSC501
Topics in AI: Introduction to Machine Learning with Support Vector Machines, CSC581
Theory of Computation, CSC544
Models of Computation, CSC445
Programming Language Boot Camp
An Introduction to Artificial Intelligence with AI Game Development, CSC481
Theory of Compilers, CSC502
Discrete Mathematics, CSC/MTH 447
Foundations of Logic Programming, CSC491
Arduino Workshop at the AS220 in Providence
Cognitive Modeling, CSC592
Advanced Logic Programming, CSC491 Sec 9
Knowledge Discovery and Data Mining, CSC492/CSC592
Software Engineering, CSC305
Software Systems I am involved with:
Asteroid - A pattern-matching oriented programming language.
POPSOM - An R package for self-organizing maps providing advanced visualization and statistical quality measures.
GPX - Gene Phylogeny eXplorer for spectral genome analysis.
PentaPlot - a visualization system for phylogenetic content.
ErrorEngine - a system for automatic narrative evolution.
UCG-E - an equational logic programming system.
OBJ3 - an equational specification system.
TRIM - an abstract machine for order-sorted rewriting.