[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: computer-go: Languages for programming go are?
Bob Myers <rtm@xxxxxxxxxxxxxxxxx> wrote:
> Simply put, assume we are going to invent a language for writing go
> programs. What would that language be likely to look like? (And, once we
> know that, what if any are the challenges in writing a compiler for the
> language?).
I would say don't waste your time. The advantage of *any* already-existing
language is that you can get people who know it. With your own language any
newcomer will have to spend time learning the language itself.
Of course, working in any known language, you will need to build a toolbox
library for all the go-specific things. And a newcomer will have to learn
that instead.
If you make your own language, you can implement a pile of go-specific
primitives in it. But you still need to program those, probably in some
other known language. One extreme is that your language has a structure
GoBoard, which has a function BestMove, which always returns the best move
in the position. Obviously this will not solve anything.
No matter if you make it in a specific language, or as a library in a known
one, you will need
- an effective representation of the go board, with all sort of
additional information
- A good way to iterate over all neighbours of a group (probably on
various levels, eg. strings, liberties, groups)
- Effective pattern matching
- Easy ways to handle symmetries
- Easy way to handle topological questions (connectivity, enclosure)
- Fast simpleminded tactical reader (ladders etc)
It might also be useful to have some higher-level "thinking" primitives,
like a built-in rule-based expert system, or a neural net, or something. But
this will depend on the design and needs of your program.
Good luck with the project, and keep us posted
Heikki
--
Heikki Levanto LSD Levanto Software Development heikki@xxxxxxxxxxxxxxxxx
"In Murphy we Turst"