Eli Mellen
08/02/2023, 2:03 PMJosh Cho
08/03/2023, 1:25 PMDenny Vrandečić
08/04/2023, 3:13 AMMariano Guerra
Despite all the effort that has gone into it, it doesn’t look like programming language design has any real compounding power. There are better and worse languages, but other market and technical forces can swamp language choices.https://twitter.com/ID_AA_Carmack/status/1689297553408315392
LinenBot
08/10/2023, 2:21 PMkam
joined #thinking-together. Also, linen dev
joined.Kartik Agaram
Daniel Buckmaster
08/25/2023, 12:57 AMReductionism and holism are both mistakes. In reality, explanations do not form a hierarchy with the lowest level being the most fundamental. Rather, explanations at any level of emergence can be fundamental. Abstract entities are real, and can play a role in causing physical phenomena. Causation is itself such an abstraction.
When we use theories about emergent physical quantities to explain the behaviour of water in a kettle, we are using an abstraction - an ‘idealized’ model of the kettle that ignores most of its details - as an approximation to a real physical system. But when we use a computer to investigate prime numbers, we are doing the reverse: we are using the physical computer as an approximation to an abstract one which perfectly models prime numbers. Unlike any real computer, the latter never goes wrong, requires no maintenance, and has unlimited memory and unlimited time to run its program.
Abstractions are essential to a fuller explanation. You know that if your computer beats you at chess, it is really the program that has beaten you, not the silicon atoms or the computer as such. [Nor, I would add, the arrangements of pixels on the screen which symbolize knights, pawns, etc.] The abstract program is instantiated physically as a high-level behaviour of vast numbers of atoms, but the explanation of why it has beaten you cannot be expressed without also referring to the program in its own right. That program has also been instantiated, unchanged, in a long chain of different physical substrates, including neurons in the brains of the programmers and radio waves when you downloaded the program via wireless networking, and finally as states of long- and short-term memory banks in your computer. The specifics of that chain of instantiations may be relevant to explaining how the program reached you, but it is irrelevant to why it beat you: there, the content of the knowledge (in it, and in you) is the whole story. That story is an explanation that refers ineluctably to abstractions; and therefore those abstractions exist, and really do affect physical objects in the way required by the explanation.To connect this to the content of the episode - I think all the different representations of a cube on a screen are "real". The parts that you might dismiss as not having an "effect on the world", like the data structures in RAM, or the textual representation stored on disk, are as unavoidably real at their own levels of abstraction. *Colloquially, I think working programmers use "abstraction" to mean things ranging from "I can ignore the details 'below' this point" to "I can compress this implementation into fewer syntax tokens". A contrary view from Dijkstra, which I think is closer to Deutsch's view, is abstraction as "a new semantic layer in which one can be absolutely precise".
Marcelle Rusu (they/them)
08/28/2023, 2:04 PM# here's a sample program in my (object oriented) language
fn add(a, b) = a + b
add(1, 2)
generated logic program in pseudo syntax (#A
is a pattern to check value is type of A
, ?a
is like prolog's A
, {...}
is map literal.)
-- preloaded facts
lookup(#Number, :+, {args: [#Number, #Number], ret: #Number}).
-- program
add(?a, ?b, ?ret) :- lookup(?a, :+, {args: [?a, ?b], ret: ?ret}).
?- add(1, 2, ?_).
The specifics of my logic language is likely flawed, but I'm curious about the general idea of using a fully-fledged logic language to generate a program in & run instead of generated a typed AST and running ad-hoc type systems.
My question is, what are people's thoughts on this? Any previous work in this area? Any obvious flaws?guitarvydas
08/28/2023, 2:35 PMMartin Sandin
08/28/2023, 2:48 PMIvan Reese
Jim Meyer
08/28/2023, 4:45 PMEli Mellen
08/28/2023, 4:57 PMSteve Dekorte
09/03/2023, 12:11 AMJeremy Vuillermet
09/04/2023, 11:38 AMKartik Agaram
LinenBot
09/07/2023, 4:46 AMSamuel Timbó
joined #thinking-together.curious_reader
09/07/2023, 10:29 AMGrant Forrest
09/10/2023, 1:45 AMPatrick Connolly
09/15/2023, 5:32 PMguitarvydas
09/19/2023, 1:24 AMGuyren Howe
09/19/2023, 5:43 PMNilesh Trivedi
09/20/2023, 8:50 AMQqwy / Marten
09/20/2023, 3:49 PMThe Cabin is a room. "The front of the small cabin is entirely occupied with navigational instruments, a radar display, and radios for calling back to shore. Along each side runs a bench with faded blue vinyl cushions, which can be lifted to reveal the storage space underneath. A glass case against the wall contains several fishing rods.
Scratched windows offer a view of the surrounding bay, and there is a door south to the deck. A sign taped to one wall announces the menu of tours offered by the Yakutat Charter Boat Company."
The Cabin contains a glass case. In the glass case is a collection of fishing rods.
The case is closed, transparent, and openable.
The bench is in the cabin. On the bench are some blue vinyl cushions.
The bench is enterable.
The Beach is a room. "A beautiful beach where the sunset can be seen. Some seagulls are flying overhead."
The Beach is south of the Cabin.
Some points for consideration are:
• Where do you think a language like Inform fall on the ‘formal’ vs ‘informal’ spectrum?
• Inform is perhaps the most widely used tool to create text adventures with today. Could this be considered a success story where non-programmer end users were able to build something through ‘programming’?Konrad Hinsen
09/21/2023, 7:06 AMWhere do you think a language like Inform fall on the ‘formal’ vs ‘informal’ spectrum?Preliminary question; what exactly changes from one end to the other of that spectrum? My current answer is: how much of the total information conveyed is formal. I'd love to hear from others who have thought about this question, or know about work on this topic in the literature. To illustrate my definition, a few examples: • Machine code is near 100% formal. • Standard programming languages are mostly formal, the informal part being the variable names, which convey context-dependent information to humans but nothing to the compiler/interpreter. • Markup languages (HTML, Markdown, ...) are mostly informal, because the formalized information is not the most relevant part. You could strip it away and the rest would still fulfill its purpose. There are lots of subtleties I am glossing over. Example: A Python program saying
print("...")
with a 100 KB string is basically just decorated informal prose. My definition applies to typical or intended use, not possible extremes.
Back to Inform: I cannot judge from the example which information is extracted from the code by formal processing. Is this a controlled natural language, like Attempto ? Or plain English from which some engine extracts isolated keywords?Alex McLean
09/22/2023, 8:35 AMTim Lavoie
09/23/2023, 12:35 AMTim Lavoie
09/26/2023, 5:36 AM