Cããã°ã©ãã³ã°èšèªã®äººæ°ãé倧è©äŸ¡ããããšã¯ã»ãšãã©ã§ããŸãããç¹ã«éå»ã®æ¥çžŸãæãåºããŠãã ããã ããããããã¹ãŠã®éçºè ã¯å°ãªããšããã®ååšãç¥ã£ãŠãããæ倧ã§ããã°ã©ã ãäœæããããšããŸããã Cã¯ãC ++ãObjective-CãCïŒãJavaãªã©ã®èšèªã®å é§è ã§ãã
Microsoftã¯ã.Netãã©ãããã©ãŒã çšã®ãã€ãã£ãèšèªãéçºããããã«Cã®ãããªæ§æãéžæããŸããã ããã«ãå€ãã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã¯Cã§èšè¿°ãããŠããŸãã
ãã¡ãããCã¯å®ç§ã§ã¯ãããŸããããã®èšèªã®äœæè ã§ããã±ã³ãã³ããœã³ãšããã¹ãªãããŒã¯ãé·ãééçºããŠããŸããã Cã®æšæºåã¯ä»æ¥ãŸã§ç¶ããŠããŸãã 45幎以äžåããååšããç©æ¥µçã«äœ¿çšãããŠããŸãã
å€ãã®å Žåã1ã€ã§ã¯ãªã2ã€ã®ããã°ã©ãã³ã°èšèª-C / C ++ã«é¢é£ä»ããããŠããŸãã ãã ãã以äžã®èª¬æã¯çŽç²ãªCã«é¢ãããã®ã§ãã
Cèšèªã¯ALGOLèšèªïŒALGorithmic Languageã®ç¥ïŒã«ãŸã§ããã®ãŒããŸããALGOLèšèªã¯ã1958幎ã«ã¹ã€ã¹ã®ãã¥ãŒãªããé«çæè¡åŠæ ¡ã§ã®äŒè°ã§ãšãŒãããããã³ã¢ã¡ãªã«ã®ã³ã³ãã¥ãŒã¿ãŒç§åŠè ã®å§å¡äŒãšå ±åã§äœæãããŸããã ãã®èšèªã¯ãFORTRANèšèªã®ããã€ãã®æ¬ ç¹ã«å¯Ÿããçãã§ãããããããä¿®æ£ããè©Šã¿ã§ããã ããã«ãCã®éçºã¯UNIXãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®äœæãšå¯æ¥ã«é¢é£ããŠãããã±ã³ãã³ããœã³ãšããã¹ãªãããŒãããã«åãçµã¿ãŸããã
Unix
MACãããžã§ã¯ãïŒMultiple Access ComputerãMachine-Aided CognitionãMan and ComputerïŒã¯ã1963幎ã«MITã§ã®çŽç²ãªç 究ãããžã§ã¯ããšããŠå§ãŸããŸããã
MACãããžã§ã¯ãã®äžç°ãšããŠãCTSSïŒäºææ§ã®ããã¿ã€ã ã·ã§ã¢ãªã³ã°ã·ã¹ãã ïŒãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãéçºãããŸããã 60幎代åŸåã«ã¯ãBBNãDTSSãJOSSãSDCãMultiplexed Information and Computing ServiceïŒMULTICSïŒãªã©ãä»ã®ããã€ãã®ã¿ã€ã ã·ã§ã¢ãªã³ã°ã·ã¹ãã ãäœæãããŸããã
Multicsã¯ãMITãBell Telephone LaboratoriesïŒBTLïŒãããã³General ElectricïŒGEïŒã®å ±åéçºã§ãGE-645ã³ã³ãã¥ãŒã¿çšã®ã¿ã€ã ã·ã§ã¢ãªã³ã°OSãäœæããŸãã Multicsãå®è¡ããŠããæåŸã®ã³ã³ãã¥ãŒã¿ãŒã¯ã2000幎10æ31æ¥ã«ã·ã£ããããŠã³ãããŸããã
ãã ããBTLã¯1969幎åé ã«ãã®ãããžã§ã¯ãããæ€éããŸããã
圌ã®åŸæ¥å¡ã®äœäººãïŒã±ã³ã»ãã³ããœã³ãããã¹ã»ãªãããŒãã¹ãã¥ã»ãã§ã«ããã³ããã°ã»ãããã€ãããã»ã¢ãªã¹ããžã§ãŒã»ãªãµã³ãïŒã¯èªåã§ä»äºãç¶ããããšæã£ãŠããŸããã ãã³ããœã³ã¯ãGE-635ã§å®å®æ è¡ã²ãŒã ã«åãçµã¿ãŸããã æåã«Multicsçšã«äœæããã次ã«GE-635äžã®GECOSã®äžã§Fortranã«æžãæããããŸããã ã²ãŒã ã¯å€ªéœç³»ã®äœãã·ãã¥ã¬ãŒããããã¬ã€ã€ãŒã¯ææãŸãã¯è¡æã®ã©ããã«è¹ãäžéžãããªããã°ãªããŸããã§ããã
ãã®ã³ã³ãã¥ãŒã¿ãŒã®ãœãããŠã§ã¢ãããŒããŠã§ã¢ãããã®ãããªã²ãŒã ã«ã¯é©ããŠããŸããã§ããã ãã³ããœã³ã¯ä»£æ¿æ段ãæ¢ããŠããŠãææè ã®ããªãPDP-7ã®äžã§ã²ãŒã ãæžãçŽããŸããã ã¡ã¢ãªã¯8K 18ãããã¯ãŒãã®ããªã¥ãŒã ã§ãçŸããã°ã©ãã£ãã¯ã¹ã衚瀺ããããã®ãã¯ã¿ãŒãã£ã¹ãã¬ã€ããã»ããµããããŸããã
slideshare.netããã®ç»å
ãã³ããœã³ãšãªãããŒã¯ãGEã§ã¯ãã¹ã¢ã»ã³ããªãå®å šã«éçºãããã³ãããŒãã«ã³ãŒãã移æ€ããŸããã ãã³ããœã³ã¯ç©æ¥µçã«ããã奜ãŸãªãã£ãããããã¡ã€ã«ã·ã¹ãã ããå§ããŠãPDP-7ã®OSãæžãå§ããŸããã ãããUNIXã®èªçã§ãã
ãã³ããœã³ã¯ãå©çšå¯èœãªæ段ã䜿çšããŠã圌ã®èšèšã«åŸã£ãŠèšèšãããå¿«é©ãªã³ã³ãã¥ãŒãã£ã³ã°ç°å¢ãäœæããããšèããŸããã æããã«æ¯ãè¿ã£ã圌ã®æå³ã¯ã管çã®åºç€ãšããŠã®ããã»ã¹ã®æŠå¿µãããªãŒããŒã¹ã®ãã¡ã€ã«ã·ã¹ãã ããŠãŒã¶ãŒããã°ã©ã ãšããŠã®ã³ãã³ãã®è§£éãããã¹ããã¡ã€ã«ã®ç°¡ç¥åããã衚瀺ãããã€ã¹ãžã®äžè¬çãªã¢ã¯ã»ã¹ãªã©ãMulticsã®é©æ°ã®å€ããåžåããŸããã
PDP-7 UNIXã¯ãBCPLèšèªã®åœ±é¿äžã§äœæãããé«ã¬ãã«èšèªBã®å§ãŸãã§ããããŸãã ããã¹ãªãããŒã¯ãBã¯åã®ãªãCã ãšèšããŸããã BCPLã¯8Kã®ã¡ã¢ãªã«åãŸãããã³ããœã³ã«ãã£ãŠæ éã«åèšèšãããŸããã Cã§åŸã ã«è²ã¡ãŸãã
it-world.comããã®ç»å
1973幎ãŸã§ã«ãCèšèªã¯éåžžã«åŒ·åã«ãªããããšããšã¢ã»ã³ããªèšèªPDP-11 / 20ã§äœæãããUNIXã«ãŒãã«ã®ã»ãšãã©ã¯Cã§æžãçŽãããŸããã ããã¯ãã¢ã»ã³ããªèšèªä»¥å€ã®èšèªã§èšè¿°ãããæåã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«ãŒãã«ã®1ã€ã§ããã
Cã¯ãUNIXãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®äœæäžã«ååŸããããã³ã³ãããªã³è£œåãã§ããããšãããããŸãã
Cã®ç¥å
ALGOL-60èšèªã«çæ³ãåŸãŠãã±ã³ããªããžå€§åŠã®æ°åŠç 究æã¯ããã³ãã³å€§åŠã®ã³ã³ãã¥ãŒã¿ãŒéšéãšãšãã«ã1963幎ã«CPLïŒCombined Programming LanguageïŒãäœæããŸããã
CPLèšèªã¯è€éã§ãããšèŠãªãããããã«å¯Ÿå¿ããŠãMartin Richardsonã¯1966幎ã«BCPLèšèªãäœæããŸããããã®äž»ãªç®çã¯ã³ã³ãã€ã©ãæžãããšã§ããã çŸåšã¯å®éã«ã¯äœ¿çšãããŠããŸããããäžæçãªç§»æ€æ§ã®ããã«éèŠãªåœ¹å²ãæãããŸããã
BCPLã¯ã1970幎代åæã«OS6ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãå«ãããã€ãã®èå³æ·±ããããžã§ã¯ãã§äœ¿çšãããäžéšã¯åæã®Xerox PARCèšèšã§äœ¿çšãããŸããã
BCPLã¯BïŒBïŒèšèªã®ç¥å ãšããŠæ©èœãã1969幎ã«ãã§ã«ããç¥ãããŠããATïŒTãã«é»è©±ç 究æã§éçºãããŸãããã±ã³ãã³ããœã³ãšããã¹ãªãããŒãåæ§ã§ãã
åœæã®ä»ã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãšåæ§ã«ãUNIXã¯ã¢ã»ã³ããªèšèªã§èšè¿°ãããŠããŸããã ã¢ã»ã³ãã©ãŒããã°ã©ã ã®ãããã°ã¯éåžžã«èŠçã§ãã Thompsonã¯ãOSã®ãããªãéçºã®ããã«é«ã¬ãã«ã®èšèªãå¿ èŠã§ãããšå€æããå°ããªèšèªBãèæ¡ããŸãããThompsonã¯BCPLãåºç€ãšããŠããŸããã èšèªBã¯ãåã®ãªãCãšèŠãªãããšãã§ããŸãã
å€ãã®è©³çŽ°ã§ã BCPLãBãããã³Cã¯æ§æçã«ç°ãªããŸãããã»ãšãã©åãã§ãã ããã°ã©ã ã¯ãäžé£ã®ã°ããŒãã«å®£èšãšé¢æ°ã®å®£èšïŒããã·ãŒãžã£ïŒã§æ§æãããŸãã BCPLã§ã¯ãããã·ãŒãžã£ã¯ãã¹ãã§ããŸãããããã·ãŒãžã£ãå«ãããã·ãŒãžã£ã§å®çŸ©ãããééçãªããžã§ã¯ããåç §ã§ããŸããã BãšCã¯ãããå³ããå¶éãå°å ¥ããããšã§ãã®å¶éãåé¿ããŸãããã¹ããããããã·ãŒãžã£ã¯ãŸã£ãããããŸããã åèšèªïŒBã®æãå€ãããŒãžã§ã³ãé€ãïŒã¯ãåå¥ã®ã³ã³ãã€ã«ããµããŒãããååä»ããã¡ã€ã«ã®ããã¹ããå«ããããã®ããŒã«ãæäŸããŸãã
Bã®äœæäžã«åºãŸã£ãæ§æã®å€æŽãšã¯å¯Ÿç §çã«ãBCPLã®åºæ¬çãªã»ãã³ãã£ã¯ã¹ïŒãã®åæ§é ãšåŒè©äŸ¡èŠåïŒã¯å€æŽãããŠããŸããã ã©ã¡ãã®èšèªãã¿ã€ãã¬ã¹ã§ããããããããã¯ãŒãããŸãã¯ãã»ã«ããšããåºå®é·ã®ãããã®ã»ãããšããåäžã®ããŒã¿åãæã£ãŠããŸãã ãããã®èšèªã®ã¡ã¢ãªã¯ãã®ãããªã»ã«ã®é åã§ãããã»ã«ã®å 容ã®æå³ã¯é©çšãããæäœã«äŸåããŸãã ããšãã°ãã+ãæŒç®åã¯åçŽã«ãã·ã³ã®å ç®åœä»€ã䜿çšããŠãªãã©ã³ããè¿œå ããŸãããä»ã®ç®è¡æŒç®ããªãã©ã³ãã®æå³ã«é¢ä¿ãããŸããã
BCPLãBãCããèšèªã®æåããŒã¿ãåºå¥ããŸããã æååãæŽæ°ãã¯ãã«ãšã¿ãªããäžè¬çãªèŠåãããã€ãã®èŠåã§è£è¶³ããŸãã BCPLãšBã®äž¡æ¹ã§ãæååãªãã©ã«ã¯ãã»ã«ã«ããã¯ãããæååæåã§åæåãããéçé åã®ã¢ãã¬ã¹ãæå³ããŸãã
Cã®äœææ¹æ³
1970幎ããã«ç 究æã¯ãã®ãããžã§ã¯ãã®ããã«PDP-11ã³ã³ãã¥ãŒã¿ãŒãååŸããŸããã Bã¯PDP-11ã§å®è¡ããæºåãã§ããŠããããããã³ããœã³ã¯UNIXéšåãBã«æžãæããŸããã
ããããã¢ãã«Bããã³BCPLã¯ããã€ã³ã¿ãŒãæäœããéã«ãªãŒããŒããããæ瀺ããŠããŸããèšèªã®èŠåã¯ããã€ã³ã¿ãŒãåèªã®é åã®ã€ã³ããã¯ã¹ãšããŠå®çŸ©ãããã€ã³ã¿ãŒãåèªã®ã€ã³ããã¯ã¹ã«ããŸããã å®è¡äžã«ãã€ã³ã¿ãŒãåŒã³åºããã³ã«ãããã»ããµãŒãäºæããŠãããã€ãã®ã¢ãã¬ã¹ãžã®ãã€ã³ã¿ãŒã®ã¹ã±ãŒãªã³ã°ãçæãããŸããã
ãããã£ãŠãæåãšãã€ãã®ã¢ãã¬ã¹æå®ã«å¯Ÿå¿ããä»åŸã®æµ®åå°æ°ç¹èšç®ã®ããŒããŠã§ã¢ãµããŒãã®æºåãããã«ã¯ãå ¥åãå¿ èŠã§ããããšãæããã«ãªããŸããã
1971幎ããªãããŒã¯Bã®æ¡åŒµããŒãžã§ã³ãäœæãå§ããŸãããæåã¯NBïŒNew BïŒãšåœåããŸããããèšèªãBãšå€§ããç°ãªãããã«ãªã£ããšããååã¯Cã«å€æŽãããŸããã
æœè±¡ãªããžã§ã¯ããç¹åŸŽä»ããã ãã§ãªããã«ã¿ãã°ããèªã¿åãããšãã§ãããããã®ã»ãããèšè¿°ããæ§é ãå¿ èŠã§ããã ã³ã³ãã€ã©ã¯ãã»ãã³ãã£ã¯ã¹ã«å¿ èŠãªååãžã®ãã€ã³ã¿ãã©ãã«é ãããšãã§ããŸããïŒ æ§é ãããæœè±¡åãããŠããããã€ã³ã¿ã®å Žæãã©ããã«é ããŠããå Žåã§ããè€éãªãªããžã§ã¯ããããããæ§é ãå«ãé åãå«ãæ§é ã«ã¡ã¢ãªãå²ãåœãŠããšãã«ãããã®ãã€ã³ã¿ãæ£ããåæåããæè¡çåé¡ãã©ã®ããã«è§£æ±ºããŸããä»»æã®æ·±ããŸã§ïŒ
解決çã¯ãåã®ãªãBCPLãšåä»ãã®Cã®éã®é²åé£éã®æ±ºå®çãªé£èºã§ããããªããžããªå ã®ãã€ã³ã¿ã®å®äœåãé€å€ãã代ããã«åŒã§é ååãèšåããããšãã«çæããŸããã ä»æ¥ã®Cã§ä¿æãããŠããã«ãŒã«ã¯ãå€-é åãåŒã§èšåããããšããã®é åãæ§æããæåã®ãªããžã§ã¯ããžã®ãã€ã³ã¿ãŒã«å€æããããšããããšã§ãã
Cããã®å身ãšæãæ確ã«åºå¥ãã2çªç®ã®é©æ°ã¯ããã®ããå®å šãªåæ§é ã§ãããç¹ã«å®£èšã®æ§æã«ãããè¡šçŸåã§ãã NBã¯ãåºæ¬çãªintåãšcharåããããã®é åãšããããžã®ãã€ã³ã¿ãšãšãã«æäŸããŸããããããããçµã¿åãããä»ã®æ¹æ³ã¯ãããŸããã§ããã
æ±åãå¿ èŠã§ãããä»»æã®åã®ãªããžã§ã¯ãã«å¯ŸããŠããã®ãããªãªããžã§ã¯ããé åã«çµåããããé¢æ°ããåãåã£ããããã€ã³ã¿ã«ãããããæ°ãããªããžã§ã¯ããèšè¿°ããããšãã§ããã¯ãã§ãã
Cèšèªããã®ç»å ïŒM.ãŠã§ã€ããSããã©ã¿ãDãããŒãã£ã³
ãã®ãããªè€ååã®ãªããžã§ã¯ãã«ã€ããŠã¯ããã®äžéšã§ãããªããžã§ã¯ããæãæ¹æ³ãæ¢ã«ãããŸãããé åã®ã€ã³ããã¯ã¹ä»ããé¢æ°ã®åŒã³åºãããã€ã³ã¿ãŒã䜿çšããéæ¥ã¢ã¯ã»ã¹æŒç®åã®äœ¿çšã åæ§ã®çç±ãããååã宣èšããæ§æãäœæãããŸãããããã¯ããããã®ååã䜿çšãããåŒã®æ§æãåæ ããŠããŸãã ã ãã
int iã* piã** ppi;æŽæ°ãæŽæ°ãžã®ãã€ã³ã¿ãŒãããã³æŽæ°ãžã®ãã€ã³ã¿ãŒãžã®ãã€ã³ã¿ãŒã宣èšããŸãã ãããã®å®£èšã®æ§æã¯ãiã* piãããã³** ppiããã¹ãŠåŒã§äœ¿çšããããšintåã«ãªããšããäºå®ãåæ ããŠããŸãã åæ§ã«
int fïŒïŒã* fïŒïŒãïŒ* fïŒïŒïŒ;æŽæ°ãè¿ãé¢æ°ãæŽæ°ãžã®ãã€ã³ã¿ãŒãè¿ãé¢æ°ãæŽæ°ãè¿ãé¢æ°ãžã®ãã€ã³ã¿ãŒã宣èšããŸãã
int * api [10]ãïŒ* paiïŒ[10];æŽæ°ãžã®ãã€ã³ã¿ãŒã®é åãæŽæ°ã®é åãžã®ãã€ã³ã¿ãŒã宣èšããŸãã
ãããã®ãã¹ãŠã®å Žåã«ãããŠãå€æ°ã®å®£èšã¯ã宣èšã®å é ã«ããåãæã€åŒã§ã®äœ¿çšã«äŒŒãŠããŸãã
70幎代ïŒããã©ãã«ã®æããšèª€ã£ãæ¹èš
1973幎ãŸã§ã«ããã®èšèªã¯UNIXãæžãæããããšãã§ããã»ã©å®å®ããŸããã Cãžã®åãæ¿ãã«ã¯ã移æ€æ§ãšããéèŠãªå©ç¹ããããŸããã Bell Labsã®åãã·ã³ã«Cã³ã³ãã€ã©ãäœæããããšã«ãããéçºããŒã ã¯UNIXããããã«ç§»æ€ã§ããŸããã
Cèšèªã®åºçŸã«é¢ããŠãPeter Moylanã®èæžãThe Cã«å¯ŸããäºäŸãã§ã¯ã次ã®ããã«æžããŠããŸãã å¿ èŠã ã£ãã®ã¯ãã¢ã»ã³ãã©ãŒãŸãã¯ãã·ã³ã³ãŒãã®ã¬ãã«ã§ããå®è£ ã§ããªãã£ãäœããããããšãã§ããèšèªã§ãããã
Cã¯70幎代ã«çºå±ãç¶ããŸããã 1973-1980幎代ã«ãèšèªã¯å°ãæé·ããŸãããåæ§é ã¯ã笊å·ãªãã®longåãå ±çšäœãåæåãåãåããæ§é ã¯ã¯ã©ã¹ãªããžã§ã¯ãã®è¿ãã«ãªããŸããïŒãªãã©ã«ã®è¡šèšã®ã¿ãæ¬ èœïŒã
æåã®Cæ¬ã ãã©ã€ã¢ã³ã»ã«ãŒãã¬ã³ãšããã¹ã»ãªãããŒã«ãã£ãŠæžããã1978幎ã«åºçãããæ¬Cããã°ã©ãã³ã°èšèªã¯ãCããã°ã©ããŒã®èæžã«ãªã£ãŠããŸãã å ¬åŒã®æšæºãååšããªãå Žåããã®æ¬ïŒKïŒRããŸãã¯Cãã¡ã³ã奜ããã¯ã€ãããã¯ãšãåŒã°ããïŒãå®éã«æšæºã«ãªããŸããã
learnc.infoããã®ç»å
70幎代ã«ã¯Cããã°ã©ããŒã¯ã»ãšãã©ããŸããã§ãããããã®ã»ãšãã©ã¯UNIXãŠãŒã¶ãŒã§ããã ãããã80幎代ã«ã¯ãCã¯UNIXã®äžçã®çãç¯å²ãè¶ ããŠããŸããã Cã³ã³ãã€ã©ã¯ãç°ãªããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãå®è¡ããããŸããŸãªãã·ã³ã§å©çšå¯èœã«ãªããŸããã ç¹ã«ãCã¯æ¥éã«æé·ããŠãããã©ââãããã©ãŒã IBM PCã§åºããå§ããŸããã
KïŒR ã¯æ¬¡ã®èšèªæ©èœãå°å ¥ããŸãã ã
â¢æ§é ïŒæ§é ããŒã¿åïŒ;
â¢é·æŽæ°ïŒããŒã¿ålong intïŒã
â¢ç¬Šå·ãªãæŽæ°ïŒããŒã¿åunsigned intïŒã
â¢æŒç®å+ =ããã³é¡äŒŒã®æŒç®åïŒå€ãæŒç®å= +ã¯ãåŒi = + 10ãši = +10ãæ¯èŒããå Žåãªã©ãCã³ã³ãã€ã©ã®èªåœã¢ãã©ã€ã¶ãŒã誀解ãããŸããïŒã
KïŒR Cã¯ãCã³ã³ãã€ã©ããµããŒãããèšèªã®æãéèŠãªéšåãšèŠãªãããããšããããããŸãã ANSI Cã®ãªãªãŒã¹åŸãããã¹ãŠã®ã³ã³ãã€ã©ãANSI CããµããŒãããŠããããã§ã¯ãªããåªããKïŒR Cã³ãŒããANSI Cã«åœãŠã¯ãŸããããé·å¹Žãããã°ã©ããŒãããã°ã©ã ããæ倧éã®ç§»æ€æ§ãéæããããšãæãæäœã¬ãã«ãšèŠãªãããŠããŸããã
人æ°ã®é«ãŸããšãšãã«ãåé¡ãçºçããŸããã æ°ããã³ã³ãã€ã©ãŒãäœæããããã°ã©ããŒã¯ãKïŒRã§èª¬æãããŠããèšèªãåºç€ãšããŠäœ¿çšããŸããã æ®å¿µãªãããKïŒRã§ã¯èšèªã®äžéšã®æ©èœããããŸãã«èšè¿°ãããŠãããããã³ã³ãã€ã©ãŒã¯ãã°ãã°ããããèªç±è£éã§è§£éããŠããŸããã ããã«ããã®æ¬ã¯ãèšèªã®æ©èœãšUNIXãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®æ©èœãæ確ã«åºå¥ããŸããã§ããã
KïŒR Cã®çºè¡åŸãATïŒTã³ã³ãã€ã©ãŒããã³ä»ã®ããã€ãã®ã¡ãŒã«ãŒããµããŒãããããã€ãã®æ©èœãèšèªã«è¿œå ãããŸããã
â¢å€ãè¿ããªãé¢æ°ïŒvoidåïŒãããã³åãæããªããã€ã³ã¿ãŒïŒvoid *åïŒã
â¢é¢é£ä»ããšæ§é ãè¿ãé¢æ°ã
â¢æ§é ããšã«ç°ãªãåå空éã®ãããã®æ§é ã®ãã£ãŒã«ãåã
â¢æ§é ã®å²ãåœãŠã
â¢å®æ°æå®åïŒconstïŒã
â¢ããŸããŸãªã¡ãŒã«ãŒã«ãã£ãŠå°å ¥ãããæ©èœã®ã»ãšãã©ãå®è£ ããæšæºã©ã€ãã©ãªã
â¢åæåïŒenumïŒã
â¢å粟床ã®å°æ°ïŒæµ®åïŒã
KïŒRã®çºè¡åŸãXiã¯çºå±ãç¶ãããšããäºå®ã«ãã£ãŠç¶æ³ã¯æªåããŸãããXiã¯ããã«æ°ããæ©äŒãè¿œå ãããå€ãæ©äŒã¯åãåãããŸããã ãŸããªããèšèªã®å æ¬çã§æ£ç¢ºãã€çŸä»£çãªèšè¿°ãæããã«å¿ èŠã«ãªããŸããã ãã®ãããªæšæºããªããã°ãèšèªã®æ¹èšãçŸãå§ããããã移æ€æ§ã劚害ããŸãã-èšèªã®æã匷ãåŽé¢ã§ãã
åºæº
1970幎代åŸåã«ãCèšèªã¯BASICã«åã£ãŠä»£ããå§ããŸãããBASICã¯åœæããã€ã¯ãã³ã³ãã¥ãŒã¿ããã°ã©ãã³ã°ã®ãªãŒããŒã§ããã 1980幎代ã«ã¯ãIBM-PCã¢ãŒããã¯ãã£ã«é©åãããã®äººæ°ãå€§å¹ ã«é«ãŸããŸããã
Cèšèªæšæºã®éçºã¯ãç±³åœèŠæ ŒåäŒïŒANSIïŒã«ãã£ãŠè¡ãããŸããã 1983幎ã«åœŒãšäžç·ã«ãX3J11å§å¡äŒãèšç«ãããæšæºã®éçºã«åŸäºããŸããã æšæºã®æåã®ããŒãžã§ã³ã¯1989幎ã«ãªãªãŒã¹ãããC89ãšåŒã°ããŠããŸããã 1990幎ã«èŠæ Œã«ããããªå€æŽãå ããŠãISOã«æ¡çšãããŸããã ãã®åŸã圌ã¯ã³ãŒãISO / IEC 9899ïŒ1990ã§ç¥ãããããã«ãªããŸããããããã°ã©ããŒã®éã§ã¯ãæšæºãæ¡çšããã幎ã«é¢é£ä»ããããååC90ãä¿®æ£ãããŸããã æšæºã®ææ°ããŒãžã§ã³ã¯ISO / IEC 9899ïŒ1999ã§ãããC99ãšããŠãç¥ããã2000幎ã«æ¡çšãããŸããã
C99æšæºã®é©æ°ã®äžã§ãå€æ°ã®å®£èšã®å Žæã«é¢ããèŠåã®å€æŽã«æ³šæãã䟡å€ããããŸãã æ°ããå€æ°ã¯ãè€åãããã¯ã®å é ãã°ããŒãã«ã¹ã³ãŒãã ãã§ãªããã³ãŒãã®éäžã§å®£èšã§ããããã«ãªããŸããã
C99ã®ããã€ãã®æ©èœïŒ
â¢ã€ã³ã©ã€ã³é¢æ°ïŒã€ã³ã©ã€ã³ïŒ;
â¢ããã°ã©ã ããã¹ãæŒç®åã§ã®ããŒã«ã«å€æ°ã®å®£èšïŒC ++ãªã©ïŒã
â¢long long intïŒ32ããããã64ãããæ°å€ãžã®ç§»è¡ã容æã«ããããïŒãæ瀺çãªããŒã«ããŒã¿å_Boolãè€çŽ æ°ãè¡šãè€çŽ æ°åãªã©ã®æ°ããããŒã¿åã
â¢å¯å€é·é åã
â¢å¶éä»ããã€ã³ã¿ãŒã®ãµããŒãïŒå¶éïŒã
â¢æ§é äœã®ååä»ãåæåïŒstruct {int xãyãz; } point = {.y = 10ã.z = 20ã.x = 30};
â¢C ++ããåçšãã//ã§å§ãŸãåäžè¡ã³ã¡ã³ãã®ãµããŒãïŒå€ãã®Cã³ã³ãã€ã©ã¯ãè¿œå ãšããŠä»¥åã«ãããããµããŒãããŠããŸããïŒã
â¢snprintfãªã©ã®ããã€ãã®æ°ããã©ã€ãã©ãªé¢æ°ã
â¢stdint.hãªã©ã®ããã€ãã®æ°ããããããŒãã¡ã€ã«ã
C99æšæºã¯ãçŸåšã®ãã¹ãŠã®Cã³ã³ãã€ã©ã§å€ããå°ãªãããµããŒããããŠããŸãã çæ³çã«ã¯ãæšæºãéµå®ããããŒããŠã§ã¢ããã³ã·ã¹ãã ã«äŸåããåŒã³åºãã䜿çšããªãCã§èšè¿°ãããã³ãŒãã¯ãããŒããŠã§ã¢ããŒã¹ããã³ãã©ãããã©ãŒã ã«äŸåããªãã³ãŒãã«ãªããŸããã
2007幎ã«ã次ã®Cèšèªæšæºã®äœæ¥ãéå§ãããŸããã 2011幎12æ8æ¥ã¯ãCèšèªã®æ°ããæšæºãå ¬éããŸããïŒISO / IEC 9899ïŒ2011ïŒã æ°ããæšæºã®äžéšã®æ©èœã¯ãGCCããã³Clangã³ã³ãã€ã©ã§æ¢ã«ãµããŒããããŠããŸãã
C11ã®äž»ãªæ©èœïŒ
â¢ãã«ãã¹ã¬ããã®ãµããŒãã
â¢UnicodeãµããŒãã®æ¹åã
â¢äžè¬åããããã¯ãïŒåãžã§ããªãã¯åŒãéçãªãŒããŒããŒããèš±å¯ïŒ;
â¢å¿åã®æ§é ãšé¢é£ä»ãïŒãã¹ããããæ§é ãžã®ã¢ã¯ã»ã¹ãç°¡çŽ åããïŒã
â¢ãªããžã§ã¯ãã®é 眮ã®ç®¡çã
â¢éçã¢ãµãŒã·ã§ã³ã
â¢å±éºãªgetsé¢æ°ã®åé€ïŒå®å šãªgets_sãæ¯æïŒ;
â¢quick_exité¢æ°ã
â¢é¢æ°æå®å_Noreturn;
â¢æ°ããæä»çãªãã¡ã€ã«ãªãŒãã³ã¢ãŒãã
11幎ãšããæšæºã«ãããããããå€ãã®ã³ã³ãã€ã©ã¯ãŸã C99ããŒãžã§ã³ãããå®å šã«ã¯ãµããŒãããŠããŸããã
Cã®æ¹å€å¯Ÿè±¡
ãšã³ããªãŒã®ãããå€ãããªãé«ããããæåã®ããã°ã©ãã³ã°èšèªãšããŠãã¬ãŒãã³ã°ã§äœ¿çšããã®ãé£ãããªããŸãã Cã§ããã°ã©ãã³ã°ãããšãã¯ãå€ãã®è©³çŽ°ãèæ ®ããå¿ èŠããããŸãã ãããã«ãŒã®éã§çãŸããããšã§ãå€ãã®å Žåå®å šã§ã¯ãªãé©åãªããã°ã©ãã³ã°ã¹ã¿ã€ã«ãåºæ¿ããæ··ä¹±ãæãã³ãŒãã®èšè¿°ãä¿é²ããŸãããšãŠã£ãããã£ã¢ã¯æžããŠããŸã ã
ããŒã¿ãŒã»ã¢ã€ã©ã³ã¯ãããæ·±ãåççãªæ¹å€ãè¡šæããŸãã ã 圌ã¯12ããŒãžãCã®æ¹å€ã«æ§ããŸããã 以äžã«ããã€ãã®ãã©ã°ã¡ã³ãã瀺ããŸãã
ã¢ãžã¥ãŒã«æ§ã®åé¡
Cã§ã®ã¢ãžã¥ã©ãŒããã°ã©ãã³ã°ã¯å¯èœã§ãããããã°ã©ããããã€ãã®ããªãå³æ ŒãªèŠåãé å®ããŠããå Žåã®ã¿ã§ãã
â¢åã¢ãžã¥ãŒã«ã«ã¯ãããããŒãã¡ã€ã«ã1ã€ã ãå¿ èŠã§ãã ãšã¯ã¹ããŒãå¯èœãªé¢æ°ã®ãããã¿ã€ãã説æã®ã¿ãå«ãå¿ èŠããããŸãïŒã³ã¡ã³ããé€ãïŒã
â¢ããããŒãã¡ã€ã«å ã®ã³ã¡ã³ãã®ã¿ãããã®ã¢ãžã¥ãŒã«ã«é¢ããå€éšåŒã³åºãããã·ãŒãžã£ã«èªèãããå¿ èŠããããŸãã
â¢æŽåæ§ãæ€èšŒããã«ã¯ãåã¢ãžã¥ãŒã«ãç¬èªã®ããããŒãã¡ã€ã«ãã€ã³ããŒãããå¿ èŠããããŸãã
â¢å¥ã®ã¢ãžã¥ãŒã«ããæ å ±ãã€ã³ããŒãããã«ã¯ãåã¢ãžã¥ãŒã«ã«#includeè¡ãšãå®éã«ã€ã³ããŒããããŠããå 容ã瀺ãã³ã¡ã³ããå«ãŸããŠããå¿ èŠããããŸãã
â¢é¢æ°ãããã¿ã€ãã¯ãããããŒãã¡ã€ã«ã§ã®ã¿äœ¿çšã§ããŸãã ïŒCã«ã¯ãé¢æ°ããããã¿ã€ããšåãã¢ãžã¥ãŒã«ã«å®è£ ãããŠããããšãæ€èšŒããã¡ã«ããºã ããªãããããã®ã«ãŒã«ãå¿ èŠã§ãããããã£ãŠããããã¿ã€ãã䜿çšãããšããæ¬ èœé¢æ°ããšã©ãŒããã¹ã¯ã§ããŸãïŒã
â¢ã¢ãžã¥ãŒã«å ã®ã°ããŒãã«å€æ°ãããã³ããããŒãã¡ã€ã«ãä»ããŠã€ã³ããŒããããé¢æ°ä»¥å€ã®é¢æ°ã¯ãéçãšå®£èšããå¿ èŠããããŸãã
â¢ããããã¿ã€ããªãã®é¢æ°åŒã³åºãããšããã³ã³ãã€ã©èŠåãæäŸããå¿ èŠããããŸãã ãã®ãããªèŠåã¯åžžã«ãšã©ãŒãšèŠãªãããå¿ èŠããããŸãã
â¢ããã°ã©ãã¯ãããããŒãã¡ã€ã«ã§æå®ãããåãããã¿ã€ãããåãã¢ãžã¥ãŒã«å ã®åãååã§å®è£ ããããã©ã€ããŒãïŒã€ãŸããéåžžã®Cçšèªã§ã¯ééçïŒã§ãªãé¢æ°ã«å¯Ÿå¿ããããšã確èªããå¿ èŠããããŸãã æ®å¿µãªãããCèšèªã®æ§è³ªã«ããããããèªåçã«æ€èšŒããããšã¯ã§ããŸããã
â¢grepãŠãŒãã£ãªãã£ã®äœ¿çšã«ã¯çããæã€å¿ èŠããããŸãã ãããã¿ã€ãããã®å Žæã«ãªãå Žåãããã¯ããããééãã§ãã
â¢çæ³çã«ã¯ãåãããŒã ã§äœæ¥ããããã°ã©ãã¯ãäºãã®ãœãŒã¹ãã¡ã€ã«ã«ã¢ã¯ã»ã¹ã§ããªãããã«ããå¿ èŠããããŸãã ãªããžã§ã¯ãã¢ãžã¥ãŒã«ãšããããŒãã¡ã€ã«ã®ã¿ãå ±æããå¿ èŠããããŸãã
æãããªé£ç¹ã¯ãã³ã³ãã€ã©ããããã®èŠåãå³å®ããå¿ èŠããªãããããããã®èŠåã«åŸãããšã¯ã»ãšãã©ãªããšããããšã§ãã ã¢ãžã¥ã©ãŒããã°ã©ãã³ã°èšèªã¯ãæªãããã°ã©ããŒãäœæããã«ãªã¹ããå°ãªããšãéšåçã«åªããããã°ã©ããŒãä¿è·ããŸãã ãããŠãCèšèªã¯ãããè¡ãããšãã§ããŸããã
smartagilee.comããã®ç»å
ãã€ã³ã¿ãŒã®åé¡
ããŒã¿æ§é ã®çè«ãšå®è·µã®ãã¹ãŠã®é²æ©ã«ããããããããã€ã³ã¿ãŒã¯ããã°ã©ããŒã«ãšã£ãŠæ¬åœã®é害ã§ãã ãã€ã³ã¿ãŒã䜿çšããããšã¯ãããã°ã©ã ã®ãããã°ã«è²»ããæéã®ããªãã®éšåãå ããéçºãè€éã«ããåé¡ã®å€§éšåãåŒãèµ·ããã®ã¯ãã€ã³ã¿ãŒã§ãã
éèŠãªãã€ã³ã¿ãŒãšéèŠã§ãªããã€ã³ã¿ãŒãåºå¥ã§ããŸãã ç§ãã¡ãç解ããäžã§éèŠãªã®ã¯ãããŒã¿æ§é ã®äœæãšç¶æã«å¿ èŠãªãã€ã³ã¿ãŒã§ãã
ããŒã¿æ§é ãå®è£ ããå¿ èŠããªãå Žåããã€ã³ã¿ãŒã¯éèŠã§ã¯ãªããšèŠãªãããŸãã å žåçãªCããã°ã©ã ã§ã¯ãéèŠãªãã€ã³ã¿ãŒãããå€ãã®éèŠãªãã€ã³ã¿ãŒããããŸãã ããã«ã¯2ã€ã®çç±ããããŸãã
1ã€ç®ã¯ãCèšèªã䜿çšããããã°ã©ããŒã®éã§ã¯ãé åèŠçŽ ã衚瀺ããå Žåãªã©ãä»ã®ã¢ã¯ã»ã¹æ¹æ³ã決ããŠãããã«å£ããªãå Žåã§ãããã€ã³ã¿ãŒãäœæããããšãäŒçµ±ãšãªã£ãŠããããšã§ãã
2çªç®ã®çç±ã¯ãé¢æ°ã®ãã¹ãŠã®ãã©ã¡ãŒã¿ãŒãå€ã§æž¡ãå¿ èŠãããCèšèªã®èŠåã§ãã Pascal VARãã©ã¡ãŒã¿ãŒãŸãã¯Adaèšèªã®inoutãã©ã¡ãŒã¿ãŒã«çžåœãããã®ãå¿ èŠãªå Žåãå¯äžã®è§£æ±ºçã¯ãã€ã³ã¿ãŒãæž¡ãããšã§ãã ããã¯äž»ã«ãCããã°ã©ã ã®å¯èªæ§ã®äœãã説æããŠããŸãã
éèŠãªãã€ã³ã¿ãŒãå ¥å/åºåãã©ã¡ãŒã¿ãŒãšããŠæž¡ãå¿ èŠãããå Žåãç¶æ³ã¯æªåããŸãã ãã®å Žåãé¢æ°ã«ã¯ãã€ã³ã¿ãŒãžã®ãã€ã³ã¿ãŒãæž¡ãå¿ èŠããããŸããããã«ãããçµéšè±å¯ãªããã°ã©ããŒã§ãå°é£ãçããŸãã
Cã¯çããŠãã
2016幎6æã®ããŒã¿ã«ãããš ãããã°ã©ãã³ã°èšèªã®äººæ°ã®é«ãŸãã枬å®ããTIOBEã€ã³ããã¯ã¹ã¯ãCã2äœã§ããããšã瀺ããŸããã
Cãæ代é ãã§ããã圌ã®åºç¯å²ã«ãããååžã¯å¹žéãšç©æ¥µçãªPRã®çµæã§ãããšèª°ãã«èšãããŠãã ããã UNIXããªããã°ãCã¯æ±ºããŠäœæãããªãã£ããšèª°ãã«èšãããŠãã ããã
ãã ããCã¯äžçš®ã®æšæºã«ãªããŸããã äœããã®æ¹æ³ã§ãä»ã®å€ãã®èšèªãšã¯ç°ãªããæã®è©Šç·Žã«åæ ŒããŸããã Céçºè ã¯äŸç¶ãšããŠéèŠããããITã³ãã¥ããã£ã¯èšèªã®äœæè ã芪åãªèšèã§æãåºããŸãã