Programming Languages mini-HOWTO Risto S. Varanka, <risto.varanka@helsinki.fi> v, 6 January 2000 {ì_j, <hmiyano@webjapan.com> v, 2000N0208ú Linux ãÅ®åvÈvO~O¾êAyÑALinuxÅOtBJ[ UC^[tF[Xð쬷éÆ«ÌåvÈCuÌÈPÈär ______________________________________________________________________ Ú 1. ¶ 1.1 ì 1.2 CZX 1.2.1 üÏìÆÉ¢ÄÌKvð 1.3 ÆÓð 1.4 Ò 1.5 NWbg 1.6 N 2. vO~O¾ê 2.1 \Ì}á 2.2 W[Ⱦê 2.3 VFvO~O 2.4 »Ì¼Ì¾ê 2.5 N 3. GUI c[Lbg 3.1 \Ì}á 3.2 W[È GUI c[Lbg 3.3 N ______________________________________________________________________ 1. ¶ Linux Íf°çµ¢Iy[eBOVXeÅ·BȺÈçÇñÈ[UÅ àLinux ÌJÉQÁÅ«é©çÅ·BLinux ãÅͽ̾êªgpÂ\ Å·Bµ©µÈªçA»êª Linux ÅÌJSÒÉ̳ͬÉàÈè¦ Ü·B±Ì¶ÍÅÍAàÁÆàêÊIÈIðÆÈéÊíÌJÅ̾êð °A»êçÉεÄdvÈ_ðq×ĢܷB (uàÁÆàêÊIÈv Æ udvÈ_v ÍÌðß©çÅ·ªB) Ì_¢Í¾êðr [·é±Æ ÅàAÇêªêÔ©ðßé±ÆÅà èܹñB»ê¼ê̾êÉÍÓ³í µ¢dª ÁÄA»ê¼êÉÆ©Ì¡ª èÜ·BüÍÌÐÆÉq˽èA îñÌAeiðÍèß®çµÄ¨¯ÎÚµ¢îñÍ¢çÅàüèÅ«éÅ µå¤(½·éîñªèÉüé±ÆàÈȢŷª)B³çÉA±Ì¶Í àÌNZNVª Ƚª©ªÅ²¸ðnßéãÅÌÄàÆÈÁÄê éŵå¤B ¢ÌÉÍcåÈÌ Linux Åg¦é¾êâCuª èÜ·B»± ÅA±Ì¶ÍÅÍàÁÆàêÊIȾêÆGUIc[LbgÌÝÌÐîÉÀé ±ÆɵܷB»êÆÓµÄ~µ¢ÌÍA±±ÅÐî·é¾êÆGUIc[ LbgÍ Linux Ì_©ç©½àÌÅA¼Ìvbgz[ÅÌÁ¥Í± ̶ÍàÅÍLqAܽÍc_µÜ¹ñB ±Ì¶ÍÍÅßLDPÉÇÁ³ê½Î©èÅ·ÌÅAR~ jeB©çÌtB[ hobNðàç¤@ïªÜ¾ Üè èܹñBµ©µÈªçA±Ì¶ÍÍ Linux vO~OÉ»¡ðÁ½lB̯ÉÈêÎÆvÁÄ[X³ ê½àÌÅ·B\É é ? }[NÍîñs«ð¦µÜ·B൱êçÉ¢ ÄÌîñð¨¿Åµ½çAºÐÒÜŲA¾³¢B 1.1. ì Copyright (c) 2000 Risto Varanka. ȺÌCZXÍQl̽ßÉó¶ð°Ü·ªA´¶ªDæµÜ·B 1.2. CZX The following license terms apply to all LDP documents, unless otherwise stated in the document. The LDP documents may be reproduced and distributed in whole or in part, in any medium physical or electronic, provided that this license notice is displayed in the reproduction. Commercial redistribution is permitted and encouraged. Thirty days advance notice via email to the author(s) of redistribution is appreciated, to give the authors time to provide updated documents. ÌCZXÍA¶ÍàÅÁèÌLqªÈ¢©¬èSÄÌLDP¶ÍÉKp³ êÜ·BLDP¶ÍͱÌCZXÌLÚª êÎA¶ÍÌSÌAêÉ©© íç¸A¨IÉàdqIÉà¡»âzzªÂ\Å·B¤pzzͧãµÜ· ªAÒÉÅVÅ̶Íðñ·éÔð^¦é½ßAÄzzÌ30úÈãOÉ ÒÖÊmÌ[ðÁĸ¯éÆ èª½¢Å·B 1.2.1. üÏìÆÉ¢ÄÌKvð All modified documents, including translations, anthologies, and partial documents, must meet the following requirements: 1. The modified version must be labeled as such. 2. The person making the modifications must be identified. 3. Acknowledgement of the original author must be retained. 4. The location of the original unmodified document be identified. 5. The original author's (or authors') name(s) may not be used to assert or imply endorsement of the resulting document without the original author's (or authors') permission. |óAIWA»µÄªIȶÍðÜÞ·×ÄÌüϳ꽶ÍÍÌðð ݽµÄ¢éKvª èÜ·B 1. üÏÅÅ é±ÆªLÚ³êÄ¢é±Æ 2. üÏðsÁ½l¨Ì¼OªLÚ³êÄ¢é±ÆB 3. IWi¶ÍÌÒ̼OªLÚ³êÄ¢é±ÆB 4. IWi¶ÍÌݪLÚ³êÄ¢é±ÆB 5. IWi¶ÍÌÒ̼OÍAIWi¶ÍÌÒÌÂȵÉüÏ ³ê½¶ÍÉεÄÌÛØð壷éàÌƵÄgp³êé±ÆÍÅ«È ¢B »Ì¼Év³êé±Æ 1. The modifications (including deletions) be noted. 2. The author be notified by email of the modification in advance of redistribution, if an email address is provided in the document. 1. üÏ(íðÜÞ)³ê½±ÆÌLÚ 2. ÒÌdq[AhXª¶ÍàÉñ³êÄ¢éêAüϳ꽶 ÍÌÄzzÌܦÉdq[ÉæÁÄÒÉmç¹é±ÆB As a special exception, anthologies of LDP documents may include a single copy of these license terms in a conspicuous location within the anthology and replace other copies of this license with a reference to the single copy of the license without the document being considered ``modified'' for the purposes of this section. ÁáƵÄALDPÌIWÍIWàÉCZXÌRs[ªê¾¯ÜÜêÄ¢ êÎA¶Íªuüϳê½vƩȳêÈ¢ÍÍÅIWà̶̼ÍÌCZ XðíµÄACZXÌêðLq·êÎæ¢B Mere aggregation of LDP documents with other documents or programs on the same media shall not cause this license to apply to those other works. LDP¶ÍƯ¶fBAàÉ éA¼Ì¶ÍâvOɱÌCZXÍ KpµÜ¹ñB All translations, derivative documents, or modified documents that incorporate any LDP document may not have more restrictive license terms than these, except that you may require distributors to make the resulting document available in source format. ·×ÄÌ|óAü϶ÍâÖA·éLDP¶ÍͱÌCZXÈãɵµ¢ CZXðgpūܹñªAáOƵÄÄzzÒÉ\[X`®Å̶ÍÌz zðv·é±ÆÍÅ«Ü·B 1.3. ÆÓð THIS DOCUMENT COVERS A LARGE AND CONSTANTLY CHANGING DOMAIN. THEREFORE, THE INFORMATION CONTAINED IN THIS DOCUMENT MAY BE INCORRECT OR OUTDATED. ALL USE OF THIS DOCUMENT AND ALL INFORMATION CONTAINED IN IT IS AT YOUR OWN RISK. THE AUTHOR DOES NOT GIVE ANY WARRANTY OR GUARANTEE, EITHER EXPLICIT OR IMPLIED. ±Ì¶ÍÍLÍÍÅAµ©àÏíèâ·¢ªìðæèµÁĢܷB»Ì½ ßA±Ì¶ÍàÉ éîñÍÔáÁÄ¢½èAÃÈÁÄ¢é©àµêܹ ñB±Ì¶Íâ¶ÍàÌîñÍ©ªÌXNÅgÁľ³¢BÒÍ¢©È éÛØàµÜ¹ñB 1.4. Ò È½©çÒÖÌtB[hobNÍå½}Å ·Bristo.varanka@helsinki.fi <mailto:risto.varanka@helsinki.fi> ÒÌ Web TCghttp://www.helsinki.fi/~rvaranka/ <http://www.helsinki.fi/~rvaranka/> 1.5. NWbg vO~O¾êÉ¢ÄÌRgðº³Á½ûXÉ´Óð\µã°Ü ·B±êçÌïbÉæèAFXȾêÉηém©ª[Üèܵ½µA±ê© çÌïbÉæÁÄ±Ì mini-HOWTO ªæèæ¢àÌÉÈêÎÆè¢Ü·BÁÉ IRCNet `l #linux ÌûX: Morphy, Bluesmurf, Vadim, Zonk^, Rikkus ÆA»Ì¼Òª¼OðYêĵÜÁ½ûXÉà´Óð\µã°Ü ·B»êÆ Stig Erik Sandoe AðɧÂRg èªÆ¤²´¢Üµ½B 1.6. N LinuxJCuÆc[Ì®SÈXg o Freshmeat <http://www.freshmeat.net/appindex/development/> o Linux Development Tools <http://www.hotfeet.ch/~gemi/LDT/> o linuxprogramming.com <http://www.linuxprogramming.com/> Eric S. Raymond ÉæéHacker FAQ <http://www.tuxedo.org/~esr/faqs/hacker-howto.html> Linux ãÅÌSÒ JÒÉÆÁÄ»¡Ì éeLXgÅ·B±Ì¶ÍͶ»IASwIÈ©û ÉæéI[v\[XJÉd_ðu¢Ä¢Ü·B »Ì¼Ì LDP ¶Í <http://www.linuxdoc.org/> ƵÄÍ Reading List HOWTO (ú{êó <http://www.linux.or.jp/JF/JFdocs/Reading-List- HOWTO.html>) â Linux vO}[YKChÌêÊIÈvO~OÌ e[}ðæèµÁ½¶Íª èÜ·B»Ì¼ÉàÁèÌe[}É¢ÄÌ¶Í ª èÜ·B 2. vO~O¾ê 2.1. \Ì}á ¾ê êÊIȾê̼O SÒ ÍÇ꾯»Ì¾êªvO~Oo±ÌÈ¢lBÉ ÁÄ¢é© ð¦µÜ·B``yes'' Æ}[N³êÄ¢é¾êÍSÒÉÆÁÄÅÉ GêévO~O¾êƵÄKµÄ¢é͸ŷB ptH[}X Ç꾯 ȽÌAvP[Vª¬®©BptH[}XÍÀ Û̾êæèàAKØÈASYð§ÄÄvO~Oðs¤\ ÍÉ˶µÜ·Bo±©ç¾ÁÄA CAC++ Æ Fortran ÍKvÉÈé ª èÜ·BȺÈç±êç̾êͼ̾êÆä×ÄDê½ptH [}XðñÅ«é©çÅ·Bµ©µÈªçA±êç̾êàÚIÉ æÁÄ͵¢Ã碱ƪ èÜ·B(ÈPÈ\[eBOASY ðSÄ̾êÅÀsµA»ÌÊðär·éæ¤ÈA¾êð"x` }[N"·éÁľ¤ACfAà èÜ·æËBN©ðè`ÁÄê él¢Ü¹ñ©?) OOP(IuWFNgwüvO~O) vs. ¼Ìp_C IuWFNgwüvO~OÍlCð¾Ä«Ä¢édvÈvO ~Op_CÅ·BIuWFNgwüvO~OÅÍAf[^ \¢ÆASYÍêÂÌjbgɳêĢܷ(NXÆà ÄÔ)BOOP Íæ豫^vO~O(f[^\¢ÆASY ªÊXÉgíêé)Æär³êÜ·BOOP Í Üè¾êÉ˶·éÆà ¾¦Ü¹ñBOOP ªÅ«È¢ÆXgÉ¢Ä é¾êÅà(á¦Î C) OOP ªÅ«½èAXgÉ OOPÆ¢Ä é¾êÅà豫^vO ~OªÅ«Ü·BÁÊÈÁ¥âAhIª é OOP ð OOP Ƶı ±É°Üµ½BÖ^¾ê( á¦Î Lisp ) ͼÉä׼ÙÈÁ ½íÞ̾êÅ·BÖ^vO~OÍ OOP ÌX[p[ZbgÅ ·B _IvO~O(Prolog)Íé¾IvO~OÆàÄÎ êA¼ÌvO~Oè@ÆÍêüðæµÜ·B f¢J ÍÀÛ̾êæèàg¤c[É˶µÜ·B GUIÅÌ Linux Jc [ÌHOWTOª èÜ·(ÆÄàâŷª)Bæ¢OtBJc[ ðgp·é±ÆÉæÁÄf¢JªÅ«éŵå¤BR[hðÄgp ·é±ÆàfJ·éÌÉg¦Ü·µAt[EFAªæ¢yäÉ Èé©àµêܹñB á ¾êªêÊIÉgíêéªìB¼Éàæ¢(»êÆ«¢)g¢ûª èÜ ·ªA±êçÍêÊIÅÍ èܹñB Rg ¾êÉ¢Ä̳çÈéîñAá¦Î\Íâh¶¾êB 2.2. W[Ⱦê PERL SÒ: Yes - OOP: Yes á: XNveBOAVXeÇAWWW Rg: eLXgƶñ̵¢É¢BÆÄàlCª éB Python SÒ: Yes - OOP: Yes á: XNveBOAAvP[VXNveBOAWWW Rg: TCL SÒ: Yes - OOP: No á: XNveBOAVXeÇAAvP[V Rg: PHP SÒ: Yes - OOP: Yes á: WWW Rg: WEBf[^x[XÅlCª èÜ·B Java SÒ: Yes - OOP: Yes á: ¡vbgtH[Å®AvP[VAWWW Rg: Lisp SÒ: Yes - OOP: Functional á: Emacs [h( elisp ), AI Rg: íXÌ ElispAClisp Æ Scheme Fortran SÒ: No - OOP: No á: wIAvP[V Rg: íXÌ f77 Æ f90/95 C SÒ: No - OOP: No á: VXevO~OAAvP[V Rg: ÆÄàlCª é C++ SÒ: No - OOP: Yes á: AvP[V Rg: 2.3. VFvO~O VFàܽdvÈvO~O«ŷªAͱêÌà¾ðÜßܹñ ŵ½BȺÈçÍܽ®SÉͱ̪ìððµÄ¢È¢©çÅ·BVF Ìm¯ÍAæ Linux ðgÁÄdð·élâVXeÇÒÉÍdvÅ ·BVFvO~OÆXNveBOÉÍæÄ¢éª èAµ εί¶ÚIðB¬Å«éÌÅAlCeBuVFÆXNveBOÆÌ Ç¿ç©ðIÔ±ÆàÅ«Ü·BÅàlCÌ éVFƵ ÄAbashAtcshAcshAkshA»µÄ zsh ª èÜ·Bman R}hðÀs· é±ÆÉæÁıêçÌVFÌî{IÈîñªª©é±Æŵå¤(á¦Î man bash )B 2.4. »Ì¼Ì¾ê ¼Ì¾ê: AWK, SED, Smalltalk, Eiffel, ADA, Prolog, assembler, Objective C, Logo, Pascal( p2c Ro[^ ) 2.5. N o êÊIÈîñÌTCg <http://www.tunes.org/Review/Languages.html> vO~O¾êÉÖ·écåÈîñÆÓ© o TCL <http://www.scriptics.com/> o PERL <http://www.perl.org/> o Python <http://www.python.org/> o PHP <http://www.php.net> o Java <http://www.javasoft.com/> o clisp <http://clisp.cons.org/~haible/packages-clisp.html> 3. GUI c[Lbg 3.1. \Ì}á Cu êÊIÈc[Lbg̼Oâ»ÌªÌB SÒ c[LbgªSÒvO}[ɵ¢©Ç¤©B CZX »ê¼êÌc[LbgÉÙÈéCZXªt¢Ä¢é±ÆÉÍÀÛ ÉÓ¡ª èÜ·B GTK+ Æ TK ÌCZXÍA ȽÌvO Ì\[XÌöJ/ñöJÉÖíç¸CZXÌwüÌKvÍ è ܹñB Motif ÌCZXÍwüªKvÅ·ªA QT ÌCZX Í È½ªàµ\[XðöJµÈ¢vOð¢½ÌÝwüªK vÅ·B ¾ê c[LbgÅàÁÆà½gíêé¾ê oCfBO c[LbgÅg¤±ÆÌÅ«é¼Ì¾ê á c[LbgðgÁ½AvP[V Rg c[LbgÉ¢Ä̳çÈéîñB 3.2. W[È GUI c[Lbg Cu SÒ CZX ¾ê oCfBO á TK Yes t[ TCL PERL, Python, ¼ make xconfig, TKDesk GTK+ No t[ (LGPL) C PERL, C++, Python, »Ì¼½ GNOME, Gimp QT No I[v\[XÅÍt[ C++ Python, PERL, C, ¼ ? KDE Motif No mt[ C/C++ Python, ¼ ? Netscape, Wordperfect 3.3. N o TK <http://www.scriptics.com/> o GTK+ <http://www.gtk.org/> o QT <http://www.troll.no/> o Motif <http://www.metrolink.com/>