lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]



2013/3/27 Tim Hill <drtimhill@gmail.com>:
My point was that, at a certain abstract level, semantic bugs are
mostly in the eye of the beholder. Attempts to formalize semantics
almost always end up creating formalisms that shift semantics back
into the realm of syntax; that is a formal logic system that while
self-consistent doesn't really say much about anything other than
that the symbol chain is valid within that system.

But surely that's all that is meant by "semantics" in the domain of "programming languages". It's the standard split between "syntax" (what are the symbols and the valid constructions in the source language) and "semantics" (how the symbols are mapped onto operations of the machine). That is all.


Attempts to go
beyond that fail in the same way silly ideas like the "semantic
web" nonsense of a few years back.

I'm not sure where you're going here, but I think there is a need to differentiate between the general field of semantics in human knowledge and what is meant by "semantic" in programming languages theory (ie "semantic analysis" etc) -- which just means how to the language symbols map to machine operations or to the lambda calculus. This has nothing to do with "human meaning"


On 27/03/2013 5:17 PM, Christian Bielert wrote:
I think that's actually a smart realization that I wish some of my
professors would make. What we consider semantics is mostly
something tied to the human mind, and it can't often be formalized
with these clean, simple mathematical symbols.

Agree.

However, just because
maths can't do it elegantly, it doesn't mean programming languages
and computers can't do it with all the raw power at their disposal.

I think you need to be careful not to confuse programming language "semantic" (a mathematical concept) and human mind "semantic" (a somewhat vague, ambiguous, debatable idea).


The lua VM is a definition of lua's semantics. It's not just a
formalism, it's a program. It actually carries semantics

Well, it carries a formal interpretation. Whether or not you consider that to embody further meaning depends on which of the 5 schools of mathematics you subscribe to (via Richard Hamming):

1. Platonist (ideas more real than the material world. ideas are discovered theorems).

2. Formalist (symbols. strictly mechanical processes. "when rigor enters, meaning departs" -- Hilbert.)

3. Logician (mathematics is logic. (Russell))

4. Intuitonist (mathematics matches reality, intuitively)

5. Constructivist (something exists if you can say how to make it)


, and even
if we are arrogant enough to pretend that the VM is meaningless
without humans writing programs for it,

I don't think it takes any arrogance to suggest that a VM is meaningless. From a purely formalist perspective it is meaningless. It's a function. A mathematical object. An information machine. Nothing more.


we can't get around the fact
that even with humans gone, a lua VM can translate a program into
real world actions - give it meaning, semantics.

Here I think you are confusing two uses of semantics.

Real world actions don't have intrinsic meaning or semantics. It is only when they are considered in social context, or "read" by a human that the come to mean something. Does a program run in the void of space with no human watching have meaning? semantics?


What programs lack is self-awareness, and the resulting "smart"
self-manipulation(yes, there are programs that manipulate
themselves, but I don't know of one that smartly evolves that way).

There are examples in the genetic programming literature that optimise according to goals. I'm not sure whether that qualifies as "smart".


They do have semantics, though.

You interpret them to have semantics. There is nothing intrinsic that makes them have semantics.

There is nothing arrogant about admitting that humans give meaning to fundamentally meaningless things. It's how language works. Symbol and semantic are separable.

Cheers,

Ross.