From: David K. Davis
Subject: A symbolic computation language
Date: 
Message-ID: <G26np9.5nE@spcuna.spc.edu>
I am trying to drum up interest in a computer language I've been working on
called Funk. Here are the points of interest:

	* Funk is a direct and natural generalization of a finite state
		machine, and attains Turing computability,
	* and is therefore a minimalist model of computation a la Turing
		machines, URMs, combinators, and so on.
	* The remarkable thing is that Funk, unlike the other minimum
		languages, is very elegant, expressive and powerful
		in expressing symbolic computations.
	* Funk, like Prolog, backtracks. More: pure Prolog programs, when 
		slightly rewritten, can be directly executed in Funk.
	* Funk is a simple formal system, quasi-algebraic, with two simple
		binary operators. The Funk interpreter is based squarely on
		this algebra.
	* Funk is ideal for writing (or attempting to write): expression
		simplifiers, equation solvers, proof checkers, human and
		computer language translators, etc.

The Funk web page is a work in progress, i.e. is incomplete and imperfect.
But there's enough to get a good idea of what Funk is all about.

I'd like comments. And I'm always hoping I'll find others who'd like to work
on Funk, in collaboration or in competition. Funk is GPLed.

Dave Davis:	·······@spc.spcunb.edu	

Funk:		www.spc.edu/~davis_d/computing/funk

From: Dmitriy Tarasyuk
Subject: Re: A symbolic computation language
Date: 
Message-ID: <8s3mje$2h4$1@app0.visti.net>
> I am trying to drum up interest in a computer language I've been working
on
> called Funk. Here are the points of interest:
>
> * Funk is a direct and natural generalization of a finite state
> machine, and attains Turing computability,

Does Funk support infinite domain (for example with Prolog structure like
X=f(X,Y), Y=f(Y,X) is invalid in the most interpreters)?

> * and is therefore a minimalist model of computation a la Turing
> machines, URMs, combinators, and so on.
> * The remarkable thing is that Funk, unlike the other minimum
> languages, is very elegant, expressive and powerful

IS Funk interpreter?

> in expressing symbolic computations.
> * Funk, like Prolog, backtracks. More: pure Prolog programs, when
> slightly rewritten, can be directly executed in Funk.
> * Funk is a simple formal system, quasi-algebraic, with two simple
> binary operators. The Funk interpreter is based squarely on
> this algebra.
> * Funk is ideal for writing (or attempting to write): expression
> simplifiers, equation solvers, proof checkers, human and
> computer language translators, etc.

Does Funk have any conclusion navigator for symbolic computation?

>
> The Funk web page is a work in progress, i.e. is incomplete and imperfect.
> But there's enough to get a good idea of what Funk is all about.
>
> I'd like comments. And I'm always hoping I'll find others who'd like to
work
> on Funk, in collaboration or in competition. Funk is GPLed.

It is interesting. I've some ideas and results in the same approach. I thing
Funk must be very-very better than other analogies! It's very difficult...

>
> Dave Davis: ·······@spc.spcunb.edu
>
> Funk: www.spc.edu/~davis_d/computing/funk
>
From: David K. Davis
Subject: Re: A symbolic computation language
Date: 
Message-ID: <G2Bww8.n4H@spcuna.spc.edu>
In sci.math Dmitriy Tarasyuk <·······@optimum.kiev.ua> wrote:

: > I am trying to drum up interest in a computer language I've been working
: on
: > called Funk. Here are the points of interest:
: >
: > * Funk is a direct and natural generalization of a finite state
: > machine, and attains Turing computability,

: Does Funk support infinite domain (for example with Prolog structure like
: X=f(X,Y), Y=f(Y,X) is invalid in the most interpreters)?

No. If one wants it, one programs it in Funk. The challenge is: how hard
is it write the algorithms supporting infinite domain in Funk? I'm putting
it on my list. 

Funk is lower level than Prolog. It rewrites strings of symbols. There is
no mandated logic (or any other) interpretation. I say that Funk can
directly execute slightly reformatted Prolog programs. And that's true
because Prolog execution can be thought of in terms of rewriting. I
believe the infinite domain stuff complicates the issue, i.e. the usual
execution strategies don't deal with infinite domain. So it's almost
certain that my claim will not hold for infinte domain Prolog programs.

: > * and is therefore a minimalist model of computation a la Turing
: > machines, URMs, combinators, and so on.
: > * The remarkable thing is that Funk, unlike the other minimum
: > languages, is very elegant, expressive and powerful

: IS Funk interpreter?

Yes. The interpreter is written in C++ with a publicly available version
of STL. There is a compiler switch to produce a version that executes an
integer encoded form of the source in order to increase speed. 

: > in expressing symbolic computations.
: > * Funk, like Prolog, backtracks. More: pure Prolog programs, when
: > slightly rewritten, can be directly executed in Funk.
: > * Funk is a simple formal system, quasi-algebraic, with two simple
: > binary operators. The Funk interpreter is based squarely on
: > this algebra.
: > * Funk is ideal for writing (or attempting to write): expression
: > simplifiers, equation solvers, proof checkers, human and
: > computer language translators, etc.

: Does Funk have any conclusion navigator for symbolic computation?

No. Again, Funk is lower level than you are picturing it. Funk is a
language in which one might experiment writing a conclusion navigator.

Not even arithmetic is built into Funk! One can construct arithmetic IN
Funk (I have, up to multiplication). What Funk is, is a pure symbolic
string rewriter or manipulator if you will. What I claim for it is that
one can write symbolic manipulation algorithms in a very natural and
elegant way. It's totally lacking in "features".

: >
: > The Funk web page is a work in progress, i.e. is incomplete and imperfect.
: > But there's enough to get a good idea of what Funk is all about.
: >
: > I'd like comments. And I'm always hoping I'll find others who'd like to
: work
: > on Funk, in collaboration or in competition. Funk is GPLed.

: It is interesting. I've some ideas and results in the same approach. I thing
: Funk must be very-very better than other analogies! It's very difficult...

Anyway, I need help in writing better (faster), more accessible (maybe
Java?), interpreters. I need help in writing Funk programs, to see what
can be done. I need help in writing stuff up so it's intelligible. I need
help in proving theorems about Funk (e.g. justifying the execution
algorithm).

: >
: > Dave Davis: ·······@spc.spcunb.edu
: >
: > Funk: www.spc.edu/~davis_d/computing/funk
: >