From: Pascal Bourguignon
Subject: Re: Terminology, translation, English-Turkish, interpretation, Lisp, etc.
Date: 
Message-ID: <87ekj1ida4.fsf@naiad.informatimago.com>
Emre Sevinc <·····@bilgi.edu.tr> writes:
> closure: OK, you're experienced Lisp programmers and you
> all know about closures. But many people outside don't know.
> To make the situation worse I have a few Turkish alternatives
> for it. But they generally refer to the notion of "closing".
> If I use that Turkish word which is "kapanis", it will be
> like "closure" as in the term used in context of topology.
> Are we really closing something? Or do the technical term
> "closure" refer to something else which is not very similar
> to "closing"? Try to be as specific as possible and think
> about how you'd tell the term as a single word in your
> native language (which I hope to be not English ;-)

I think that the intented meaning for closure is that of fence or
enclosure. In French, it would be "cl�ture".

Picture a function with free variables. When you bind all the free
variable of the function, you've effectively enclosed them into the
closure.  A function with free variable would be open, a function with
no free variable would be closed.


> tail call: Another pain in the ass! English has two IT
> terms, "tail" and "queue", however in Turkish we have
> one word "kuyruk" and depending on context it may
> have meanings like "the tail of an animal", "queue",
> "row", etc. Generally in CS we use the term "kuyruk"
> as the translation of "queue". So if I use the same
> word for "tail" and then use it in the context of
> "tail calling", "tail recursive calling", etc. then I'll
> be inviting confusion. I think I need another word,
> so can you clarify or give some synonyms for "tail
> calling", again think about it in your native language.
> What must "tail" remind the people who see it for the
> first time in context of programming. Can I use "tail"
> as "end of something", "extension of something". I know
> this is becoming confusing, too, but that's why I'm asking
> a bunch of clever guys :)

I think you could use final. "Final call" is not the english
expression, but if you translate it, it should convey the right
meaning. It's the call that's at the end of the execution of the
function, the final call.


> Well, I also have the "stack" and "heap" problem
> but since they have very similar translations in Turkish
> I think I'll have to handle that myself (but then again
> any recommendations will be appreciated indeed ;-)

Stack: think of a pile of plates, one over the other. To get one, you
       have to pop the plates over it.

Heap: think of a heap of peeble.  You can get any random peeple in
      no specific order.

--
__Pascal Bourguignon__

From: Mark McConnell
Subject: Re: Terminology, translation, English-Turkish, interpretation, Lisp, etc.
Date: 
Message-ID: <d3aed052.0411110818.570477cd@posting.google.com>
Pascal Bourguignon <····@mouse-potato.com> wrote in message news:<··············@naiad.informatimago.com>...
> Emre Sevinc <·····@bilgi.edu.tr> writes:
> [shortened]
> > 
> > tail call: Another pain in the ass! English has two IT
> > terms, "tail" and "queue", however in Turkish we have
> > one word "kuyruk" and depending on context it may
> > have meanings like "the tail of an animal", "queue",
> > "row", etc. Generally in CS we use the term "kuyruk"
> > as the translation of "queue". So if I use the same
> > word for "tail" and then use it in the context of
> > "tail calling", "tail recursive calling", etc. then I'll
> > be inviting confusion. I think I need another word,
> > so can you clarify or give some synonyms for "tail
> > calling", again think about it in your native language.
> > What must "tail" remind the people who see it for the
> > first time in context of programming. Can I use "tail"
> > as "end of something", "extension of something". I know
> > this is becoming confusing, too, but that's why I'm asking
> > a bunch of clever guys :)
> 
> I think you could use final. "Final call" is not the english
> expression, but if you translate it, it should convey the right
> meaning. It's the call that's at the end of the execution of the
> function, the final call.

My preference would be for "queue call" if that's the only choice. 
"Final" sounds like the last thing in a sequence.  The beauty of tail
recursion is that it's a long chain, and you never know which call is
the last until you get there.  In fact, it is a long stack [1] [2] of
calls.

[1] See discussion of stack/queue/heap elsewhere in this thread.

