💾 Archived View for gemini.spam.works › mirrors › textfiles › groups › PPH › ultimate.tsg captured on 2023-01-29 at 15:07:32.

View Raw

More Information

⬅️ Previous capture (2020-11-01)

-=-=-=-=-=-=-


The Ultimate Computer Program
By the Silver Ghost

   "Hello there...you wanted to see me, sir?"
   "Yes.  Have a seat."
   "Thank you.  Is this about some computer program you wanted?"
   "Yes.  As you know, I'm a programmer, like yourself.  But I can't find
exactly what I want in a language.  Do you understand?"
   "I think so...you're looking for something powerful but easy to learn.
Wouldn't mind that myself."
   "No, not just powerful and easy to learn.  I want more than that."
   "Mm-hm.  What exactly did you have in mind, sir?"
   "I was thinking of a kind of meta-language.  Something like FORTH, only
better.  Where you could actually design your own language."
   "Isn't that a little redundant?"
   "No.  What I want is a program that--"
   "--that writes programs.  Those have been tried, but--"
   "Don't interrupt me!  Where was I...oh yes, not a program that writes other
programs.  That's useless.  You can't ever get what you want."
   "If I may comment...the idea of such a program is to eliminate the menial
programming problems, the drudgery that isn't worth typing in."
   "Exactly.  But that drudgery is actually a by-product of the language, isn't
it?"
   "I don't understand."
   "Let's take BASIC as an example.  You want to transcribe a string backwards.
Don't ask why.  You just do.  Anyway, you say Y$="":FOR X=LEN(X$) TO 1 STEP -1:
Y$=Y$+MID$(X$,X,1):NEXT.  Right?
   "Well, normally I like to have it written out, but--"
   "Right.  The point is, that is worthless typing that in.  What I want is a
language that I can say 'BACKWARDS X


 and have it done."
   "That's more than easy, in a lot of languages.  FORTH, f'r instance."
   "But you don't understand.  This language that I will program in will be the
output of another, higher program.  I want to be able to form-fit the language
to my needs."
   "Don't tell me.  You want me to write this program that will write this
language."
   "Exactly."
   "Why can't I just write the language?"
   "Because I may want something different something else!  I'll be doing
something totally different next year.  I want a totally different language to
do it with."
   "This program that I'll be writing...what questions should it ask?"
   "Beg your pardon?"
   "Well, you say it should allow you to get a different language each time
it's run.  It has to get input from you.  It has to ask you questions, sir.
What questions should it ask?"
   "Good question.  That's a problem, isn't it?  Hm."
   "May I suggest something?  Another program, to write the first one.  A
'language-writing program'-writing program, if you will.  It takes inputs from
you, and from those inputs constructs a program whose only task is to ask you
the proper questions, and then write the language."
   "Good idea!  I guess the hard part is figuring out the proper questions,
isn't it?"
   "Let me describe to you the sort of software you want, then.  You want
something flexible--very flexible.  It has to be able to create not just a
program, but a language in which a program is written.  Not only that, but
it must exceed those boundaries--it must be able to write a program that will
do anything, including the task 'be able to write a program that will do
anything.'  Correct?"
   "Yes!  That is EXACTLY what I had in mind!"
   "I can do it."
   "You can?"
   "It's right in front of your nose.  It's called a 'computer,' and the
program that you're looking for is called 'assembly language.'  I think that
you'll find that you can write just about any program in assembly language...
even the meta-language you're looking for.  And it isn't even that hard to
learn.  Good day, sir."