Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Apr 2004 20:31:04 +0400
From:      Sergey Zaharchenko <doublef@tele-kom.ru>
To:        Dag-Erling =?utf-8?B?U23QrHJncmF2?= <des@des.no>
Cc:        chat@freebsd.org
Subject:   Re: Beginning C++ in FreeBSD
Message-ID:  <20040428163104.GA10537@Shark.localdomain>
In-Reply-To: <xzpfzao18gd.fsf@dwp.des.no>
References:  <20040425215837.3f4708fe.cpressey@catseye.mine.nu> <20040426094335.GA7578@online.fr> <20040426115842.GA4144@Shark.localdomain> <xzphdv5wq2q.fsf@dwp.des.no> <20040427160737.GA1325@Shark.localdomain> <xzpr7u918jv.fsf@dwp.des.no> <20040428023920.GA382@Shark.localdomain> <xzpfzao18gd.fsf@dwp.des.no>

next in thread | previous in thread | raw e-mail | index | archive | help

--fUYQa+Pmc3FrFX/N
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Wed, Apr 28, 2004 at 04:30:10PM +0200,
 Dag-Erling Sm=D0=ACrgrav probably wrote:
> Sergey Zaharchenko <doublef@tele-kom.ru> writes:
> > If the thesis sounds like
> >
> >> Any algorithm that can be written in one Turing-complete language can
> >> be written in another Turing-complete language.
> >
> > then I think I understand it.
>=20
> No.  A language is Turing-complete if it can be used to implement a
> universal Turing machine.  What you quote is merely a consequence of
> Turing-completeness, not its definition.
>=20

OK.

If I take out every word about main() from C's specification (making it
an ordinary function), will the resulting `language' stay
Turing-complete? If not, why? Is there an *algorithm* that I can write
in C that I can't write in this derived language? (except that I have to
run some of the functions of the resulting code from somewhere else).

>
> > In the functional way (`what it can do') C is not different from C++, as
> > you all are pointing out (so I'm not trying to persuade you Turing was
> > wrong). It's different in what it allows you to inform the system (the
> > linker, for instance) about (and it will learn that *before* any actual
> > algorithm of yours is executed).
>=20
> The operating system, the C++ compiler and the linker are all written
> in C, and using C, you can write an emulator for the computer, on
> which the OS, C++ compiler and linker will behave exactly as you
> expect.
>=20

[ In fact, what I described is indeed intended to be a shared library,
not a whole program... ]

Within such emulation you will certainly be able to whatever you wish,
including dynamically linking a library which has its own initialization
in it (the constructor translated to C) to an executable. Fortunately,
you don't have to do it.

But how do you link a real executable against an emulated shared
library:)?

> DES
> --=20
> Dag-Erling Sm?rgrav - des@des.no
>=20

--=20
DoubleF
Everything is worth precisely as much as a belch, the difference being
that a belch is more satisfying.
		-- Ingmar Bergman

--fUYQa+Pmc3FrFX/N
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (FreeBSD)

iD8DBQFAj9xHwo7hT/9lVdwRAt8hAJ9r4OJGbCpWZrLZOVNcGi/h/7+LywCcDIdk
g7LZkf4zyPAWWUoSgNS1JN4=
=5wV7
-----END PGP SIGNATURE-----

--fUYQa+Pmc3FrFX/N--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040428163104.GA10537>