<HTML>
<HEAD>
   <TITLE>Linux Threads Home Page: Are there languages that support threads?</TITLE>
</HEAD>
<BODY BACKGROUND="GraySea.gif">

<P><FONT SIZE=+3>Are there languages that support threads?</FONT></P>

<UL>
<P>Currently, Ada, Modula-3, Python 1.4, SmallTalk/X, Objective-C/ Gnustep
and Java have intrinsic language elements to support threads (for example,
Ada has the 'Select' statement which is a &quot;thread guard&quot;). However,
the Linux implementations of these languages do not yet support the new
kernel threads.</P>

<P>Naturally, C and C++ can make calls to spawn threads and processes,
but there are no language elements to support them beyond these system
calls. See below for a listing of available languages:</P>
</UL>

<P>Threading Languages</P>

<TABLE BORDER=1 CELLSPACING=2 CELLPADDING=5 WIDTH="100%" >
<TR>
<TD ALIGN=RIGHT><FONT SIZE=+2>Titles:</FONT></TD>

<TD><FONT SIZE=+2>Ada/Ed</FONT></TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Author:</TD>

<TD>New York University</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Repositories:</TD>

<TD>Documentation [] 
<P><A HREF="http://sunsite.unc.edu/pub/Linux/devel/lang/ada/INDEX.html">Source
[http://sunsite.unc.edu/pub/Linux/devel/lang/ada/INDEX.html]</A></P>
</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Newsgroup:</TD>

<TD><A HREF="news:comp.lang.ada">comp.lang.ada [news:comp.lang.ada]</A></TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Threads Lib:</TD>

<TD>LinuxThreads</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Description:</TD>

<TD>Ada/Ed is a translator-interpreter for Ada. It is intended as a teaching
tool and does not have the capacity, performance or robustness of commercial
Ada compilers. Ada/Ed was developed as a long-range project in language
definition and software prototyping.</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>License: </TD>

<TD>GPL</TD>
</TR>
</TABLE>

<TABLE BORDER=1 CELLSPACING=2 CELLPADDING=5 WIDTH="100%" >
<TR>
<TD ALIGN=RIGHT><FONT SIZE=+2>Title:</FONT></TD>

<TD><FONT SIZE=+2>Gnat</FONT></TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Author:</TD>

<TD>New York University</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Repositories:</TD>

<TD><A HREF="http://www.ocsystems.com/xada/gnat1.html">Documentation [Source
http://www.ocsystems.com/xada/gnat1.html]</A> 
<P><A HREF="http://sunsite.unc.edu/pub/Linux/devel/lang/ada/INDEX.html">SVGA
Bindings [http://sunsite.unc.edu/pub/Linux/devel/lang/ada/INDEX.html]</A></P>
</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Newsgroup:</TD>

<TD><A HREF="news:comp.lang.ada">comp.lang.ada [news:comp.lang.ada]</A></TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Threads Lib:</TD>

<TD>LinuxThreads</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Description:</TD>

<TD>GNAT is the Ada 95 compiler produced by a collaboration between a team
at New York University and the Free Software Foundation, 'owner' of the
GNU software project.</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>License: </TD>

<TD>GPL</TD>
</TR>
</TABLE>

<TABLE BORDER=1 CELLSPACING=2 CELLPADDING=5 WIDTH="100%" >
<TR>
<TD ALIGN=RIGHT><FONT SIZE=+2>Title:</FONT></TD>

<TD><FONT SIZE=+2>Guavac &amp; Kaffe (Java)</FONT></TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Author:</TD>

<TD>???</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Repositories:</TD>

<TD><A HREF="http://http.cs.berkeley.edu/~engberg/guavac/">Guavac Documentation
[http://http.cs.berkeley.edu/~engberg/guavac/]</A> 
<P><A HREF="http://web.soi.city.ac.uk/~tim/kaffe/kaffe.html">Kaffe Documentation
[http://web.soi.city.ac.uk/~tim/kaffe/kaffe.html]</A> </P>

<P><A HREF="ftp://summit.stanford.edu/pub/guavac/">Gauvac Source [ftp://summit.stanford.edu/pub/guavac/]</A></P>

<P><A HREF="ftp://ftp.sarc.city.ac.uk/pub/kaffe/">Kaffe Source [ftp://ftp.sarc.city.ac.uk/pub/kaffe/]</A></P>
</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Newsgroup:</TD>

<TD></TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Threads Lib:</TD>

<TD>???</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Description:</TD>

<TD>Guavac is a new compiler for the Java language, written by Effective
Edge Technologies and distributed under the Gnu Public License. You should
feel free to use, copy and modify it, based on the terms in the COPYING
file included in this distribution. 
<P>Kaffe is a virtual machine design to execute Java bytecode. Unlike other
virtual machines available, this machine performs &quot;just-in-time&quot;
code conversion from the abstract code to the host machine's native code.
This will ultimately allow execution of Java code at the same speed as
standard compiled code but while maintaining the advantages and flexibility
of code independence.</P>
</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>License: </TD>

<TD>GPL</TD>
</TR>
</TABLE>

<TABLE BORDER=1 CELLSPACING=2 CELLPADDING=5 WIDTH="100%" >
<TR>
<TD ALIGN=RIGHT><FONT SIZE=+2>Title:</FONT></TD>

<TD><FONT SIZE=+2>Inferno</FONT></TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Author:</TD>

<TD>Sean Dorward, Phil Winterbottom, and Rob Pike</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Repositories:</TD>

<TD><A HREF="http://inferno.lucent.com/inferno/">Documentation/Source
[http://inferno.lucent.com/inferno/]</A></TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Newsgroup:</TD>

<TD></TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Threads Lib:</TD>

<TD>ProvenThreads (?)</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Description:</TD>

<TD>Inferno(tm) is a new network operating system and programming 
environment to deliver content in a rich environment of heterogenous
networks, clients and servers.
</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>License: </TD>

<TD>Free but with <A HREF="http://inferno.lucent.com/inferno/registration.html">special requirements</A>.</TD>
</TR>
</TABLE>

<TABLE BORDER=1 CELLSPACING=2 CELLPADDING=5 WIDTH="100%" >
<TR>
<TD ALIGN=RIGHT><FONT SIZE=+2>Title:</FONT></TD>

<TD><FONT SIZE=+2>Modula-3/m3gdb</FONT></TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Author:</TD>

<TD><A HREF="m3-request@src.dec.com">DEC Systems Research Center [m3-request@src.dec.com]</A></TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Repositories:</TD>

<TD><A HREF="http://sunsite.unc.edu/pub/Linux/devel/lang/modula-3/">Documentation/Source
[http://sunsite.unc.edu/pub/Linux/devel/lang/modula-3/]</A></TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Newsgroup:</TD>

<TD><A HREF="news:comp.lang.modula3">comp.lang.modula-3 [news:comp.lang.modula3]</A></TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Threads Lib:</TD>

<TD>(Uses own?)</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Description:</TD>

<TD>Compiler, tools, applications and libraries for Modula-3, a simple
and efficient modular, imperative language. Modula-3 has objects, threads,
exceptions and generics. The libraries include X toolkits, a user interface
builder, an embedded interpreted language and network objects. 
<P>m3gdb is a GPL debugger for Modula-3.</P>
</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>License: </TD>

<TD>(see copyright, freely usable and redistributable)</TD>
</TR>
</TABLE>

<TABLE BORDER=1 CELLSPACING=2 CELLPADDING=5 WIDTH="100%" >
<TR>
<TD ALIGN=RIGHT><FONT SIZE=+2>Title:</FONT></TD>

<TD><FONT SIZE=+2>Objective-C/Gnustep</FONT></TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Author:</TD>

<TD><A HREF="http://www.gnustep.org">www.gnustep.org [http://www.gnustep.org]</A></TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Repositories:</TD>

<TD><A HREF="http://www.gnustep.org/Resources/Resources.html">Documentation
[http://www.gnustep.org/Resources/Resources.html]</A> 
<P><A HREF="ftp://ftp.cs.rochester.edu/pub/u/mccallum/libobjects">Source
[ftp://ftp.cs.rochester.edu/pub/u/mccallum/libobjects]</A></P>
</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Newsgroup:</TD>

<TD><A HREF="news:comp.lang.objective">comp.lang.objective-c [news:comp.lang.objective]</A></TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Threads Lib:</TD>

<TD>pthreads (user-space [kernel-space in development])</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Description:</TD>

<TD>objc-shared-patches contains a complete source of GNU Objective-C runtime
and a diff file for libobjects-0.1.14, both patched to generate a shared
Linux ELF library.</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>License: </TD>

<TD>GPL</TD>
</TR>
</TABLE>

<TABLE BORDER=1 CELLSPACING=2 CELLPADDING=5 WIDTH="100%" >
<TR>
<TD ALIGN=RIGHT><FONT SIZE=+2>Title:</FONT></TD>

<TD><FONT SIZE=+2>Python 1.4</FONT></TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Author:</TD>

<TD><A HREF="http://www.python.org">www.python.org [http://www.python.org]</A></TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Repositories:</TD>

<TD><A HREF="http://www.cwi.nl/ftp/python/doc/">Documentation [http://www.cwi.nl/ftp/python/doc/]</A>

<P><A HREF="http://sunsite.unc.edu/pub/Linux/devel/lang/python/INDEX.html">Binary
[http://sunsite.unc.edu/pub/Linux/devel/lang/python/INDEX.html]</A></P>

<P><A HREF="http://www.cwi.nl/ftp/python/src/">Source [http://www.cwi.nl/ftp/python/src/]</A></P>
</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Newsgroup:</TD>

<TD><A HREF="news:comp.lang.python">comp.lang.python [news:comp.lang.python]</A></TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Threads Lib:</TD>

<TD>POSIX threads (Python Makefile supports user-/ kernel-space)</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Description:</TD>

<TD>Python is an interpreted, interactive, object-oriented programming
language. It is often compared to Tcl, Perl, Scheme or Java. </TD>
</TR>

<TR>
<TD ALIGN=RIGHT>License: </TD>

<TD>Freeware</TD>
</TR>
</TABLE>

<TABLE BORDER=1 CELLSPACING=2 CELLPADDING=5 WIDTH="100%" >
<TR>
<TD ALIGN=RIGHT><FONT SIZE=+2>Title:</FONT></TD>

<TD><FONT SIZE=+2>Sather</FONT></TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Author:</TD>

<TD><A HREF="http://www.isci.berkeley.edu/">ICSI [http://www.isci.berkeley.edu/]</A></TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Repositories:</TD>

<TD><A HREF="http://www.icsi.berkeley.edu/~sather/">Documentation [http://www.icsi.berkeley.edu/~sather/]</A>

<P><A HREF="http://www.icsi.berkeley.edu/~sather/Getsather/getsather.html">Source
[http://www.icsi.berkeley.edu/~sather/Getsather/getsather.html]</A></P>
</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Newsgroup:</TD>

<TD><A HREF="news:comp.lang.sather">comp.lang.sather [news:comp.lang.sather]</A></TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Threads Lib:</TD>

<TD>POSIX Threads</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Description:</TD>

<TD>Sather is an object oriented language designed to be simple, efficient,
safe, flexible and non-proprietary. One way of placing it in the &quot;space
of languages&quot; is to say that it aims to be as efficient as C, C++,
or Fortran, as elegant as and safer than Eiffel, and support higher-order
functions and iteration abstraction as well as Common Lisp, CLU or Scheme.</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>License: </TD>

<TD>Freeware (?)</TD>
</TR>
</TABLE>

<TABLE BORDER=1 CELLSPACING=2 CELLPADDING=5 WIDTH="100%" >
<TR>
<TD ALIGN=RIGHT><FONT SIZE=+2>Title:</FONT></TD>

<TD><FONT SIZE=+2>SmallTalkX</FONT></TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Author:</TD>

<TD>???</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Repositories:</TD>

<TD><A HREF="http://sunsite.unc.edu/pub/Linux/devel/lang/smalltalkx/">Documentation/Source
[http://sunsite.unc.edu/pub/Linux/devel/lang/smalltalkx/]</A></TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Newsgroup:</TD>

<TD><A HREF="news:comp.lang.smalltalk">comp.lang.smalltalk [news:comp.lang.smalltalk]</A></TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Threads Lib:</TD>

<TD>(Internal implementation of threads.)</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>Description:</TD>

<TD>SmallTalk interpreter for X11. SmallTalk is an object-oriented, interpreted
programming language. Often it is used in simulations or rapid prototyping.</TD>
</TR>

<TR>
<TD ALIGN=RIGHT>License: </TD>

<TD>Noncommercial (see `LICENSE')</TD>
</TR>
</TABLE>

<P><HR SIZE=4 WIDTH="100%"></P>
<CENTER><TABLE CELLSPACING=0 CELLPADDING=0 >
<TR>
<TD><A HREF="OSsCompared.html"><CENTER><IMG SRC="ArrowLeft.gif" ALT="[Left Arrow]" BORDER=0 HEIGHT=40 WIDTH=40></CENTER></A></TD>
<TD><A HREF="index.html"><CENTER><IMG SRC="House.gif" ALT="[Home]" BORDER=0 HEIGHT=40 WIDTH=40></CENTER></A></TD>
<TD><A HREF="Dictionary.html"><CENTER><IMG SRC="BookSearch.gif" ALT="[Book Search]" BORDER=0 HEIGHT=40 WIDTH=40></CENTER></A></TD>
<TD><A HREF="mailto:walton@oclc.org"><CENTER><IMG SRC="MailBox.gif" ALT="[Mailbox]" BORDER=0 HEIGHT=40 WIDTH=40></CENTER></A></TD>
<TD><A HREF="Debugging.html"><CENTER><IMG SRC="ArrowRight.gif" ALT="[Right Arrow]" BORDER=0 HEIGHT=40 WIDTH=40></CENTER></A></TD>
</TR>
<TR>
<TD><A HREF="OSsCompared.html">[Previous Page]</A></TD>
<TD><A HREF="index.html">[First Page]</A></TD>
<TD><A HREF="Dictionary.html">[Dictionary]</A></TD>
<TD><A HREF="mailto:walton@oclc.org">[Email Author]</A></TD>
<TD><A HREF="Debugging.html">[Next Page]</A></TD>
</TR>
</TABLE></CENTER>

</BODY></HTML>