[2] Of course, we hope that the compiler will replace this stack with
jumps, so that the calls never have to go "on the stack".
From: xstream
Subject: Re: Terminology, translation, English-Turkish, interpretation, Lisp, etc.
Date: 
Message-ID: <10p6r3oocpk7u9b@corp.supernews.com>
"Emre Sevinc" <···········@gmail.com> wrote in message
·································@posting.google.com...
> Pascal Bourguignon <····@mouse-potato.com> wrote in message
news:<··············@naiad.informatimago.com>...
> > Emre Sevinc <·····@bilgi.edu.tr> writes:

> > > tail call:  English has two IT
> > > terms, "tail" and "queue", however in Turkish we have
> > > one word "kuyruk" and depending on context it may
> > > have meanings like "the tail of an animal", "queue",
> > > "row", etc. Generally in CS we use the term "kuyruk"
> > > as the translation of "queue". So if I use the same
> > > word for "tail" and then use it in the context of
> > > "tail calling", "tail recursive calling", etc. then I'll
> > > be inviting confusion. I think I need another word,
> > > so can you clarify or give some synonyms for "tail
> > > calling", again think about it in your native language.
> > > What must "tail" remind the people who see it for the
> > > first time in context of programming. Can I use "tail"
> > > as "end of something", "extension of something". I know
> > > this is becoming confusing, too, but that's why I'm asking
> > > a bunch of clever guys :)
> >
> > I think you could use final. "Final call" is not the english
> > expression, but if you translate it, it should convey the right
> > meaning. It's the call that's at the end of the execution of the
> > function, the final call.
>
> Thanks, that explanation provides the grounds for me not
> to use the translation of the "queue". I'll try to say
> is say it as "at the end call" or "final calling".
>
>

"Final calling" implies there is no other call down the road which is not
necessarily the case either with the process or with the intention of the
translation. I would like to recommend that you also consider something
along the lines of "rear-end" (as an adjective) like e.g. in "rear-end
lights" or "trailing-edge" (again as an adjective) like e.g. "trailing-edge
events".

>
> > > Well, I also have the "stack" and "heap" problem
> > > but since they have very similar translations in Turkish
> > > I think I'll have to handle that myself (but then again
> > > any recommendations will be appreciated indeed ;-)
> >
> > Stack: think of a pile of plates, one over the other. To get one, you
> >        have to pop the plates over it.
> >
> > Heap: think of a heap of peeble.  You can get any random peeple in
> >      no specific order.
> Their meanings are clear to me, the problem is saying
> them in Turkish :) We have the same translation for both
> in everyday language. The problem is that Turkish
> doesn't use a specific term for "a pile of plates, one
> over another". In Turkish you can say "a stack of plates"
> or "a heap of plates" and people will understand the situation
> based on context (if you're talking about a neat vertical
> pile, or plates scattered around).
>
> Anyway, one way or the other I'll try to translate them as
> clear as possible.
>

Based on experience with other languages, you can also try to see if a term
reminiscent of "accumulating pile" can be of use to the Turkish ear for
convincingly translating the "stack" and then you can use your own generic
word for "heap", which implies direct access capability and lack of order.

Panos C. Lekkas
From: Pascal Bourguignon
Subject: Re: Terminology, translation, English-Turkish, interpretation, Lisp, etc.
Date: 
Message-ID: <87r7n0hgfd.fsf@naiad.informatimago.com>
···········@gmail.com (Emre Sevinc) writes:
> > > Well, I also have the "stack" and "heap" problem
> > > but since they have very similar translations in Turkish
> > > I think I'll have to handle that myself (but then again
> > > any recommendations will be appreciated indeed ;-)
> > 
> > Stack: think of a pile of plates, one over the other. To get one, you
> >        have to pop the plates over it.
> > 
> > Heap: think of a heap of peeble.  You can get any random peeple in
> >      no specific order.
> 
> Their meanings are clear to me, the problem is saying
> them in Turkish :) We have the same translation for both
> in everyday language. The problem is that Turkish
> doesn't use a specific term for "a pile of plates, one
> over another". In Turkish you can say "a stack of plates"
> or "a heap of plates" and people will understand the situation
> based on context (if you're talking about a neat vertical
> pile, or plates scattered around).
> 
> Anyway, one way or the other I'll try to translate them as
> clear as possible.

First, you should check in other Turkish computer books what terms are
used.

Stacks are LIFO queues: last-in, first-out.

I guess "heap" (French: tas) may be also slightly misleading since in
a real heap, you may have to move away some items to get those at the
bottom or behind.  A heap  is actually a direct access structure: all
data items are directly available thru their references.


