91 lines
5.4 KiB
HTML
91 lines
5.4 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3O//DTD W3 HTML 2.0//EN">
|
|
<!Converted with LaTeX2HTML 95.1 (Fri Jan 20 1995) by Nikos Drakos (nikos@cbl.leeds.ac.uk), CBLU, University of Leeds >
|
|
<HEAD>
|
|
<TITLE>1.4.3 Programming languages and utilities</TITLE>
|
|
</HEAD>
|
|
<BODY>
|
|
<meta name="description" value="1.4.3 Programming languages and utilities">
|
|
<meta name="keywords" value="gs">
|
|
<meta name="resource-type" value="document">
|
|
<meta name="distribution" value="global">
|
|
<P>
|
|
<BR> <HR><A NAME=tex2html1846 HREF="node16.html"><IMG ALIGN=BOTTOM ALT="next" SRC="next_motif.gif"></A> <A NAME=tex2html1844 HREF="node12.html"><IMG ALIGN=BOTTOM ALT="up" SRC="up_motif.gif"></A> <A NAME=tex2html1838 HREF="node14.html"><IMG ALIGN=BOTTOM ALT="previous" SRC="previous_motif.gif"></A> <A NAME=tex2html1848 HREF="node1.html"><IMG ALIGN=BOTTOM ALT="contents" SRC="contents_motif.gif"></A> <A NAME=tex2html1849 HREF="node250.html"><IMG ALIGN=BOTTOM ALT="index" SRC="index_motif.gif"></A> <BR>
|
|
<B> Next:</B> <A NAME=tex2html1847 HREF="node16.html">1.4.4 The X Window </A>
|
|
<B>Up:</B> <A NAME=tex2html1845 HREF="node12.html">1.4 Software Features</A>
|
|
<B> Previous:</B> <A NAME=tex2html1839 HREF="node14.html">1.4.2 Text processing and </A>
|
|
<BR> <HR> <P>
|
|
<H2><A NAME=SECTION00343000000000000000>1.4.3 Programming languages and utilities</A></H2>
|
|
<P>
|
|
Linux provides a complete UNIX programming environment, including all of
|
|
the standard libraries, programming tools, compilers, and debuggers that
|
|
you would expect to find on other UNIX systems.
|
|
<A NAME=308> </A>
|
|
Within the UNIX software development world, applications and systems
|
|
programming is usually done in C or C++. The standard C and C++ compiler
|
|
for Linux is GNU's <tt>gcc</tt>, which is an advanced, modern compiler
|
|
supporting many options.
|
|
It is also capable of compiling C++ (including AT&T 3.0 features) as well as
|
|
Objective-C, another object-oriented dialect of C.
|
|
<P>
|
|
Besides C and C++, many other compiled and interpreted programming
|
|
languages have been ported to Linux, such as Smalltalk, FORTRAN, Pascal,
|
|
LISP, Scheme, and Ada (if you're masochistic enough to program in Ada---we're
|
|
not going to stop you). In addition, various assemblers for writing
|
|
protected-mode 80386 code are available, as are UNIX hacking favorites
|
|
such as Perl (the script language to end all script languages) and
|
|
Tcl/Tk (a shell-like command processing system including support for
|
|
developing simple X Windows applications).
|
|
<A NAME=310> </A>
|
|
<P>
|
|
The advanced <tt>gdb</tt> debugger has been ported, which allows you to
|
|
<A NAME=324> </A>
|
|
<A NAME=313> </A>
|
|
step through a program to find bugs, or examine the cause for a crash using
|
|
a core dump. <tt>gprof</tt>, a profiling utility, will give you performance
|
|
<A NAME=325> </A>
|
|
statistics for your program, letting you know where your program is spending
|
|
most of its time executing. The Emacs text editor provides an interactive
|
|
editing and compilation environment for various programming languages.
|
|
Other tools include GNU <tt>make</tt> and <tt>imake</tt>, used to manage
|
|
compilation of large applications; and RCS, a system for source locking and
|
|
revision control.
|
|
<P>
|
|
Linux implements dynamically-linked shared libraries, which allow binaries
|
|
to be much smaller as the subroutine code is linked at run-time. These
|
|
DLL libraries also allow the applications programmer to override
|
|
<A NAME=318> </A><A NAME=319> </A>
|
|
function definitions with their own code. For example, if a programmer
|
|
wished to write her own version of the <tt>malloc()</tt> library routine,
|
|
the linker would use the programmer's new routine instead of the
|
|
one found in the libraries.
|
|
<P>
|
|
Linux is ideal for developing UNIX applications. It provides a modern
|
|
<A NAME=321> </A>
|
|
programming environment with all of the bells and whistles. Various
|
|
standards such as POSIX.1 are supported, allowing software written for
|
|
Linux to be easily ported to other systems. Professional UNIX programmers and
|
|
system administrators can use Linux to develop software at home, and then
|
|
transfer the software to UNIX systems at work. This not only can save a great
|
|
deal of time and money, but will also let you work in the comfort of your own
|
|
home.<A NAME=tex2html68 HREF="footnode.html#322"><IMG ALIGN=BOTTOM ALT="gif" SRC="foot_motif.gif"></A> Computer Science students can use Linux
|
|
to learn UNIX programming and to explore other aspects of the system,
|
|
such as kernel architecture.
|
|
<P>
|
|
With Linux, not only do you have access to the complete set of libraries and
|
|
programming utilities, but you also have the complete kernel and library
|
|
source code at your fingertips.
|
|
<P>
|
|
<A NAME=323> </A>
|
|
<P>
|
|
<BR> <HR><A NAME=tex2html1846 HREF="node16.html"><IMG ALIGN=BOTTOM ALT="next" SRC="next_motif.gif"></A> <A NAME=tex2html1844 HREF="node12.html"><IMG ALIGN=BOTTOM ALT="up" SRC="up_motif.gif"></A> <A NAME=tex2html1838 HREF="node14.html"><IMG ALIGN=BOTTOM ALT="previous" SRC="previous_motif.gif"></A> <A NAME=tex2html1848 HREF="node1.html"><IMG ALIGN=BOTTOM ALT="contents" SRC="contents_motif.gif"></A> <A NAME=tex2html1849 HREF="node250.html"><IMG ALIGN=BOTTOM ALT="index" SRC="index_motif.gif"></A> <BR>
|
|
<B> Next:</B> <A NAME=tex2html1847 HREF="node16.html">1.4.4 The X Window </A>
|
|
<B>Up:</B> <A NAME=tex2html1845 HREF="node12.html">1.4 Software Features</A>
|
|
<B> Previous:</B> <A NAME=tex2html1839 HREF="node14.html">1.4.2 Text processing and </A>
|
|
<BR> <HR> <P>
|
|
<BR> <HR>
|
|
<P><ADDRESS>
|
|
<I>Matt Welsh <BR>
|
|
mdw@sunsite.unc.edu</I>
|
|
</ADDRESS>
|
|
</BODY>
|