[HN Gopher] Plankalkul
       ___________________________________________________________________
        
       Plankalkul
        
       Author : tevrede
       Score  : 176 points
       Date   : 2023-03-07 09:34 UTC (1 days ago)
        
 (HTM) web link (en.wikipedia.org)
 (TXT) w3m dump (en.wikipedia.org)
        
       | soperj wrote:
       | "Some features of the Plankalkul:[22]
       | 
       | ... functions do not support recursion"
       | 
       | That's not a feature, that's a bug.
        
         | farhaven wrote:
         | I think that's "feature" as in "property", not "feature" as in
         | "good thing to put in an ad for this".
         | 
         | Edit: if it somehow supports passing functions (or function
         | pointers) as parameters, the Y combinator can be used to add
         | recursion even if it's not natively supported otherwise.
        
         | egormakarov wrote:
         | MISRA-ready!
        
         | foepys wrote:
         | Since every recursive program can be implemented without
         | recursion, this isn't really a limitation.
         | 
         | Recursion can actually be a pit fall if you parse user
         | generated data and don't set recursion limits. If feasible I
         | try to avoid recursion.
        
           | macintux wrote:
           | > Since every recursive program can be implemented without
           | recursion...
           | 
           | Depends on the programming language, obviously. In Erlang,
           | e.g., recursion is your looping construct, and everything is
           | ultimately a loop.
        
         | kibwen wrote:
         | What mechanism does it use to prevent recursion? To even raise
         | the question seems to imply that it supports function calls,
         | and it's easy for recursion to just kind of happen unless
         | there's a specific implementation detail that prevents it. For
         | example, maybe instead of a growable function stack, every
         | function has dedicated stack space allocated up front, and
         | recursive calls would scribble over the local variables of
         | calls higher in the stack?
        
           | shash wrote:
           | I know that at least LabVIEW (which is otherwise Turing
           | complete) will throw a compiler error when you try to call a
           | function anywhere within its own code. Actually, being a
           | graphical language with hardly a difference between
           | "function", "module" and "user interface", it's a bit more
           | involved, but it goes through some length to make sure it's
           | non-trivial without resorting to something like shell
           | scripting to make a recursive call. It doesn't really have
           | any dynamic programming capabilities as far as I know so a
           | static analysis is probably enough for the compiler.
           | 
           | Apparently recursion was deemed "too confusing"...
           | 
           | On the other hand, it sounds like Plankakul was more of an
           | intellectual exercise than an implementation, so we don't
           | know how much extant implementations comply with that spec...
        
           | guenthert wrote:
           | Not supporting a feature doesn't mean actively preventing you
           | from attempting to use it. It might just have not given the
           | expected result.
           | 
           | > To even raise the question seems to imply that it supports
           | function calls
           | 
           | Yes, but it doesn't imply a stack or support for reentrance.
           | If the language supports only global (pre-allocated)
           | variables like early versions of FORTRAN and BASIC, then
           | there's no allowance for recursion.
        
         | ho_schi wrote:
         | MISRA-C likes this.
        
       | kaapipo wrote:
       | So how does that language seem so much more advanced than the
       | ones that came after it?
        
         | gnulinux wrote:
         | Because it says:
         | 
         | > Plankalkul was more comprehensively published [vague] in
         | 1972. The first compiler was implemented by Joachim Hohmann in
         | his 1975 dissertation. Other independent implementations
         | followed in 1998 and 2000 at the Free University of Berlin.
         | 
         | So it was never implemented until mid-1970s, which likely made
         | its design process less constrained than languages that came
         | soon after it in 1950s etc.
        
         | jandrese wrote:
         | Part of it was that they weren't bound by the limitations of
         | early computers. Those later languages were heavily stripped
         | down because that was all that could fit on a machine made out
         | of vacuum tubes and mercury delay lines.
        
         | nn3 wrote:
         | Because it was more a theoretical exercise.
         | 
         | The later languages were much more constrained by actual
         | implementations.
         | 
         | On the other hand the later implementors realized that some
         | convenience is needed, for example even the earliest languages
         | (like autocode) had variable names instead of variable numbers.
        
       | BeenAGoodUser wrote:
       | Very nice to read! Interesting to see how long those ideas took
       | to go from theory to application.
       | 
       | In the "Two-dimensional syntax" section, the first example
       | variable type is "m x 2 x 1 * N" and is described as "list of m
       | pairs of values of type S1 * N", but shouldn't it be "m x 2 x S1
       | * N" then? Is it a shorthand syntax or just a typo?
        
       | dang wrote:
       | Related:
       | 
       |  _The "Plankalkul" of Konrad Zuse: The first high level
       | programming language_ -
       | https://news.ycombinator.com/item?id=26593656 - March 2021 (1
       | comment)
       | 
       |  _Plankalkul: The First High-Level Programming Language and Its
       | Implementation_ - https://news.ycombinator.com/item?id=23364898 -
       | May 2020 (1 comment)
       | 
       |  _Antedating "datatype" all the way to Plankalkul (2017)_ -
       | https://news.ycombinator.com/item?id=18975279 - Jan 2019 (2
       | comments)
       | 
       | https://news.ycombinator.com/item?id=14406853 (May 2017)
       | 
       |  _Plankalkul_ - https://news.ycombinator.com/item?id=10909784 -
       | Jan 2016 (14 comments)
        
       | jaspa99 wrote:
       | The first computer and high-level programming language were
       | invented in Germany. What took place between this time and the
       | present which made Germany much less of an innovative place
       | computer/software-wise?
        
         | robotnikman wrote:
         | To give them some credit, they did create SAP, which is
         | currently the largest non-American software company. It's just
         | that Enterprise Resource Planning software is 'not sexy' so
         | your average person probably has not heard of them, or they
         | have and don't know what they do.
        
         | Barrin92 wrote:
         | I'd question if that's true. Research wise both applied and
         | theoretical Germany's still a really good place to be as far as
         | Computer Science is concerned. We're just not and never have
         | been a consumer driven economy and that's what people focus on
         | these days.
         | 
         | An example of this to me is Dickmann's autonomous cars which
         | were driving around on highways in the 80s
         | (https://youtu.be/_HbVWm7wdmE), yet you'd hardly think they
         | even existed given how the rate of progress is framed in that
         | industry by consumer products.
        
         | flohofwoe wrote:
         | > Unable to continue building computers - which was also
         | forbidden by the Allied Powers...
         | 
         | ...this bit of information was actually news to me, but the
         | brain drain that started in 1933 and then intensified after WW2
         | is probably an important part of the answer. Maybe it also
         | contributed to a general mindset that the grass is greener
         | across the ocean ;)
         | 
         | A lot of innovation still happened in Germany after the war -
         | even in East Germany, but somehow the fruits were always picked
         | elsewhere, for example:
         | https://www.youtube.com/watch?v=1qccejmqbPg - or this 'German
         | SpaceX': https://en.wikipedia.org/wiki/OTRAG)
        
         | pphysch wrote:
         | High-tech R&D tends to be driven by domestic military
         | interests, which were obviously on a short leash after 1945.
         | 
         | Even if Germany's brightest were not brain-drained to USA/USSR,
         | they would not have much funding nor opportunity to pursue
         | their advanced research in occupied Germany.
        
         | codethief wrote:
         | I think we were busy recovering from a war that we had started
         | for 10-20 years or so. :)
         | 
         | I guess by that time it was hard to catch up. Also, many of our
         | scientists had left for the US during the war.
        
           | actionfromafar wrote:
           | And "encouraged" to go to Soviet lands, too.
        
             | flohofwoe wrote:
             | More like hijacked:
             | 
             | https://en.wikipedia.org/wiki/Operation_Osoaviakhim
        
         | actionfromafar wrote:
         | Cities laid to waste and the partition of the entire country
         | into two, as well as prosecution and murder of much of its
         | population, and a good chunk of the rest sent to die in the
         | Army, in no particular order.
        
         | kybernetyk wrote:
         | German society which values security over risk taking and adds
         | a shame component to failure.
        
         | Someone wrote:
         | I think basic demographics is a large part of it.
         | 
         | Population of Germany:                 - 1940: 70 million
         | - 2020: 83 million (about 20% more)
         | 
         | Population of the USA:                 - 1940: 132 million
         | - 2020: 331 million (about 140% more)
         | 
         | Population of the world:                 - 1940: 2300 million
         | - 2020: 7795 million (about 240% more)
         | 
         | So, they may have stayed equally innovative per capita, but in
         | 1940 about 1:33 of humans were German, while in 2020, that was
         | 1:94.
        
           | carlmr wrote:
           | Also maybe losing all scientists to America and half of the
           | country to Russia for 30 years might have contributed here.
           | 
           | A cultural aspect may be that Americans are more willing to
           | try and fail, which in software has almost zero cost. In
           | engineering it's an advantage to be risk-averse. In software
           | where "building" is automated, and barely a factor. Theory
           | almost equals practice here. So it's cheaper to practice.
        
         | layer8 wrote:
         | There is/was still some important innovation coming out of
         | Germany from time to time. For example, the first LCD display
         | and the first chip card were invented in Germany, and the MP3
         | format was developed in Germany. Not a whole lot overall
         | though.
        
       | tevrede wrote:
       | Plankalkul (German pronunciation: ['pla:nkalky:l]) is a
       | programming language designed for engineering purposes by Konrad
       | Zuse between 1942 and 1945. It was the first high-level
       | programming language to be designed for a computer.
        
         | ho_schi wrote:
         | C is a pretty name for a language. C++ also. But Plankalkuhl is
         | awesome.
        
       | avg_dev wrote:
       | Wow, this is fascinating.
       | 
       | > Plankalkul (German pronunciation: ['pla:nkalky:l]) is a
       | programming language designed for engineering purposes by Konrad
       | Zuse between 1942 and 1945. It was the first high-level
       | programming language to be designed for a computer.
       | 
       | Apparently it influenced ALGOL 58 as well. Implementations were
       | made:
       | 
       | > Plankalkul was more comprehensively published [vague] in 1972.
       | The first compiler was implemented by Joachim Hohmann in his 1975
       | dissertation. Other independent implementations followed in 1998
       | and 2000 at the Free University of Berlin.
       | 
       | Here is something about primitive data types:
       | 
       | > The only primitive data type in the Plankalkul is a single bit
       | or boolean (German: Ja-Nein-Werte - yes-no value in Zuses
       | terminology). It is denoted by the identifier S 0 {\displaystyle
       | S0} {\displaystyle S0}. All the further data types are composite,
       | and build up from primitive by means of "arrays" and "records".
       | 
       | Cool.
       | 
       | Also this reminded me - nothing happens in a vacuum:
       | 
       | > In 1945, Zuse described Plankalkul in an unpublished book. The
       | collapse of Nazi Germany, however, prevented him from submitting
       | his manuscript.
       | 
       | I don't know what the significance of that statement is and I
       | won't baselessly speculate, but it sure makes me curious. It also
       | reminds me of some messages I remember seeing from Russian
       | founders in the recent past.
        
         | retrac wrote:
         | > I don't know what the significance of that statement is and I
         | won't baselessly speculate, but it sure makes me curious.
         | 
         | Zuse wrote an autobiography, and it has been translated into
         | English -- https://www.amazon.ca/Computer-My-Life-Konrad-
         | Zuse/dp/354056...
         | 
         | Chapter 5 - Origins of the Z4 - News from the United States -
         | Attempt at a Ph. D. dissertation - Computing machine for logic
         | operations - Final months of the war in Berlin - The evacuation
         | - Z4 completed in Gottingen - Final war days in the Allgau
         | 
         | Early in the war, he got drafted into the army and got a
         | release for his technical work. By the end of the war, he was
         | working on the Z4 to assist calculations for war work at a lab
         | in Berlin. In early 1945, his labs and work were heavily
         | damaged by bombing, some of the machines destroyed. He packaged
         | up what remained physically and shipped it by rail to a town to
         | the southeast. He resumed work there for a few weeks. He then
         | they fled, as many other groups did at this time, to the very
         | south in German-controlled territory that would become part of
         | the American sector. He does write a bit about that period:
         | 
         | > Dr. Funk obtained the necessary papers for me, my wife and
         | all my assistants to get out of Berlin. Only a few chose to
         | stay. It was painful for me to leave my parents behind in
         | Berlin. They had supported me all those years. I was able to
         | take the most important papers with me. But what was important?
         | With hindsight I would have known better. On this occasion,
         | too, much of value was lost.
         | 
         | > In Gottingen, a relative calm filled the weeks that followed.
         | The Z4 was assembled in the Aerodynamischer Versuchanstalt. We
         | were able to get it running so well that it executed the first
         | program-controlled calculations. While we demonstrated for the
         | gentlemen of the Aerodynamischer Versuchanstalt, including the
         | famous Professors Prandtl and Kuessner -- we could aready hear
         | the thunder of the cannons in Kassel. today we know that we
         | could have been overrun in Gottingen, but at the time no one
         | could have known what would happen. Gottingen could have become
         | a theater of the war, for it was not far from the great
         | underground ordinance factories in the Harz region. Later,
         | Gottingen was occupied by the British. They definitely would
         | have been very interested in the Z4. And we could have been
         | sent to England along with our machine. But this was not to be.
         | 
         | > The Z4 was our first priority. Finally we got the "order" to
         | deliver it to one of the underground ordinance factories. The
         | visit there was for us - we were completely accustomed to the
         | Berlin bombings - deeply shocking. For the first time we stood
         | face to face with the inhuman atrocities of the Third Reich.
         | Twenty thousand concentration camp prisoners worked under
         | unimaginable conditions in kilometre-long tunnels. During the
         | retreat from the East, far too many prisoners were assembled
         | together here, and no provisions had been made to assure that
         | there would be enough food for them. After the visit we told
         | ourselves, "Anywhere, but not here!" We asked them for just one
         | Wehrmacht truck and trailer with which to transport the device.
         | 
         | > Around the same time Wernher von Braun's team was moved from
         | the Harz to Bavaria; and through General Dornberger we were
         | able to get our marching orders for Bavaria, along with a
         | thousand liters of diesel fuel. For fourteen days we fled along
         | the front, past burning neighborhoods and over bombed-out
         | streets. We usually drove at night; during the day we found
         | makeshift shelter with the farmers. [...]
         | 
         | > The night drive through Munich was really eerie: the streets
         | were deserted, the city veiled in darkness, air raids were
         | expected. But nothing happened this night. There was a ghostly
         | silence. We drove straight through and did not stop until we
         | reached the Alps. For the first time in my life, I saw the high
         | mountain region. How peaceful the cloister of Ettal seemed. But
         | we had to push on. In Oberjoch bei Hindelang we finally found
         | temporary quarters, which we shared with Wernher von Braun and
         | his assistants.
        
         | pasquinelli wrote:
         | i somehow stumbled on a site covering zuse's concept of
         | calculating space when i was a teenager, and i think the idea
         | really struck me a lot harder than it seemed at the time.
         | 
         | https://en.m.wikipedia.org/wiki/Calculating_Space
        
           | BoiledCabbage wrote:
           | An English translation of his paper:
           | 
           | http://www.mathrix.org/zenil/ZuseCalculatingSpace-
           | GermanZeni...
           | 
           | Essentially thoughts about physics grounded in the digital
           | based cellular automata.
           | 
           | Haven't finished reading it yet, so can't judge it one way or
           | another.
        
       | RugnirViking wrote:
       | somewhat entertaining reading the section about him working on it
       | for months (years?) on his own before entering the formal field
       | and seeing that most of what he was working on had already been
       | developed. Even more impressive that he managed to swallow his
       | pride, draw parallels between his own thoughts on the matter and
       | the research, and then develop novel research.
        
         | Teever wrote:
         | I don't know too much about Zuse but from what I do know he was
         | far ahead of his time / environment.
         | 
         | From my understanding the way his ideas surrounding computer
         | design developed was dependent on the limitations of German
         | resources during the war. As such Zuse was focused on
         | mechanical designs while others in the rest of the world
         | focused more on electromechanical dominated designs.
         | 
         | The end result is that Zuse spent a lot of time going in
         | different directions after the war, developing things that
         | seemed to be curiosities at the time but may end up being
         | critical in space exploration.
         | 
         | https://www.youtube.com/watch?v=odwgpKRnWM8
         | 
         | https://www.iaarc.org/publications/proceedings_of_the_27th_i...
         | 
         | http://zuse.zib.de/assemblyLineSelfReplicatingSystems
        
           | [deleted]
        
       | mikeponders wrote:
       | I saw Zuse's Z1 computer on the Museum of Technology of Berlin
       | and I was astonished. Truly a work of art. He was the real world
       | equivalent of WWII scientist characters that you find in comics.
        
       | realworldperson wrote:
       | [dead]
        
       | haskellandchill wrote:
       | I found this, https://github.com/peter-shoes/plankalkul, a Java
       | implementation based on the 2000 modernization by Raul Rojas.
       | 
       | And another one, https://github.com/Hovestar/Plankalkul, based on
       | a bachelors thesis, http://www.cs.ru.nl/bachelors-
       | theses/2010/Bram_Bruines___021....
       | 
       | This one in Ruby by a GraalVM member has the best examples I
       | think: https://github.com/timfel/plankalkul2ruby.
        
       ___________________________________________________________________
       (page generated 2023-03-08 23:00 UTC)