> Another question:
> 
> "Continuations". I also need clarification on that
> because if I translate it simply as "devam edis" it
> means something like "continuing", "the process of
> continuing". Pitman, in his article, says: "Continuations
> are functions". But if I translate it that way people
> will get a very weird reading I guess. 

They're continuing functions :-)  I think your translation is good
(basing me on your English equivalent "the process of continuing").


Normal functions are called, begin execution, and eventually end
execution and then return to the caller.

Continuations are functions that are called, begin execution and
eventually call another continuation.  They don't return to the
caller. (They could return to the caller if the caller provided a
continuation argument as with call/cc).  So in a sense, continuations
don't have a call stack like normal functions do, but allow the
programmer to manipulate explicitely a call stack, or any kind of call
(jump) control structure. This is handy to implement tail-recursion
elimination (and other control structures).


> Any suggestions? Young Turkish programmers and CS students
> will be indebted to you ;-)

-- 
__Pascal Bourguignon__
From: Bulent Murtezaoglu
Subject: Re: Terminology, translation, English-Turkish, interpretation, Lisp, etc.
Date: 
Message-ID: <874qjwwlga.fsf@p4.internal>
>>>>> "PB" == Pascal Bourguignon <····@mouse-potato.com> writes:
[...]
    PB> First, you should check in other Turkish computer books what
    PB> terms are used.

And weep.  I don't know how it is in other languages, but I am apalled
by the low quality of translations.  That's why Emre (and to a certain
extent myself) is/are trying to do a good job.  It is cheap and easy
to do a direct translation, but then the material becomes doubly
confusing.  You should see the hack job MS did for the dial-up adaptor
in the Turkish version of Windows for example.  

My present preference is for terms that are somewhat descriptive to
the native speaker.  I don't quite see the difference between using
the English word and making up some Turkish-sounding nonsense
otherwise (actually there is a difference, somebody understands the
former!).  The Humpty Dumpty approach to translation + consistent use
later on will probably take care of things down the line, but I fear
one will end up confusing the initial readers unnecessarily.  The
whole point of this translation mania is to show people that there's a
wonderous universe to be explored out there (possibly by picking up
enough English as they go).  It's not likely to work even for the 
bright/enthusiastic 1% if they cannot get past the weird locutions 
we contrive out of convenience.

[...]
    PB> I guess "heap" (French: tas) may be also slightly misleading
    PB> since in a real heap, you may have to move away some items to
    PB> get those at the bottom or behind.  A heap is actually a
    PB> direct access structure: all data items are directly available
    PB> thru their references.

;) There ya go.  I was just thinking of this.  Let's see if we can make 
'spread out mess' (yayinti?) work for the garbage-collectable heaps.  

