Monday, September 30, 2013

Prolog

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.



Wednesday, August 28, 2013

Orca

Copperbox revision 3002.

Initial work adding late binding of "dull" parameters through the Reader environment.

Tuesday, August 27, 2013

orca

Copperbox revision 3001.

I've added a wrapper monad over the Orca monad. The wrapper monad is a Reader / environment monad although it won't use the regular Reader interface as it intends to simulate environment acquisition.

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).


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.

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.

Blog Archive

About Me

My photo
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.