I've been learning Prolog this month, none of the results so far merit committing to Copperbox. The intention is to code Lint style rules as Prolog rules and use them to check configurations for bad smells.
By configurations I mean structured data that doesn't necessarily have a corresponding AST - program code naturally has an AST representation and a Lint style checker would traverse the AST; but a configuration might have a flat or nearly flat structure, yet still have dependencies / relationships between values. Prolog (or Datalog) seems a natural choice to represent such data and rules - indeed cfengine is a current exemplar.
Tuesday, September 3, 2013
orca
Copperbox revision 3003.
Work simulating the algorithm style used by Yahama's DX7 synthesizer and others.
The algorithm style is characterized by two parts - a network of operators and the connections between them (on the DX7 the operators were FM phasors) - the algorithm; plus processors that decorated each operator transforming their input and output signals (e.g applying an envelope or filter).
There is a lot that is clunky in my simulation, some can be improved but I need to work out a naming convention for functions with varying input and output arities.
Work simulating the algorithm style used by Yahama's DX7 synthesizer and others.
The algorithm style is characterized by two parts - a network of operators and the connections between them (on the DX7 the operators were FM phasors) - the algorithm; plus processors that decorated each operator transforming their input and output signals (e.g applying an envelope or filter).
There is a lot that is clunky in my simulation, some can be improved but I need to work out a naming convention for functions with varying input and output arities.
Wednesday, August 28, 2013
Tuesday, August 27, 2013
Monday, August 26, 2013
orca
Copperbox revision 3000.
I've implemented a new revision of Orca that simplifies the syntax builder monad. The intention is to then wrap this monad again in a Reader that simulates "environment acquisition" - so the dull parameters like table index for oscillators can be acquired from the environment rather than taken directly from function parameters. This should make the parameter lists of functions smaller (thus hopefully clearer) and allow late binding (so hopefully configuration is more flexible).
I've implemented a new revision of Orca that simplifies the syntax builder monad. The intention is to then wrap this monad again in a Reader that simulates "environment acquisition" - so the dull parameters like table index for oscillators can be acquired from the environment rather than taken directly from function parameters. This should make the parameter lists of functions smaller (thus hopefully clearer) and allow late binding (so hopefully configuration is more flexible).
Friday, August 16, 2013
pretty-expr-hpj
Copperbox revision 2999.
I've added initial support for pretty printing ternary operators like C's (_ ? _ : _). The code is untested and possibly wrong as it is a new feature not present in Norman Ramsey's original code.
I've added initial support for pretty printing ternary operators like C's (_ ? _ : _). The code is untested and possibly wrong as it is a new feature not present in Norman Ramsey's original code.
Wednesday, August 14, 2013
pretty-expr-hpj
Copperbox revision 2998.
I've done some clean up work on the code as I'm planning to add support for ternary (and possibly mixfix) operators.
I've done some clean up work on the code as I'm planning to add support for ternary (and possibly mixfix) operators.
Subscribe to:
Posts (Atom)
Blog Archive
About Me
- Stephen Tetley
- Disambiguating biog as there are a few Stephen Tetley's in the world. I'm neither a cage fighter or yachtsman. I studied Fine Art in the nineties (foundation Bradford 1992, degree Cheltenham 1992 - 95) then Computing part-time at Leeds Met graduating in 2003. I'm the Stephen Tetley on Haskell Cafe and Stackoverflow.