15

In one of Edsger Dijkstra's most famous essays "By way of introduction" there is this paragraph:

As final example of skirting the programming issue I mention “software engineering”, the IPSE’s, the ASPE’s, the FRIPSE’s and the GRIPSE’s and all further animation tools you can think of. They come from a world that has accepted its charter “How to program if you cannot.”. The best of these efforts just confuse composing with the physical act of writing the score, others are foolish at best, and some are criminal.

From the context, it seems like those are some graphical tools from the 80s (the essay is dated 12 Feb 1989), which were used for computer programming education, however I wasn't able to find any information on the Internet about them.

2 Answers 2

17
IPSE   = Integrated Project Support Environment
     (or Integrated Programming Support Environment
ASPE   = Ada Programming Support Environment
FRIPSE = Formal Reasoning Integrated Programming Support Environment
GRIPSE = Graphical Integrated Programming Support Environment

Keep in mind, Dijkstra's rant is about the formal programming hype of the late 1980s which he didn't consider to be fruitful, wise man he was.


Some further links:

When searching, adding "Formal Verification" might be helpful, as that was the core idea. After all, programming is just mathematics, right? So it should be possible to program in a way that makes it possible to prove the correctness in an automated, formalized way. Thankfully that's mostly (*1) dead by now.

What does live on is the idea of functional programming as a paradigm, further refining certain ways of design and coding. As so often, what happened, got similarities to the clasic Hype Cycle, were above projects where at the forefront of hype, while today we're way into the production plateau. Most high hopes didn't come true as predicted (flying cars) while at the same time realistic application has taken over.


As a side note, if there's any writing of his that can be considered most famous, then it's his 1968 "Go To Statement Considered Harmful". This one influenced eventually each and every modern programming language (except possibly Brainfuck).


*1 - There are languages like Haskel and Erlang that do incooperate and even enforce formal programming due their strict functional style. Still hard to see them becoming mainstream the same way structured languages did.

16
  • 1
    +1, I spent too long reading related papers! “ASPE” is a typo in Dijkstra’s note; it should be “APSE”. (See e.g. The importance of Ada programming support environments.) Aug 26, 2019 at 17:04
  • See for example homepages.cs.ncl.ac.uk/cliff.jones/publications/MUCS-TRs/….
    – alephzero
    Aug 26, 2019 at 17:11
  • @StephenKitt It was about the time I finally gave up on following any theory. I'm always keen to offload standard tasks of validation and error checking to the machine, so I really tried hard to find any good use for that approach. What a waste of time. BTW, I love Ada. Next best thing after Assembly.
    – Raffzahn
    Aug 26, 2019 at 17:23
  • 1
    @StephenKitt Oh, I do belive about a nice for formal proof in hardware development - as long as it can be reduced close enough. Similar there are a few nieces in very special areas of software. Just never a majority, as real world requirements are way too complex. Using formal systems for RL applications always rely on assumptions ad non conclusive reduction, rendering any result worthless. The basic problem with European CS is that programming was seen as a facet of mathematics, not engineering. And formal proof is one of the dead end developments favoured.
    – Raffzahn
    Aug 26, 2019 at 19:14
  • 1
    In your five bulleted "further links", the second bullet has no link. Aug 27, 2019 at 14:32
7

IPSE stands for "Integrated Project Support Environment"; this was one of a series of names given to projects related to using theorm proving in software engineering. Wikipedia has a brief blurb on it, but this Chilton Computing page offers more detail and probably gives a better sense of what it is and what it does. FRIPSE and GRIPSE were related (FR meaning "formal reasoning" and "GR" meaning "graphical."

If your concern is not about the details of these particular packages at those times but instead what Dijktra was talking about when he mentioned those (certainly any modern example could be substituted in that paper and still preserve what he was trying to say), the Software Engineering StackExchange would be a better place for questions.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .