The Truth(tm) about Stroustrup
Kekes Stamatis
skekes at kosmoslink.gr
Fri Oct 11 15:39:01 EEST 2002
Hmm kalo ayto alla omos ti exete na peite kai gia ayto ??
>
>
>
> SMURF programming language
>
>
>
> A mere six months after its creation at the University of Waterloo,
> Microsoft and Borland have announced the release of IBM PC-based
> compilers for the popular SMURF programming language. From MicroSMURF
> (a division of Microsoft devoted to SMURF) we will see WinSMURF by
> July '94. From Borland we'll see Borland SMURF++ by August '94.
> Wait a Second... What the HECK is SMURF?
> For those of you who haven't heard of SMURF, I'll enclose the
> following press release, dated April 9th, 1993
> ---------------------------------------------------------------------
>
> Waterloo Announces the Release of SMURF
> Prof. B. W. Becker of the University of Waterloo has officially
> released his unix based SMURF compiler to the world. Developed at UW
> to provide a powerful object-oriented programming language for second
> year CS students, SMURF is a powerful and yet simple language well
> suited to a teaching environment.
> SMURF stands for Short Modular Un-Recursive Function. A brief
> introduction to SMURF follows.
>
> SMURF is Short
>
> SMURF programs are, by necessity, very short. An individual SMURF
> program can't contain more than four function-calls. For example, a
> SMURF module might contain one variable assignment, one function which
> acts on this variable, one call to another SMURF, and a return
> function which passes the modified variable to the previous SMURF.
> Each smurf module can access only one variable, called SMURF.
> SMURF is Modular
>
> SMURF programs may only contain four function calls, but you can have
> thousands of the little fuckers working together. Picture your CPU,
> swarming with SMURFs, each perform its own little job without giving a
> shit about what the other SMURFs are doing, how much CPU time its
> taking up, or who actually owns that file you told it to erase.
> SMURF is un-recursive
>
> As Bill Gates so eloquently said in his '91 interview in BYTE magazine
> "recursive programming sucks!" To combat this archaic programming
> style, a SMURF function can not call itself. Complex
> function-tree-structure analysis built into the SMURF compiler makes
> sure that sneaky programmers can't trick the SMURFs.
> SMURF has (duh) functions
>
> Function: If you don't know what these are, you must be very confused
> by now.
> SMURF Modules
>
> A programmer writing in SMURF must quickly learn the 100 or so
> different kinds of SMURF modules. Rather than have libraries which
> link different kinds of functions into a module, each library has its
> own kind of SMURF module which it automatically links to. The downside
> of this is that you can't use functions from two different libraries
> in the same module. When you're dealing with a maximum of four
> function calls per module, this usually isn't much of a problem.
> Several kinds of SMURF modules are described below.
> PapaSMURF: This is the main module, the progenitor of all other
> SMURFs. It does nothing but execute other SMURF modules. In other
> words, it bosses the other SMURFs around. There can only be one
> PapaSMURF.
> SMURFette: This module has no function libraries linked to it. It
> accepts no parameters. It returns no values. It is incapable of input
> or output. In other words, it performs no useful function in a SMURF
> program. It can, however, link to any other SMURF module. SMURF
> project-chief Yohan claims "it keeps the other SMURFs happy, and hard
> working". There is only one SMURFette, and in large SMURF programs
> especially, she gets linked constantly. The SMURFette module must be
> linked to the PapaSMURF module, and in multitasking SMURF programs,
> PapaSMURF's call to SMURFette have priority over all other calls.
> BrainySMURF: This module performs all the input and output functions
> available in SMURF. In other words, whenever you want user input, or
> wish to output information to the screen, you have to call
> BrainySMURF. The BrainySMURF library is one of the most criticized
> parts of SMURF. The input routines work fine, but the output routines
> are slow and tend to include extraneous information. You can have as
> many BrainySMURF modules as you want, but you'll wish you had less.
> ClumsySMURF: Whenever you define your SMURF variable in a module,
> you'll use some memory. SMURF doesn't reclaim this memory when the
> module is exited, you have to destroy the variable using ClumsySMURF
> if you want that. If you ever have more than one ClumsySMURF module
> running simultaneously, chances are they'll get confused, and start
> randomly destroying memory.
> HeftySMURF: This module moves information from one memory location to
> another. Whenever you want to assign a variable or copy a list, you've
> gotta call HeftySMURF.
> There are hundreds more. Type "man SMURF" for more information.
>
> Hello SMURF!
>
> For those of you who are confused, I'll show you an example SMURF
> program. Note, each of these is a separate module-file, the name of
> which is given. Papa.SMURF SMURF! { Link
> Smurfette.SMURF; Call Brainy.SMURF.Smurf-them-hello-Brainy;
> } ENDSMURF.
> Smurfette.SMURF SMURF! {} ENDSMURF.
> Brainy.SMURF.Smurf-them-hello-Brainy SMURF! { SMURF =
> Call Hefty.SMURF.What-is-their-name-Hefty; OutSmurf("Hello
> "SMURF); Call Clumsy.Destroy-this-name-for-us-Clumsy(SMURF);
> ReSMURF(); % Poor Brainy didn't get to SMURF with SMURFette
> } ENDSMURF.
> Hefty.SMURF.What-is-their-name-Hefty SMURF! {
> CreateSmurfString(SMURF); Call
> Brainy.SMURF.Ask-them-their-name-Brainy(SMURF); Link
> Smurfette.SMURF; ReSMURF(SMURF); } ENDSMURF.
> Brainy.SMURF.Ask-them-their-name-Brainy(SMURF); SMURF! {
> SMURF = GetStringSMURF("What the smurf is your name?"); %
> Ha, this time I will SMURF her good! Link Smurfette.SMURF;
> ReSMURF(SMURF); } ENDSMURF.
>
> Clumsy.SMURF.Destroy-this-name-for-us-Clumsy(SMURF); SMURF! {
> SmurfWithAHammer(SMURF); Link Smurfette.SMURF;
> ReSMURF(); } ENDSMURF.
> Of course, this is a very simple program, which is why so little code
> was needed. The 420 megabyte example source code for CalcuSMURF"(a
> non smurfentific...er...scientific calculator), which comes on CD-Rom
> with WinSMURF, gives a much better demonstration of the power of
> SMURF.
> ---------------------------------------------------------------------
> "Have a smurfy day!" - Bill Gates SMURF project manager
>
>
>
>
>
>
>
More information about the Linux-greek-users
mailing list