From: Andreas Rossberg <rossberg@ps.uni-sb.de>
To: caml-list <caml-list@inria.fr>
Subject: Re: [Caml-list] Does Caml have slow arithmetics ?
Date: Thu, 08 Jul 2004 11:51:10 +0200 [thread overview]
Message-ID: <40ED190E.3080005@ps.uni-sb.de> (raw)
In-Reply-To: <20040708034455.GB29942@davidb.org>
David Brown wrote:
>
> In some functional languages (Scheme, specifically), tail recursion is
> required to be implemented iteratively. It is a common enough idiom,
> and easy enough to implement, that it is generally done in functional
> languages. In fact, gcc does it in C, with enough optimization.
The latter is, to a certain extent, a myth.
First, you have to distinguish between simple tail *recursion*, and the
much more general concept of tail *call*. I believe Scheme requires to
fully optimize the latter, and so it is done by all decent FPL
implementations. GCC does not do that, already falling short of mutually
recursive functions, IIRC.
Second, a C compiler can only optimize tail recursion under limited
circumstances, because generally the C language semantics prevent it
(once more due to pointers, particularly C allowing - and its libraries
relying on - taking the address of local variables). Last time I heard
of it, it was said that GCC is having a hard time doing anything
practically usefull at all.
- Andreas
--
Andreas Rossberg, rossberg@ps.uni-sb.de
Let's get rid of those possible thingies! -- TB
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
next prev parent reply other threads:[~2004-07-08 9:51 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-07-07 6:45 Diego Olivier Fernandez Pons
2004-07-07 8:14 ` Richard Jones
2004-07-07 9:13 ` Basile Starynkevitch [local]
2004-07-07 12:32 ` Diego Olivier Fernandez Pons
2004-07-07 13:00 ` Basile Starynkevitch [local]
2004-07-07 15:09 ` Olivier Pérès
2004-07-07 17:06 ` David Brown
2004-07-07 17:43 ` Olivier Pérès
2004-07-08 3:40 ` David Brown
2004-07-08 11:06 ` Olivier Pérès
2004-07-07 13:06 ` Richard Jones
2004-07-07 13:22 ` David Haguenauer
2004-07-07 15:48 ` Brian Hurt
2004-07-07 13:57 ` Evgeny Chukreev
2004-07-07 14:58 ` Xavier Leroy
2004-07-07 15:48 ` Evgeny Chukreev
2004-07-07 19:16 ` skaller
2004-07-08 3:44 ` David Brown
2004-07-08 5:50 ` skaller
2004-07-08 9:51 ` Andreas Rossberg [this message]
2004-07-08 12:03 ` Marcin 'Qrczak' Kowalczyk
2004-07-08 14:04 ` David Brown
2004-07-08 14:36 ` Luc Maranget
2004-07-08 15:11 ` Alex Baretta
2004-07-08 15:49 ` Luc Maranget
2004-07-09 14:06 ` Alex Baretta
2004-07-09 16:20 ` Markus Mottl
[not found] ` <Luc.Maranget@inria.fr>
2004-07-09 17:54 ` Norman Ramsey
2004-07-12 8:08 ` Luc Maranget
2004-07-08 15:51 ` Markus Mottl
2004-07-08 18:27 ` skaller
2004-07-08 21:14 ` [Caml-list] tail recursion and register poor Intel architecture Brandon J. Van Every
2004-07-08 21:35 ` Brian Hurt
2004-07-08 23:01 ` Brandon J. Van Every
2004-07-09 4:36 ` Brian Hurt
2004-07-09 6:53 ` Florian Hars
2004-07-09 14:44 ` Brandon J. Van Every
2004-07-09 6:55 ` skaller
2004-07-09 14:45 ` Brandon J. Van Every
2004-07-09 16:09 ` skaller
2004-07-10 9:19 ` [Caml-list] embedded OCaml Brandon J. Van Every
2004-07-11 23:11 ` Alex Baretta
2004-07-12 7:39 ` Brandon J. Van Every
2004-07-12 14:04 ` Alex Baretta
2004-07-12 18:48 ` Brandon J. Van Every
2004-07-12 23:22 ` Richard Jones
2004-07-13 6:39 ` Alex Baretta
2004-07-13 8:47 ` Brandon J. Van Every
2004-07-13 8:58 ` Benjamin Geer
2004-07-13 9:47 ` Brandon J. Van Every
2004-07-13 9:18 ` Damien Doligez
2004-07-13 9:56 ` [Caml-list] OCaml as business model Brandon J. Van Every
2004-07-13 9:59 ` Richard Jones
2004-07-13 10:50 ` Brandon J. Van Every
2004-07-13 11:20 ` Damien Doligez
2004-07-13 12:01 ` Brandon J. Van Every
2004-07-14 8:05 ` [Caml-list] embedded OCaml I R T
2004-07-12 10:25 ` Christophe TROESTLER
2004-07-13 7:06 ` Alex Baretta
2004-07-08 17:12 ` Tail calls (Was Re: [Caml-list] Does Caml have slow arithmetics ?) brogoff
2004-07-08 17:23 ` Richard Jones
2004-07-12 17:07 ` Xavier Leroy
2004-07-12 21:13 ` skaller
2004-07-13 7:20 ` Xavier Leroy
2004-07-08 15:00 ` [Caml-list] Does Caml have slow arithmetics ? Brian Hurt
2004-07-08 13:30 ` Alex Baretta
2004-07-07 21:26 ` Jon Harrop
2004-07-08 5:05 ` Jacques GARRIGUE
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=40ED190E.3080005@ps.uni-sb.de \
--to=rossberg@ps.uni-sb.de \
--cc=caml-list@inria.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox