implementing a domain specific language - fit and expectations
- From: "nposter" <code4breakfast@xxxxxxxxx>
- Date: 30 Nov 2005 18:09:33 -0800
bear with me as i give a little context...
i used to work on team that wrote flight scheduling optimization
software for minimizing supply (aircraft time) cost. the project
eventually died for a number of reasons including political and
technical reasons. but over time, i've noticed a trend towards
developing tools using local search techniques to solve small parts of
the scheduling problem.
there seems to be two major approaches to solving the scheduling
optimization problem in our setting. let the optimization software
solve the problem, then tweak its solution to handle any exceptional
real-world requirements. or let a group of distributed (human) problem
solvers take on subsets of the global scheduling problem and come up
with local solutions with some help some automated tools. or either let
the humans or the automated framework solve the problem.
in the context of the method that uses a group of distributed human
problem solvers, a domain specific language fits nicely. They each have
a few simple primitive operations they can use to solve the problem.
and the dsl could let them play with different attempts at solving the
problem quickly and systematically. the hope would be that over time,
as they used the dsl, they would start to build up their own set of
combinations and abstractions that chained together the primitives the
dsl exposed to them.
i think the minimum they would need from the language in order to be
useful would be:
-primitives for pulling in and slicing data in order to set up a
problem
-primitives for a few different local search methods in order to solve
the problem they create
-some procedures for visualizing a problem or solution data structure
on top of that, i would envision the general purpose language
(hopefully scheme) that it was embedded within would provide the means
of combination/sequencing, and abstraction.
the obstacles to getting this implemented in the real world is:
-our IT department would be scared of using and maintaining an
"research" language like scheme and "academic" techniques like dsl's
-i don't have enough free time at work or home to read up on EOPL or
dsl implementation techniques
so i was thinking of trying to hire a contracter to perform this,
probably a research assistant in a programming languages masters or phd
program.
-is it realistic to think i could bring in research assistant on a
small to moderate budget to write a clear, simple, maintainable
implementation of such a dsl?
-if i were to leave some day, do you think it woudl be fair to leave a
dsl like that to be maintained by an IT department with an average
knowledge of java / c# world? that is, does the technology fit the
people context
-use scheme (including the syntax) as the general purpose language?
should i be giving users strong typing to be a little more user
friendly in the debugging process?
-do you think the problem solver users would actually embrace
programming instead of the standard protocol of using a GUI interface
to simply execute the primitives? or should i think about exploring the
way paul graham built via web with a dsl for web pages and a gui
front-end for visually programming in the language?
nposter
.
- Follow-Ups:
- Re: implementing a domain specific language - fit and expectations
- From: Slow Thought
- Re: implementing a domain specific language - fit and expectations
- Prev by Date: Re: 'globally' defined lists...very basic question
- Next by Date: Implementing function overloading in a my lisp-ish interpreter
- Previous by thread: Re: using collatz to compute euler's constant
- Next by thread: Re: implementing a domain specific language - fit and expectations
- Index(es):
Relevant Pages
|