Programmes vs Data [was: Re: [plug] Community Seminars]

Bernd Felsche bernie at innovative.iinet.net.au
Sat Jun 19 16:12:40 WST 2004


On Saturday 19 June 2004 15:25, James Devenish wrote:
> In message <20040619041125.GL26977 at patrick.wattle.id.au>

> on Sat, Jun 19, 2004 at 12:11:25PM +0800, Cameron Patrick wrote:
> > | Nor are TeX and Docbook, strictly speaking.

> > I'm pretty sure that XSL (which Docbook is written in)

> (Actually, DocBook is not written in XSL.)

> In message <20040619041125.GL26977 at patrick.wattle.id.au>
> on Sat, Jun 19, 2004 at 12:11:25PM +0800, Cameron Patrick wrote:
> > Likewise Postscript is a complete programming language.
> >
> > In message <200406191155.33293 at death.2.spammers>
> >
> > on Sat, Jun 19, 2004 at 11:55:33AM +0800, Bernd Felsche wrote:
> > | A program is something that the system executes "directly"; data
> > | are what programs use.
>
> Bernd: I understand the point of view that "source code" files are data
> while "compiled objects" are programmes. However, we treat some things

You haven't understood correctly.
Read the original which has the full explanatory paragraph.

I wrote:
	Bash, Perl, Python, Java, Basic, etc are intepreted by
	programmes that are designed to give those languages wide
	access to the machine's facilities. That's different to
	languages such as TeX, HTML, PostScript, OO.o etc where the
	application program is designed for a particular task; not
	one of system control but solely the control of the
	application's functions.

> like programmes even though they are data. For example, programming
> languages such as PostScript and Java rarely lead to "compiled objects".

Please don't create confusion by mixing storage of programmes into
the equation. Programmes are typically stored as data. For all
practical computing devices that concern the novice, that is true at
present.

> Even after using a "Java compiler", I am left with bytecode that does
> not run directly on CPU. So, would you call the bytecodes "programmes"

It does run directly on *its* CPU in the JVM.

> or "data"? If "data", do they become "programmes" only then the bytes
> can be run directly by the CPU platform? More loosely, what about shell
> scripts? They're "clearly" data by your definition, but don't we have to
> treat them as though they are programmes???

Data includes stored programmes.

Which data are programmes? Naturally those which can be executed by
the processor to produce a programmed outcome; bugs notwithstanding.

It'd be tenuous indeed to refer to the contents of an .sxw file as a
programme; it *may* contain zero or more programmes, but more
likely, it contains data that can be processed by an *application*
to produce the desired result; or something that's close enough.

> In message <40D44C03.4932.5341A8 at localhost>
>
> on Sat, Jun 19, 2004 at 02:21:55PM +0800, Arie Hol wrote:
> > > | A program is something that the system executes "directly"; data
> > > | are what programs use.

> > A program is a series of instructions which are understood (carried
> > out) by a computer, regardless of whether it is compiled or
> > interpretted.

> > Data - is generally regarded as unprocessed information - ie raw facts

> Arie: I was attracted to your above definition of data, yet it still
> doesn't resolve the question of what is "programme" and what is "data".
> E.g. how do you draw the line between "instructions" and "data"? To take
> Cameron's example of XSL: it sounds like it matches your definition of
> "interpretted programme" because it contains instructions. Yet, those
> instructions are not presented procedurally and must be interpreted
> (e.g. syntax checking) before being "used". (XSL programmes are
> basically never stored on disk in a "compiled" form.) So, is an XSL file
> called "programme" or "data"? Sounds like both, which is a position with
> which I am comfortable. However, I suspect this does not sit well with
> Bernd's idea that programmes and data are distinct.

Everything stored or accessed by common computers are data.

Stored programmes are data. I never intended to draw an arificial
boundary that excludes programmes from being data.

The object was to draw a *simple* distinction between what executes,
and what's used by a running programme to determine how it behaves.

It's not to write a thesis on the theology of computing.

Few people have the time to procrastinate in ivory towers to obtain
what they subsequently opine as truth. 

-- 
/"\ Bernd Felsche - Innovative Reckoning, Perth, Western Australia
\ /  ASCII ribbon campaign | I'm a .signature virus!
 X   against HTML mail     | Copy me into your ~/.signature
/ \  and postings          | to help me spread!





More information about the plug mailing list