Re: MV Keys
Date: Mon, 06 Mar 2006 13:40:07 GMT
Message-ID: <XYWOf.1135$aF3.132_at_trndny02>
"Marshall Spight" <marshall.spight_at_gmail.com> wrote
> Exactly. Minimalness is not an absolute goal. If it was, the best
> design for including the boolean algebra in a language would be
> to have only the one operator: NAND. This is sufficient, and adding
> more operators doesn't add any new capability, so it's minimal as
> well.
>
> Instead, we include AND, OR, NOT and sometimes XOR. Why?
> It's more convenient that way.
It depends on what level of abstraction you are working at. Here's an example that's somewhat far afield.
In 1957, Digital Equipment Corporation (DEC) was started. The first thing they made was digital logic modules, that could be used by an engineer to put together useful logic nets.
One of their central modules was a thing called an "inverter". An inverter with two or more inputs works like a NAND gate. An inverter with one input works like a NOT gate. And an inverter with no inputs generates TRUE. Many of their other modules contained inverters inside.
A few years later they put enough logic together to make a Programmed Data Processor (PDP). The first PDP, the PDP-1 had operators for OR AND and NOT, just as you outlined. It's more convenient. It's also a different level of abstraction.
I suggest that there are multiple levels of abstraction involved when one discusses programming language design, program run time internals, database internals, multiple applications exchanging data via a database, programmer interfaces to databases, and so on.
What may be a convenience at one level may be more than that at a different level. Received on Mon Mar 06 2006 - 14:40:07 CET