[...]
    PB> They're continuing functions :-) I think your translation is
    PB> good (basing me on your English equivalent "the process of
    PB> continuing").

I wonder what kind of terminology got cooked up for setjump/longjump 
in C.  

I am thinking more in terms of bookmarks etc. for continuations.  Not 
entirely accurate (the mindset is not captured when a bookmark is placed) 
but somehat easier understand.
 
How is it in French?  Does Acad�mie fran�aise take it upon itself 
to come up with translations and ram them through official channels?  
Or do you guys just do it yourselves?  

Thanks a lot BTW.  This was helpful.

BM
From: Pascal Bourguignon
Subject: Re: Terminology, translation, English-Turkish, interpretation, Lisp, etc.
Date: 
Message-ID: <877josh1od.fsf@naiad.informatimago.com>
Bulent Murtezaoglu <··@acm.org> writes:
> [...]
>     PB> They're continuing functions :-) I think your translation is
>     PB> good (basing me on your English equivalent "the process of
>     PB> continuing").
> 
> I wonder what kind of terminology got cooked up for setjump/longjump 
> in C.  
> 
> I am thinking more in terms of bookmarks etc. for continuations.  Not 
> entirely accurate (the mindset is not captured when a bookmark is placed) 
> but somehat easier understand.

Well, I see a bookmark as a marker where to _return_ to.  A
continuation is more where to _proceed_ than return to.


> How is it in French?  Does Acad�mie fran�aise take it upon itself 
> to come up with translations and ram them through official channels?  
> Or do you guys just do it yourselves?  

Yes, The Acad�mie Fran�aise edits periodic updates of terminology that
are published in the Journal Officiel.  Therefore we've got some nice
words to translate to, but sometimes they make choices of terminology
that are not so happy.

-- 
__Pascal Bourguignon__
From: Hartmann Schaffer
Subject: Re: Terminology, translation, English-Turkish, interpretation, Lisp, etc.
Date: 
Message-ID: <27Skd.211$Su4.2349@newscontent-01.sprint.ca>
Bulent Murtezaoglu wrote:
>>>>>>"PB" == Pascal Bourguignon <····@mouse-potato.com> writes:
> 
> [...]
>     PB> First, you should check in other Turkish computer books what
>     PB> terms are used.
> 
> And weep.  I don't know how it is in other languages, but I am apalled
> by the low quality of translations.  That's why Emre (and to a certain
> extent myself) is/are trying to do a good job.  It is cheap and easy
> to do a direct translation, but then the material becomes doubly
> confusing.  You should see the hack job MS did for the dial-up adaptor
> in the Turkish version of Windows for example.  

how big do you plan the text to be.  given the difficulties you describe 
it might be a good idea to add an extensive glossary where the concepts 
get explained in detail and refer to it frequently (or use some font or 
marker that directs the reader to the glossary)

hs
From: Bulent Murtezaoglu
Subject: Re: Terminology, translation, English-Turkish, interpretation, Lisp, etc.
Date: 
Message-ID: <87fz3gufjb.fsf@p4.internal>
>>>>> "HS" == Hartmann Schaffer <··@hartmann.schaffernet> writes:
[...]
    HS> how big do you plan the text to be.  given the difficulties
    HS> you describe it might be a good idea to add an extensive
    HS> glossary where the concepts get explained in detail and refer
    HS> to it frequently (or use some font or marker that directs the
    HS> reader to the glossary)

Just what we were thinking actually, as a project for someone.  It
seems obvious that the technical language, as it exists now, will be
inadequate for meaningful translations of lispy stuff.  Closures,
continuations, tail calls etc. are just the beginning.  Since there
seems to be interest, we'll probably neet to at least to through the
glossary in the hyperspec.  So the project was that we'd use a
collaborative environment (*) for growing a dictionary and back links
from iffy translations of words in the published translation/text.
The model might be similar to picking a style-sheet on a web browser
where the sytle-sheets are replaced with snapshots from the dictionary
and/or consistent 'views.'  This is probably a wrong model for
evolving common usage if the users can actually pick the translations,
but with enough tracking one could get an idea of who likes what to
get at a common usage.

This is somewhat tougher than it sounds because there are a gazillion
kinds of suffixes in Turkish.  So if authoring is going to be easy then
the plumbing between the dict. system and the text server will need to
grok some Turkish.  We'll see.

BM

(*) There was an interesting combination of the wiki idea + voting for 
evolving a CS dictionary for Turkish a few years ago.  That might get 
resurrected maybe.  Dunno, Emre is doing all the work. I just send people 
I know e-mails asking for permission to translate.
From: Hartmann Schaffer
Subject: Re: Terminology, translation, English-Turkish, interpretation, Lisp, etc.
Date: 
Message-ID: <p1Skd.210$Su4.2266@newscontent-01.sprint.ca>
Emre Sevinc wrote:
> ...
>>>Well, I also have the "stack" and "heap" problem
>>>but since they have very similar translations in Turkish
>>>I think I'll have to handle that myself (but then again
>>>any recommendations will be appreciated indeed ;-)
>>
>>Stack: think of a pile of plates, one over the other. To get one, you
>>       have to pop the plates over it.
>>
>>Heap: think of a heap of peeble.  You can get any random peeple in
>>     no specific order.
> 
> Their meanings are clear to me, the problem is saying
> them in Turkish :) We have the same translation for both
> in everyday language. The problem is that Turkish
> doesn't use a specific term for "a pile of plates, one
> over another". In Turkish you can say "a stack of plates"
> or "a heap of plates" and people will understand the situation
> based on context (if you're talking about a neat vertical
> pile, or plates scattered around).
> 
> Anyway, one way or the other I'll try to translate them as
> clear as possible.

i'm sure that there are some turkish texts for other programming 
languages which use stack and heaps, like C, Pascal, Algol.  what 
terminology are they using?  can't you just adapt their terminology?

hs