C--
சி-(சி மைனஸ் மைனஸ் என்று உச்சரிக்கப்படுகிறது) என்பது சி போன்ற நிரலாக்க மொழியாகும், இது மனித புரோகிராமர்களால் எழுதப்படுவதை விட உயர் மட்ட மொழிகளுக்கான தொகுப்பாளர்களால் முக்கியமாக உருவாக்க வடிவமைக்கப்பட்டுள்ளது. இது செயல்பாட்டு நிரலாக்க ஆராய்ச்சியாளர்களான சைமன் பெய்டன் ஜோன்ஸ் மற்றும் நார்மன் ராம்சே ஆகியோரால் உருவாக்கப்பட்டது. பல இடைநிலை மொழிகளைப் போலல்லாமல், இது எளிய ASCII உரையில் குறிப்பிடப்படுகிறது, பைட்ட்கோட் அல்லது மற்றொரு பைனரி வடிவத்தில் அல்ல. இரண்டு முக்கிய கிளைகள் உள்ளனஃ சி-, அசல் கிளை, இறுதி பதிப்பு 2 உடன் மே 2005 இல் வெளியிடப்பட்டது சி. எம். எம், ஃபோர்க் கிளாஸ்கோ ஹாஸ்கெல் கம்பைலர் (ஜி. எச். சி) டிசைன் சி இல் இடைநிலை பிரதிநிதித்துவமாக (ஐஆர்) தீவிரமாக பயன்படுத்தப்படுகிறது-இது ஒரு "சிறிய அசெம்பிளி மொழி", இது உயர்தர இயந்திர குறியீட்டை உருவாக்கும் கம்பைலர்களை செயல்படுத்துவதை எளிதாக்க வடிவமைக்கப்பட்டுள்ளது. இது குறைந்த-நிலை குறியீடு-உருவாக்கம் மற்றும் நிரல் உகப்பாக்கத்தை ஒரு சி-கம்பைலருக்கு ஒப்படைப்பதன் மூலம் செய்யப்படுகிறது. மொழியின் தொடரியல் C இலிருந்து பெரிதும் கடன் வாங்குகிறது, அதே நேரத்தில் மாறுபட்ட செயல்பாடுகள், சுட்டிக்காட்டி தொடரியல் மற்றும் C இன் வகை அமைப்பின் அம்சங்கள் போன்ற நிலையான C அம்சங்களைத் தவிர்க்கிறது அல்லது மாற்றுகிறது, ஏனெனில் அவை C இன் அத்தியாவசிய அம்சங்களையும் குறியீடு உருவாக்கத்தின் எளிமையையும் தடுக்கின்றன. மொழியின் பெயர் ஒரு நகைச்சுவையாகும், இது சி-- என்பது சி இன் குறைக்கப்பட்ட வடிவம் என்பதைக் குறிக்கிறது, அதே வழியில் சி இன் மேம்பட்ட பதிப்பைக் குறிக்க "சி + +" தேர்ந்தெடுக்கப்பட்டது. (சி இல்,-- மற்றும் + + முறையே "குறைப்பு" மற்றும் "அதிகரிப்பு" என்று பொருள்படும்.) சி-இல் வேலை 1990 களின் பிற்பகுதியில் தொடங்கியது. தனிப்பயன் குறியீடு ஜெனரேட்டரை எழுதுவது ஒரு சவாலாக இருப்பதால், அந்த நேரத்தில் ஆராய்ச்சியாளர்களுக்கு கிடைக்கக்கூடிய தொகுப்பாளர் பின்தளங்கள் சிக்கலானவை மற்றும் மோசமாக ஆவணப்படுத்தப்பட்டவை என்பதால், பல திட்டங்கள் சி குறியீட்டை உருவாக்கும் தொகுப்பாளர்களை எழுதியிருந்தன (எடுத்துக்காட்டாக, அசல் மாடுலா-3 தொகுப்பாளர்). இருப்பினும், செயல்பாட்டு மொழிகளுக்கு சி ஒரு மோசமான தேர்வாகும்ஃ இது வால்-அழைப்பு உகப்பாக்கத்திற்கு உத்தரவாதம் அளிக்காது, அல்லது துல்லியமான குப்பை சேகரிப்பு அல்லது திறமையான விதிவிலக்கு கையாளுதலை ஆதரிக்காது. சி-இவை அனைத்தையும் ஆதரிக்கும் சி க்கு இறுக்கமாக வரையறுக்கப்பட்ட எளிய மாற்றாகும். அதன் மிகவும் புதுமையான அம்சம் ஒரு ரன்-டைம் இடைமுகமாகும், இது சிறிய குப்பை சேகரிப்பாளர்கள், விதிவிலக்கு கையாளுதல் அமைப்புகள் மற்றும் எந்தவொரு சி-கம்பைலருடனும் வேலை செய்யும் பிற ரன்-டைம் அம்சங்களை எழுத அனுமதிக்கிறது. சி-இன் முதல் பதிப்பு ஏப்ரல் 1998 இல் எம். எஸ். ஆர். ஏ காகிதமாக வெளியிடப்பட்டது, ஜனவரி 1999 இல் குப்பை சேகரிப்பு குறித்த காகிதத்துடன். ஒரு திருத்தப்பட்ட கையேடு மே 1999 இல் எச். டி. எம். எல் வடிவத்தில் வெளியிடப்பட்டது. 2000 ஆம் ஆண்டில் நார்மன் ராம்சே ("முன்மொழியப்பட்ட மாற்றங்கள்") மற்றும் கிறிஸ்டியன் லிண்டிக் ("ஒரு புதிய இலக்கணம்") ஆகியோரால் முன்மொழியப்பட்ட இரண்டு பெரிய மாற்றங்கள் சி-பதிப்பு 2 க்கு வழிவகுத்தன, இது 2004 ஆம் ஆண்டில் இறுதி செய்யப்பட்டு 2005 இல் அதிகாரப்பூர்வமாக வெளியிடப்பட்டது. வகை அமைப்பு சி-வகை அமைப்பு உயர் மட்ட மொழிகளால் விதிக்கப்பட்ட மரபுகளை விட வன்பொருளால் விதிக்கப்பட்ட கட்டுப்பாடுகளை பிரதிபலிக்கும் வகையில் வடிவமைக்கப்பட்டுள்ளது. ஒரு பதிவு அல்லது நினைவகத்தில் சேமிக்கப்பட்ட ஒரு மதிப்பு ஒரே ஒரு வகையைக் கொண்டிருக்கலாம்ஃ பிட்-வெக்டர். இருப்பினும், பிட்-வெக்டர் என்பது ஒரு பாலிமார்பிக் வகையாகும், இது பல அகலங்களில் வருகிறது, எ. கா. ,, அல்லது. மிதக்கும் புள்ளி வகைகளின் ஒரு தனி 32-அல்லது-64 பிட் குடும்பம் ஆதரிக்கப்படுகிறது. பிட்-வெக்டர் வகையுடன் கூடுதலாக, சி-ஒரு பூலியன் வகையை வழங்குகிறது, இது வெளிப்பாடுகளால் கணக்கிடப்படலாம் மற்றும் கட்டுப்பாட்டு ஓட்டத்திற்கு பயன்படுத்தப்படலாம், ஆனால் ஒரு பதிவு அல்லது நினைவகத்தில் சேமிக்க முடியாது. ஒரு அசெம்பிளி மொழியைப் போலவே, கையொப்பமிடப்பட்ட, கையொப்பமிடப்படாத, மிதக்கும் மற்றும் சுட்டிக்காட்டி ஆகியவற்றுக்கு இடையிலான வேறுபாடுகள் போன்ற எந்தவொரு உயர் வகை ஒழுக்கமும் சி-ஆபரேட்டர்கள் அல்லது பிற சொற்பொருள் கட்டமைப்புகளால் விதிக்கப்படுகிறது. சி-வகை சரிபார்க்கப்படவில்லை, அது அழைப்பு நடைமுறையை அமல்படுத்தவோ அல்லது சரிபார்க்கவோ இல்லை. சி-பதிப்பு 2 பிட்-வெக்டர் மற்றும் மிதக்கும்-புள்ளி வகைகளுக்கு இடையிலான வேறுபாட்டை நீக்குகிறது. இந்த வகைகளை ஒரு சரம் "வகை" குறிச்சொல்லுடன் குறிப்பிடலாம், மற்றவற்றுடன், ஒரு மாறியின் முழு எண் மற்றும் மிதவை தட்டச்சு மற்றும் அதன் சேமிப்பு நடத்தை (உலகளாவிய அல்லது உள்ளூர்) ஆகியவற்றை வேறுபடுத்திக் காணலாம். முழு எண் மற்றும் மிதக்கும் புள்ளி மதிப்புகளுக்கு தனித்தனி பதிவேடுகளைக் கொண்ட இலக்குகளுக்கு முந்தையது பயனுள்ளதாக இருக்கும். சுட்டிகள் மற்றும் சொந்த வார்த்தைகளுக்கான சிறப்பு வகைகள் அறிமுகப்படுத்தப்பட்டன, இருப்பினும் அவை இலக்கு சார்ந்த நீளத்துடன் ஒரு பிட்-வெக்டருடன் வரைபடமாக்கப்பட்டுள்ளன. எடுத்துக்காட்டு குறியீடு பின்வரும் சி-குறியீடு 1 முதல் n வரையிலான முழு எண்களின் கூட்டுத்தொகை மற்றும் பெருக்கத்தைக் கணக்கிடுகிறது (n ஒரு வாதமாக பெறப்படுகிறது). இது இரண்டு மொழி அம்சங்களை நிரூபிக்கிறதுஃ நடைமுறைகள் பல முடிவுகளைத் தரலாம். வால் மறுநிகழ்வு வெளிப்படையாக "ஜம்ப்" முக்கிய வார்த்தையுடன் கோரப்படுகிறது. / * வால் மறுசுழற்சி */ஏற்றுமதி sp2; sp2 (பிட்கள் 32 n) {ஜம்ப் sp2 _ ஹெல்ப் (n, 1,1);} sp2 _ ஹெல்ப் (பிட்கள் 32 n, பிட்கள் 32 s, பிட்கள் 32 p) {n = = 1 என்றால் (திரும்ப (கள், p);} இல்லையெனில் {ஜம்ப் sp2 _ ஹெல்ப் (n-1, s + n, p * n);}} செயலாக்கங்கள் C-இன் விவரக்குறிப்பு பக்கம் C-இன் சில செயல்பாடுகளை பட்டியலிடுகிறது. "மிகவும் தீவிரமாக உருவாக்கப்பட்ட" தொகுப்பாளரான குயிக் சி--, 2013 இல் கைவிடப்பட்டது. சைமன் பெய்டன் ஜோன்ஸ், ஜோவோ டயஸ் மற்றும் நார்மன் ராம்சே உட்பட சி-இன் சில டெவலப்பர்கள், ஜி. எச். சி. யில் வேலை செய்கிறார்கள் அல்லது பணியாற்றியுள்ளனர், அதன் வளர்ச்சி சி-மொழியில் நீட்டிப்புகளுக்கு வழிவகுத்துள்ளது, இது சிஎம்எம் பேச்சுவழக்கை உருவாக்குகிறது, இது சி முன் செயலாக்கியைப் பயன்படுத்துகிறது பணிப்பாய்வுக்கு. எல்எல்விஎம் ஐஆர், மெதுவான சி வழியாகவோ அல்லது நேரடியாக உள்ளமைக்கப்பட்ட சொந்த பின்தளத்தின் வழியாகவோ சி-ஐ செயல்படுத்தக்கூடிய குறியீடாக மாற்றுவதற்கு ஜிஎச்ஸி பின்தளங்கள் பொறுப்பாகும். அசல் நோக்கம் இருந்தபோதிலும், ஜி. எச். சி அதன் பல பொதுவான தேர்வுகளை சி-இல் செய்கிறது. மற்ற கம்பைலர் ஐ. ஆர். களைப் போலவே, சி-பிரதிநிதித்துவத்தையும் பிழைத்திருத்தத்திற்காக கொட்டலாம். இலக்கு-குறிப்பிட்ட உகப்பாக்கங்கள் பின்னர் பின்தளத்தால் செய்யப்படுகின்றன. BCPL LLVM குறிப்புகள் வெளிப்புற இணைப்புகள் பழைய அதிகாரப்பூர்வ வலைத்தளத்தின் காப்பகம் (cminusminus.org) விரைவு சி-குறியீடு காப்பகம் (குறிப்பு செயல்படுத்தல்) சி நிரலாக்க மொழி குடும்ப தொகுப்பாளர்கள்