StaDyn (programming language)
ஸ்டாடின் என்பது ஒரே நிரலாக்க மொழியில் நிலையான மற்றும் மாறும் தட்டச்சு இரண்டையும் ஆதரிக்கும். நெட் இயங்குதளத்திற்கான ஒரு பொருள் சார்ந்த பொது நோக்க நிரலாக்க மொழியாகும். ஸ்டைடின் கம்பைலர் மாறும் வகையில் தட்டச்சு செய்யப்பட்ட குறியீட்டிற்கான வகை தகவல்களை சேகரிக்கிறது. தொகுப்பு நேரத்தில் வகை பிழைகளைக் கண்டறியவும், குறிப்பிடத்தக்க உகப்பாக்கங்களைச் செய்யவும் அந்த வகை தகவல் பயன்படுத்தப்படுகிறது. அந்த நோக்கத்திற்காக, இது வகை புனரமைப்பு (அனுமானம்), ஓட்டம்-உணர்திறன் வகைகள், ஒன்றிணைப்பு மற்றும் குறுக்குவெட்டு வகைகள், கட்டுப்பாடு அடிப்படையிலான தட்டச்சு, மாற்றுப்பெயர் பகுப்பாய்வு மற்றும் முறை நிபுணத்துவம் ஆகியவற்றை வழங்குகிறது. அதன் முதல் முன்மாதிரி 2007 இல் C #3 இன் மாற்றமாக தோன்றியது. சி #போலல்லாமல், ஒரு புதிய வகையாக வர் சேர்ப்பதன் மூலம் வகை அனுமானம் ஆதரிக்கப்பட்டது, இது துவக்கப்பட்ட உள்ளூர் மாறிகளை வரையறுக்க வர் மட்டுமே வழங்குகிறது. ஓட்டம்-உணர்திறன் கொண்ட வார் குறிப்புகள் தொகுப்பாளரால் ஊகிக்கப்படுகின்றன, இது வகை-பாதுகாப்பான வாத்து தட்டச்சு வழங்குகிறது. புரோகிராமருக்கு மிகவும் மென்மையான அணுகுமுறை தேவைப்படும்போது, வாருக்குப் பதிலாக டைனமிக்டிடைப் பயன்படுத்தப்படலாம். வகை அனுமானம் இன்னும் நிகழ்த்தப்பட்டாலும், மாறும் குறிப்புகள் மாறும் மொழிகளில் உள்ளவற்றுடன் நெருக்கமாக செயல்படுகின்றன. ஸ்டாடைன் ஓவியோடோ பல்கலைக்கழகத்தைச் சேர்ந்த பிரான்சிஸ்கோ ஒர்டினால் வடிவமைக்கப்பட்டது. ஃபிரான்சிஸ்கோ ஒர்டினைத் தவிர, மிகுவல் கார்சியா, ஜோஸ் பால்டசர் கார்சியா பெரேஸ்-ஸ்கோஃபீல்ட் மற்றும் ஜோஸ் க்விரோகா உள்ளிட்ட கணக்கீட்டு பிரதிபலிப்பு ஆராய்ச்சிக் குழுவின் பல்வேறு உறுப்பினர்களால் இந்த மொழி செயல்படுத்தப்பட்டுள்ளது. ஸ்டாடின் என்ற பெயர் நிலையான மற்றும் மாறும் தன்மை கொண்ட ஒரு கலவையாகும், இது நிலையான மற்றும் மாறும் தட்டச்சு இரண்டின் நன்மைகளையும் வழங்குவதற்கான அதன் நோக்கத்தைக் குறிக்கிறது. மாறும் மொழிகளைப் போலவே, மாறிகள் ஒரே வரம்பில் வெவ்வேறு வகைகளைக் கொண்டிருக்கலாம்ஃ கணினியைப் பயன்படுத்துதல்; வகுப்பு நிரல் {பொது நிலையான வெற்றிட முதன்மை () {Console.Write ("எண்ஃ"); வரி வயது = Console.In.ReadLine (); Console.WriteLine ("இலக்கங்கள்ஃ + age.Length); வயது = Convert.ToInt32 (வயது); வயது + +; Console.WriteLine (" பிறந்தநாள் வாழ்த்துக்கள், நீங்கள் "+ வயது +" இப்போது வயதாகிவிட்டீர்கள். "); int நீளம் = age.Length;// * தொகுப்பு பிழை} வயது மாறி முதலில் சரமாக ஊகிக்கப்படுகிறது, எனவே அதன் நீளம் பண்பைப் பெறுவது பாதுகாப்பானது. பின்னர், இது ஒரு முழு எண்ணைக் கொண்டுள்ளது, எனவே வயது + + என்பது ஒரு சரியான வெளிப்பாடாகும். கம்பைலர் கடைசி வரியில் ஒரு பிழையைக் கண்டறிகிறது, ஏனெனில் நீளம் இனி வயதினால் வழங்கப்படவில்லை. உருவாக்கப்பட்ட குறியீடு வயதைக் குறிக்க ஒரு பொருள் மாறியைப் பயன்படுத்தாது, ஆனால் சரம் மற்றும் int வகைகளைக் கொண்ட இரண்டு வெவ்வேறு மாறிகள். எஸ்எஸ்ஏ படிவத்தை கணக்கிடுவதற்கான வழிமுறையை மாற்றியமைப்பதன் மூலம் இது அடையப்படுகிறது. இது உருவாக்கப்பட்ட குறியீட்டை மிகவும் திறமையானதாக ஆக்குகிறது, ஏனெனில் இயக்க நேர வகை மாற்றங்கள் தேவையில்லை. ஓட்டம்-உணர்திறன் வகைகள் வர் மற்றும் டைனமிக் மாறிகள் ஓட்டம்-உணர்திறன் வகைகளை வைத்திருக்க முடியும்ஃ கணினியைப் பயன்படுத்துதல்; வகுப்பு நிரல் {பொது நிலையான வெற்றிட மெயின் (சரம் [] ஆர்க்ஸ்) {வர் விதிவிலக்கு; (args.Length> 0) விதிவிலக்கு = புதிய பயன்பாடு விதிவிலக்கு ("ஒரு பயன்பாட்டு விதிவிலக்கு. "); இல்லையெனில் விதிவிலக்கு = புதிய அமைப்பு விதிவிலக்கு (" ஒரு அமைப்பு விதிவிலக்கு. "); Console.WriteLine (exception.Message);}} மெசேஜ் சொத்தை விதிவிலக்காகப் பெறுவது பாதுகாப்பானது, ஏனெனில் அப்ளிகேஷன் எக்ஸெப்ஷன் மற்றும் சிஸ்டம் எக்ஸெப்ஷன் இரண்டும் அந்த சொத்தை வழங்குகின்றன. இல்லையெனில், ஒரு தொகுப்பு பிழை காட்டப்படும். இந்த வழியில், ஸ்டாடைன் ஒரு வகை-பாதுகாப்பான நிலையான வாத்து-தட்டச்சு முறையை வழங்குகிறது. பின்வரும் நிரலில்ஃ கணினியைப் பயன்படுத்துதல்; வகுப்பு நிரல் {பொது நிலையான வெற்றிட மெயின் (சரம் [] ஆர்க்ஸ்) {வர் விதிவிலக்கு; சுவிட்ச் (args.Length) {வழக்கு 0: விதிவிலக்கு = புதிய பயன்பாடு விதிவிலக்கு ("ஒரு பயன்பாட்டு விதிவிலக்கு. "); இடைவெளி; வழக்கு 1: விதிவிலக்கு = புதிய அமைப்பு விதிவிலக்கு (" ஒரு அமைப்பு விதிவிலக்கு. "); இடைவெளி; முன்னிருப்புஃ விதிவிலக்கு =" இது விதிவிலக்கு அல்ல. "; பிரேக்;} Console.WriteLine (exception.Message);// * கம்பைலர் பிழை வாருடன், ஆனால் டைனமிக் Console.WriteLine (exception.Unknown) உடன் அல்ல;// * கம்பைலர் பிழை} செய்தி பண்பு சரத்தால் வழங்கப்படவில்லை, எனவே ஒரு கம்பைலர் பிழை exception.Message க்கு காட்டப்படுகிறது. இருப்பினும், விதிவிலக்கை டைனமிக் என்று அறிவித்தால், முந்தைய நிரல் தொகுப்பாளரால் ஏற்றுக்கொள்ளப்படும். டைனமிக் மொழிகளின் சுவையைப் பின்பற்றி, டைனமிக் வர் விட மென்மையானது. இருப்பினும், நிலையான வகை சரிபார்ப்பு இன்னும் செய்யப்படுகிறது. இது குறியீட்டின் கடைசி வரியில் காட்டப்பட்டுள்ளது, அங்கு தொகுப்பாளர் exception.Unknown க்கான பிழையைக் காட்டுகிறது, விதிவிலக்கு மாறும் என்று அறிவிக்கப்பட்டாலும் கூட. ஏனென்றால், மூன்று சாத்தியமான வகைகளில் (அப்ளிகேஷன் எக்ஸெப்ஷன், சிஸ்டம் எக்ஸெப்ஷன் மற்றும் ஸ்ட்ரிங்) எதுவும் அறியப்படாத செய்தியை ஆதரிக்கவில்லை. பாதுகாப்பான அல்லது அதிக மென்மையான வகை சரிபார்ப்பைப் பெற டைனமிக் மற்றும் வர் வகைகளை வெளிப்படையாகப் பயன்படுத்தலாம் என்றாலும், ஒற்றை வர் குறிப்புகளின் டைனமிசம் கட்டளை-வரி விருப்பங்கள், எக்ஸ்எம்எல் உள்ளமைவு கோப்புகள் மற்றும் விஷுவல் ஸ்டுடியோவிற்கான சொருகி ஆகியவற்றுடன் மாற்றியமைக்கப்படலாம். புலங்களின் வகை அனுமானம் மற்றும் மாறும் வகைகளை பொருள் புலங்களாகப் பயன்படுத்தலாம்ஃ கிளாஸ் ரேப்பர் {பிரைவேட் வர் பண்புக்கூறு; பப்ளிக் ரேப்பர் (வர் பண்புக்கூறு) {this.attribute = பண்புக்கூறு;} பப்ளிக் வர் பெட் () {ரிட்டர்ன் பண்புக்கூறு;} பப்ளிக் வாய்ட் செட் (வர் பண்புக்கூறு) {this.attribute = பண்புக்கூறு;} கிளாஸ் டெஸ்ட் {பப்ளிக் ஸ்டேடிக் வாய்ட் மெயின் () {ஸ்ட்ரிங் aStப஼்ரிங்; இன்ட் aIꯟꯠ; ரேப்பர் ரேப்பர் = புதிய ரேப்பர் ("ஹலோ"); aString = wrapper.get (); aIꯟꯠ = wrapper.get ();// * கம்பைலர் பிழை wrapper.set (3); aString = wrapper.get ஒவ்வொரு முறையும் நாம் செட் முறையை அழைக்கும்போது, பண்புக்கூறு வகை வாதத்தின் வகையாக ஊகிக்கப்படுகிறது. ஒவ்வொரு பொருளும் வெவ்வேறு வகையான பண்புக்கூறுகளைக் கொண்டுள்ளது, எனவே அதன் வகை முழு வகுப்பிற்கும் அல்லாமல் ஒவ்வொரு நிகழ்வுக்கும் சேமிக்கப்படுகிறது. இந்த வழியில், மேலே உள்ள குறியீட்டில் சுட்டிக்காட்டப்பட்ட இரண்டு வரிகளும் தொகுப்பு பிழைகளை தெரிவிக்கின்றன. இந்த நடத்தையை ஆதரிக்க ஒரு வகை அடிப்படையிலான மாற்றுப்பெயர் பகுப்பாய்வு வழிமுறை செயல்படுத்தப்படுகிறது. கட்டுப்பாடு அடிப்படையிலான வகைகள் பின்வரும் முறையை பகுப்பாய்வு செய்வோம்ஃ பொது நிலையான வர் மேல் (வர் அளவுரு) {ரிட்டர்ன் parameter.ToUpper ();} அளவுருவின் வகை மற்றும் செயல்பாட்டு ரிட்டர்ன் மதிப்பு தொகுப்பாளரால் ஊகிக்கப்படுகிறது. அந்த நோக்கத்திற்காக, மேல் முறையின் வகையுடன் ஒரு கட்டுப்பாடு சேர்க்கப்படுகிறதுஃ வாதம் எந்த அளவுருக்களும் இல்லாமல் ஒரு டூப்பர் முறையை வழங்க வேண்டும். ஒவ்வொரு அழைப்பிலும், கட்டுப்பாடு சரிபார்க்கப்படும். கூடுதலாக, மேல் திரும்பும் வகை வாதத்தால் செயல்படுத்தப்படும் தொடர்புடைய டூப்பர் முறையின் திரும்பும் வகையாக ஊகிக்கப்படும். புரோகிராமர் அளவுருவை அறிவிக்க வர் அல்லது டைனமிக் பயன்படுத்தலாம், முறை அழைப்பின் போது வகை சரிபார்ப்பு செய்யப்படும் முறையை மாற்றலாம். மேலே அனுப்பப்பட்ட வாதம் ஒரு ஓட்டம்-உணர்திறன் வகையைக் கொண்டுள்ளது என்று வைத்துக்கொள்வோம் (எ. கா., மேலே உள்ள குறியீட்டில் உள்ள அப்ளிகேஷன் எக்ஸெப்ஷன், சிஸ்டம் எக்ஸெப்ஷன் அல்லது ஸ்ட்ரிங் எக்ஸெப்ஷன் மாறி). வர் உடன், வாதத்தின் அனைத்து சாத்தியமான வகைகளும் டோப்பரை வழங்க வேண்டும்; டைனமிக் உடன், குறைந்தபட்சம் ஒரு வகையாவது டோப்பரை வழங்க வேண்டும். இயக்க நேர செயல்திறன் ஸ்டாடைனால் சேகரிக்கப்பட்ட வகைத் தகவல்கள் உருவாக்கப்பட்ட குறியீட்டில் குறிப்பிடத்தக்க உகப்பாக்கங்களைச் செய்யப் பயன்படுத்தப்படுகின்றனஃ வகை ஆய்வுகள் மற்றும் வகை வார்ப்புகளின் எண்ணிக்கை குறைக்கப்படுகிறது, பிரதிபலிப்பு தவிர்க்கப்படுகிறது, அடிக்கடி வகைகள் தற்காலிக சேமிப்பில் வைக்கப்படுகின்றன, மேலும் கட்டுப்பாடுகள் கொண்ட முறைகள் சிறப்பு வாய்ந்தவை. அனைத்து உகப்பாக்கங்களின் நோக்கமும் இயக்க நேரத்தில் நிகழ்த்தப்படும் வகை-சரிபார்ப்பு செயல்பாடுகளின் எண்ணிக்கையைக் குறைப்பதாகும், இது பெரும்பாலான மாறும் மொழிகளின் முக்கிய செயல்திறன் அபராதமாகும். அந்த வகை காசோலைகளில் பல முன்பு ஸ்டாடைன் தொகுப்பாளரால் மேற்கொள்ளப்படுகின்றன. ஸ்டாடைனின் இயக்க நேர செயல்திறன் பற்றிய விரிவான மதிப்பீடு இங்கு விவரிக்கப்பட்டுள்ளது. மேலும் காண்க ஓ. சி. ஏ. எம். எல் ஸ்ட்ராங் டாக் பூ குறிப்புகள் வெளிப்புற இணைப்புகள் அதிகாரப்பூர்வ வலைத்தளம் கிட்ஹப் களஞ்சியம் கணக்கீட்டு பிரதிபலிப்பு ஆராய்ச்சி குழு நிரலாக்க மொழிகள். நெட் நிரலாக்க மொழிகள் வகுப்பு அடிப்படையிலான நிரலாக்க மொழிகள் இலவச தொகுப்பாளர்கள் மற்றும் மொழிபெயர்ப்பாளர்கள் பொருள் சார்ந்த நிரலாக்க மொழிகள் 2007 ஆம் ஆண்டில் உருவாக்கப்பட்ட மென்பொருள் எம்ஐடி உரிமத்தைப் பயன்படுத்தி நிலையான தட்டச்சு செய்யப்பட்ட நிரலாக்க மொழிகள் இயக்கவியல் தட்டச்சு செய்யப்பட்ட நிரலாக்க மொழிகள் 2007 மென்பொருள் ஸ்பானிஷ் கண்டுபிடிப்புகள்