Vala (programming language)
வாலா என்பது ஒரு பொருள் சார்ந்த நிரலாக்க மொழியாகும், இது ஒரு சுய-ஹோஸ்டிங் கம்பைலருடன் சி குறியீட்டை உருவாக்குகிறது மற்றும் கோப்ஜெக்ட் அமைப்பைப் பயன்படுத்துகிறது. வாலாவும் சி #ஐ ஒத்திருக்கிறது மற்றும் அநாமதேய செயல்பாடுகள், சமிக்ஞைகள், பண்புகள், ஜெனரிக்ஸ், உதவி நினைவக மேலாண்மை, விதிவிலக்கு கையாளுதல், வகை அனுமானம் மற்றும் ஃபோர்ச் அறிக்கைகள் போன்ற குறிப்பிடத்தக்க அம்சங்களை உள்ளடக்கியது. அதன் டெவலப்பர்கள், ஜூர்க் பில்லெட்டர் மற்றும் ரஃபேல் சாண்ட்ரினி, இந்த அம்சங்களை வெற்று சி ரன்டைமுக்கு கொண்டு வர விரும்பினர், சிறிய மேல்நிலை மற்றும் சிறப்பு ரன்டைம் ஆதரவு இல்லாமல் கோப்ஜெக்ட் பொருள் அமைப்பை குறிவைத்து. இயந்திரக் குறியீடு அல்லது அசெம்பிளி மொழிக்கு நேரடியாகத் தொகுப்பதற்குப் பதிலாக, இது குறைந்த அளவிலான இடைநிலை மொழிக்குத் தொகுக்கிறது. இது மூலத்திலிருந்து மூலத்திற்கு சி க்கு தொகுக்கிறது, பின்னர் ஜி. சி. சி அல்லது கிளாங் போன்ற கொடுக்கப்பட்ட தளத்திற்கான சி தொகுப்புடன் தொகுக்கப்படுகிறது. சொந்த குறியீடு நூலகங்களிலிருந்து செயல்பாட்டைப் பயன்படுத்துவதற்கு வாபி கோப்புகளை எழுத வேண்டும், நூலக இடைமுகங்களை வரையறுக்க வேண்டும். இந்த இடைமுக வரையறைகளை எழுதுவது சி நூலகங்களுக்கு நன்கு ஆவணப்படுத்தப்பட்டுள்ளது. மல்டிமீடியா நூலகம் எஸ்டிஎல் மற்றும் ஓபன்ஜிஎல் போன்ற கோப்ஜெக்ட்டை அடிப்படையாகக் கொண்ட நூலகங்கள் உட்பட ஏராளமான நூலகங்களுக்கு பிணைப்புகள் ஏற்கனவே கிடைக்கின்றன. விவரணம் வாலா என்பது ஒரு நிரலாக்க மொழியாகும், இது ஸ்கிரிப்டிங் மொழிகளின் உயர் மட்ட கட்டுமான நேர செயல்திறனை குறைந்த அளவிலான நிரலாக்க மொழிகளின் இயக்க நேர செயல்திறனுடன் ஒருங்கிணைக்கிறது. சி இல் எழுதப்பட்ட பயன்பாடுகள் மற்றும் நூலகங்களுடன் ஒப்பிடும்போது, கூடுதல் இயக்க நேரத் தேவைகளை விதிக்காமல், வேறு ஏபிஐயைப் பயன்படுத்தாமல் க்னோம் டெவலப்பர்களுக்கு நவீன நிரலாக்க மொழி அம்சங்களைக் கொண்டுவருவதை இது நோக்கமாகக் கொண்டுள்ளது. வாலாவின் தொடரியல் சி #ஐப் போன்றது, இது கோப்ஜெக்ட் வகை அமைப்புக்கு சிறப்பாக பொருந்தும் வகையில் மாற்றியமைக்கப்பட்டுள்ளது. வரலாறு வாலா ஜூர்க் பில்லெட்டரால் உருவாக்கப்பட்டது மற்றும் அவரும் ரஃபேல் சாண்ட்ரினியும் செயல்படுத்தப்பட்டது, அவர்கள் C க்கு பதிலாக GNOME பயன்பாடுகளை உருவாக்குவதற்கான உயர் மட்ட மாற்றீட்டை விரும்பினர். அவர்கள் C #இன் தொடரியல் மற்றும் சொற்பொருள்களை விரும்பினர், ஆனால் மோனோவைப் பயன்படுத்த விரும்பவில்லை, எனவே அவர்கள் மே 2006 இல் ஒரு தொகுப்பை முடித்தனர். ஆரம்பத்தில், இது சி ஐப் பயன்படுத்தி துவக்கப்பட்டிருந்தது, ஒரு வருடம் கழித்து (ஜூலை 2007 இல் பதிப்பு 0.1 வெளியீட்டுடன்), வாலா தொகுப்பாளர் சுயமாக தொகுக்கப்பட்டார். 2021 ஆம் ஆண்டு நிலவரப்படி, நீண்ட கால ஆதரவுடன் தற்போதைய நிலையான வெளியீட்டு கிளை 0.48 ஆகும், மேலும் மொழி ஒரு நிலையான பதிப்பு 1.0 ஐ வெளியிடும் குறிக்கோளுடன் செயலில் வளர்ச்சியில் உள்ளது. மொழி வடிவமைப்பு அம்சங்கள் வாலா ஜி. எல். ஐ. பி மற்றும் அதன் துணை தொகுதிகளை (கோப்ஜெக்ட், ஜிமோடூல், ஜிட்ரெட், ஜிஐஓ) முக்கிய நூலகமாக பயன்படுத்துகிறது, இது பெரும்பாலான இயக்க முறைமைகளுக்கு கிடைக்கிறது மற்றும் இயங்குதள சுயாதீன நூல், உள்ளீடு/வெளியீடு, கோப்பு மேலாண்மை, நெட்வொர்க் சாக்கெட்டுகள், செருகுநிரல்கள், வழக்கமான வெளிப்பாடுகள் போன்ற விஷயங்களை வழங்குகிறது. வாலாவின் சொற்றொடர் தற்போது நவீன மொழி அம்சங்களை பின்வருமாறு ஆதரிக்கிறதுஃ இடைமுகங்கள் பண்புகள் சமிக்ஞைகள் முன்னுரை லாம்ப்டா வெளிப்பாடுகள் உள்ளூர் மாறிகளுக்கான வகை அனுமானம் பொதுவானவை அல்லாத வகைகள் உதவி நினைவக மேலாண்மை விதிவிலக்கு கையாளுதல் வரைகலை பயனர் இடைமுகங்களை GTK GUI கருவித்தொகுப்பு மற்றும் Glade GUI பில்டர் மூலம் உருவாக்க முடியும். நினைவக மேலாண்மை நினைவக மேலாண்மைக்கு, ஜிடைப் அல்லது கோப்ஜெக்ட் அமைப்பு குறிப்பு எண்ணிக்கையை வழங்குகிறது. சி இல், ஒரு புரோகிராமர் குறிப்புகளைச் சேர்ப்பதையும் அகற்றுவதையும் கைமுறையாக நிர்வகிக்க வேண்டும், ஆனால் வாலாவில், ஒரு புரோகிராமர் எளிய சுட்டிகளை விட மொழியின் உள்ளமைக்கப்பட்ட குறிப்பு வகைகளைப் பயன்படுத்தினால், அத்தகைய குறிப்பு எண்ணிக்கையை நிர்வகிப்பது தானியங்கி. குறிப்பு சுழற்சிகளை உருவாக்குவதைத் தவிர்ப்பது மட்டுமே நீங்கள் கவலைப்பட வேண்டிய ஒரே விவரம், ஏனெனில் அந்த விஷயத்தில் இந்த நினைவக மேலாண்மை அமைப்பு சரியாக வேலை செய்யாது. ஒரு விருப்பமாக சுட்டிகளுடன் கையேடு நினைவக நிர்வாகத்தையும் வாலா அனுமதிக்கிறது. பைண்டிங்ஸ் வாலா என்பது தற்போதுள்ள சி நூலகங்களுக்கு, குறிப்பாக கோப்ஜெக்ட் அடிப்படையிலான நூலகங்களுக்கு, இயக்க நேர பிணைப்புகள் தேவையில்லாமல் இயக்க நேர அணுகலை வழங்குவதை நோக்கமாகக் கொண்டுள்ளது. வாலாவுடன் ஒரு நூலகத்தைப் பயன்படுத்த, வல்லா தொடரியலில் வகுப்பு மற்றும் முறை அறிவிப்புகளைக் கொண்ட ஒரு ஏபிஐ கோப்பு (. வாபி) மட்டுமே தேவை. இருப்பினும், சி + + நூலகங்கள் ஆதரிக்கப்படவில்லை. தற்போது, ஜி. டி. கே உட்பட வாலாவின் ஒவ்வொரு வெளியீட்டிலும் குனு திட்டம் மற்றும் க்னோம் இயங்குதளத்தின் பெரும்பகுதிக்கான வாபி கோப்புகள் சேர்க்கப்பட்டுள்ளன. வாலாவில் எழுதப்பட்ட ஜீ என்ற நூலகமும் உள்ளது, இது பொதுவாகப் பயன்படுத்தப்படும் தரவு கட்டமைப்புகளுக்கான கோப்ஜெக்ட் அடிப்படையிலான இடைமுகங்கள் மற்றும் வகுப்புகளை வழங்குகிறது. பிற மொழிகளில் எழுதப்பட்ட பயன்பாடுகளிலிருந்து வாலா நூலகங்களை அணுக ஒரு பிணைப்பு ஜெனரேட்டரை எழுதுவதும் எளிதாக இருக்க வேண்டும், எ. கா., சி #, வாலா பாகுபாடு ஒரு நூலகமாக எழுதப்படுவதால், ஒரு பிணைப்பை உருவாக்கும் போது அனைத்து தொகுப்பு-நேர தகவல்களும் கிடைக்கும். டூல்ஸ் எடிட்டர்ஸ் டூலிங் ஃபார் வாலா மேம்பாடு சமீபத்திய ஆண்டுகளில் குறிப்பிடத்தக்க முன்னேற்றத்தைக் கண்டுள்ளது. வாலாவில் நிரலாக்கத்திற்கான ஆதரவைச் சேர்க்கும் சில பிரபலமான ஐடிஇக்கள் மற்றும் உரை ஆசிரியர்களின் பட்டியல் பின்வருமாறுஃ க்னோம் பில்டர் விஷுவல் ஸ்டுடியோ கோட், வாலா சொருகி விம், அருஃபாட்/வாலா. விம் சொருகி ஈமாக்ஸ், வாலா-மோட் ஆடம் ஜீனி கோட் நுண்ணறிவுடன் தற்போது, வாலாவுக்கான குறியீடு நுண்ணறிவை வழங்கும் இரண்டு செயலில் வளரும் மொழி சேவையகங்கள் உள்ளனஃ, விஎஸ்சி கோட், விம் மற்றும் க்னோம் பில்டர் உள்ளிட்ட எல்எஸ்பியை ஆதரிக்கும் எந்தவொரு ஆசிரியருக்காகவும் வடிவமைக்கப்பட்டுள்ளது, தற்போது க்னோம் பில்டரில் வாலாவுக்கான இயல்புநிலை மொழி சேவையகம் மற்றும் எல்எஸ்பி பில்ட் அமைப்புகளுக்கான ஆதரவுடன் எந்த ஆசிரியருக்கும் ஆதரவை வழங்குகிறது தற்போது, வாலாவை ஆதரிக்கும் பல கட்டுமான அமைப்புகள் உள்ளன. வாலா நிரல்களுக்கான பிழைத்திருத்தத்தை ஜிடிபி அல்லது எல்எல்டிபி மூலம் செய்யலாம். IDE களில் பிழைத்திருத்தம் செய்ய, GNOME பில்டர் GDB உடன் வாலாவுக்கு உள்ளமைக்கப்பட்ட பிழைத்திருத்த ஆதரவைக் கொண்டுள்ளது. விஷுவல் ஸ்டுடியோ கோட் GDB மற்றும் LLDB க்கான நீட்டிப்புகளைக் கொண்டுள்ளது, அதாவது cpptools மற்றும் CodeLLDB. எடுத்துக்காட்டுகள் வணக்கம் உலகம் ஒரு எளிய "வணக்கம், உலகம்!" வாலாவில் உள்ள நிரல்ஃ வெற்றிட பிரதான () {அச்சு ("ஹலோ வேர்ல்ட் \n");} கவனிக்கத்தக்கபடி, சி அல்லது சி + + போலல்லாமல், வாலாவில் தலைப்பு கோப்புகள் எதுவும் இல்லை. தொகுப்பின் போது-- pkg அளவுருக்களைக் குறிப்பிடுவதன் மூலம் நூலகங்களுடன் இணைக்கப்படுகிறது. மேலும், ஜி. எல். ஐ. பி நூலகம் எப்போதும் இணைக்கப்பட்டு அதன் பெயர் இடத்தை தவிர்க்கலாம் (அச்சிடுவது உண்மையில் GLib.print). கீழே உள்ள பொருள் சார்ந்த நிரலாக்கம் மிகவும் சிக்கலான பதிப்பாகும், இது ஒரு துணைப்பிரிவு ஹலோவேர்ல்டை வரையறுக்கிறது, இது அடிப்படை வகுப்பு GLib.Object, அதாவது கோப்ஜெக்ட் வகுப்பிலிருந்து பெறப்படுகிறது. இது வாலாவின் சில பொருள் சார்ந்த அம்சங்களைக் காட்டுகிறதுஃ கிளாஸ் ஹலோ வேர்ல்ட்ஃ ஆப்ஜெக்ட் {பிரைவேட் யுன்ட் இயர் = 0; பப்ளிக் ஹலோ வேர்ல்ட் () {} பப்ளிக் HelloWorld.with_year (இன்ட் இயர்) {இஃப் (இயர்> 0) this.year = இயர்;} பப்ளிக் வாய்ட் வாழ்த்து () {இஃப் (இயர் = = 0) பிரிண்ட் ("ஹலோ வேர்ல்ட் \ன்"); இல்லையெனில்/* '@' உடன் முன்னொட்டு செய்யப்பட்ட சரங்கள் சரம் வார்ப்புருக்கள். */அச்சிடு (@"ஹலோ வேர்ல்ட், $(this.year) \n");}} வெற்றிட பிரதான (சரம் [] ஆர்க்ஸ்) {வர் ஹெல்லோவேர்ல்ட் = புதிய HelloWorld.with_year (2021); helloworld.greeting ();} கோப்ஜெக்ட் நூலகத்தைப் பொறுத்தவரை, வாலா பல பரம்பரை உரிமைகளை ஆதரிக்கவில்லை, ஆனால் வாலாவில் உள்ள ஒரு வகுப்பு எத்தனை இடைமுகங்களையும் செயல்படுத்த முடியும், அவை அவற்றின் முறைகளுக்கான இயல்புநிலை செயல்படுத்தல்களைக் கொண்டிருக்கலாம். GLib ஐப் பயன்படுத்தி இயல்புநிலை அமலாக்கத்துடன் (சில நேரங்களில் மிக்சின் என்று குறிப்பிடப்படுகிறது) ஒரு வாலா இடைமுகத்தை நிரூபிக்க மாதிரி குறியீட்டின் ஒரு பகுதி இங்கே உள்ளது; இடைமுகம் அச்சிடக்கூடியது (பொது சுருக்க சரம் அச்சு ()); பொது மெய்நிகர் சரம் அழகான அச்சு () {திரும்பவும் "தயவுசெய்து" + அச்சிடவும் ();}} வகுப்பு இயல்பான அச்சுஃ பொருள், அச்சிடக்கூடிய {சரம் அச்சு () {திரும்பவும் "என்னைப் பற்றி மறக்காதீர்கள்";} வகுப்பு மீறல் அச்சுஃ பொருள், அச்சிடக்கூடிய {சரம் அச்சு () {திரும்பவும் "இடைவெளியை மனதில் கொள்ளுங்கள்";} பொது மீறல் சரம் அழகாக _ அச்சிட () {திரும்பவும் "மீறல்";} வெற்றிட பிரதான (சரம் [] ஆர்க்ஸ்) {வர் இயல்பான = புதிய இயல்பான அச்சு (); வர் மேல் பின்னர் கால்பேக் செயல்பாடுகள் வகுப்பின் ஒரு நிகழ்வின் சமிக்ஞையில் பதிவு செய்யப்படுகின்றன. எடுத்துக்காட்டு சமிக்ஞையை வெளியிடலாம் மற்றும் சமிக்ஞையுடன் இணைக்கப்பட்ட ஒவ்வொரு அழைப்பிதழ் செயல்பாடும் (கையாளுபவர் என்றும் குறிப்பிடப்படுகிறது) அவை இணைக்கப்பட்ட வரிசையில் அழைக்கப்படும்ஃ வகுப்பு ஃபூ {பொது சமிக்ஞை செல்லாத சில _ நிகழ்வு ();// சமிக்ஞையின் வரையறை பொது வெற்றிட முறை () {சில _ நிகழ்வு ();// சமிக்ஞையை வெளியிடுவது (அழைப்பிதழ்கள் அழைக்கப்படுகின்றன)} செல்லாத அழைப்பிதழ் _ அ () {stdout.printf ("அழைப்பிதழ் A\n");} செல்லாத அழைப்பிதழ் _ பி () {stdout.printf ("அழைப்பிதழ் B\n");} வெற்றிட பிரதான () {வர் ஃபூ = புதிய ஃபூ (); foo.some_event.connect (அழைப்பிதழ்); பின்வரும் (மிகவும் எளிமைப்படுத்தப்பட்ட) எடுத்துக்காட்டில் காட்டப்பட்டுள்ளபடி, புதிய நூல்களை உருவாக்கும் போது செயல்பாட்டை ஒரு அளவுருவாக எடுத்துக் கொள்ளும் GLib இல் உள்ள நூல் வகுப்பைப் பயன்படுத்துவதன் மூலம் புதிய நூல்களின் உருவாக்கம் மற்றும் ஒத்திசைவு செய்யப்படுகிறதுஃ int கேள்வி () {// சில அச்சு செயல்பாடுகள் (வார் i = 0; i <3; i + +) {பிரிண்ட் (". "); Thread.usleep (800000); stdout.flush ();} திரும்பும் 42;} செல்லாத முதன்மை () {என்றால் (! Thread.supported ()) {stderr.printf (" "நூல் ஆதரவு இல்லாமல் இயக்க முடியாது. \n" "); திரும்பும்;} அச்சிடு (" "வாழ்க்கையின் இறுதி கேள்வி, பிரபஞ்சம் மற்றும் அனைத்தும்" ");// பொதுவான அளவுரு என்பது திரும்பும் மதிப்பு வர் நூல் = புதிய நூல் <int> (" "கேள்வி", "கேள்வி); அச்சிடு (@" "$(thread.join () \n" "); கிராஃபிக் பயனர் இடைமுகம் கீழே GTK ஐப் பயன்படுத்தி ஒரு GUI" "ஹலோ, வேர்ல்ட்!" வாலாவில் நிரல் (GTK ஹலோ உலகத்தையும் பார்க்கவும்): Gtk ஐப் பயன்படுத்துதல்; int முக்கிய (சரம் [] args) {Gtk.init (ரெஃப் args); வர் சாளரம் = புதிய சாளரம் (); window.title = "ஹலோ, வேர்ல்ட்! "; window.border_width = 10; window.window_position = WindowPosition.CENTER; window.set_default_size (350,70); window.destroy.connect (Gtk.main_quit); வார் லேபிள் = புதிய லேபிள் (" ஹலோ, வேர்ல்ட்! "); window.add (லேபிள்); window.show_all (லேபிள்); Gtk.main (லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் லேபிள் இந்த எடுத்துக்காட்டு ஜி. டி. கே தொகுப்பைப் பயன்படுத்துவதால், தொகுக்க கூடுதல்-- பி. கே. ஜி அளவுரு தேவைப்படுகிறது (இது சி பின்தளத்தில் பி. கே. ஜி-கட்டமைப்பை அழைக்கிறது): வாலக்-- பி. கே. ஜி ஜி. டி. கே +-3.0 hellogtk.vala மேலும் காண்க ஜீனி, பைத்தானுக்கு நெருக்கமான தொடரியல் கொண்ட வாலா தொகுப்புக்கான நிரலாக்க மொழி. ஷாட்வெல், வாலாவில் எழுதப்பட்ட ஒரு பட அமைப்பாளர். கியர், வாலா மொழியில் எழுதப்பட்ட ஒரு மின்னஞ்சல் கிளையன்ட். எலிமெண்டரி ஓஎஸ், டெஸ்க்டாப் சூழலுடன் கூடிய லினக்ஸ் விநியோகம் பெரும்பாலும் வாலாவில் திட்டமிடப்பட்டுள்ளது. பட்ஜி, ஒரு லினக்ஸ் டெஸ்க்டாப் சூழல் பெரும்பாலும் வாலாவில் திட்டமிடப்பட்டுள்ளது. குறிப்புகள் வெளிப்புற இணைப்புகள் க்னோம் விக்கி பக்கம் ஏபிஐ ஆவணப்படுத்தல் வாலா களஞ்சியம் க்னோம் · கிட்லேப் லிப்ஜீ, வாலாவுக்கான பயன்பாட்டு நூலகம். தொடக்கக்காரர்களுக்கான வாலா மாதிரிக் குறியீடு வாலா/சி திட்டங்களுக்கான சிமேக் மற்றும் மெசன் கோப்புகளை உருவாக்குவதை தானியங்கியாக்கும் மற்றும் எளிதாக்கும் ஒரு நிரலான ஆட்டோவாலா நிரல்களின் பட்டியல் கிட்ஹப் அகிராவில் வாலா சமூகம்-லினக்ஸ் சொந்த வடிவமைப்பாளர் கருவி கங்காரு-பிரபலமான தரவுத்தளங்களுக்கான குறுக்கு-தள தரவுத்தள கிளையன்ட் கருவி-பிற மொழிகளுடன் ஒப்பீடு வாலா மற்றும் ஜாவா வாலா மற்றும் சி #வட்டம் நிரலாக்க மொழிகள் உட்பட பல்வேறு மொழிகளின் அளவுகோல்கள் பொருள் சார்ந்த நிரலாக்க மொழிகள் எல். ஜி. பி. எல் உரிமத்தைப் பயன்படுத்தும் மென்பொருள் மூலத்திலிருந்து மூல தொகுப்பாளர்களுக்கு நிலையான தட்டச்சு செய்யப்பட்ட நிரலாக்க மொழிகள் 2006 மென்பொருள் குறுக்கு-தள இலவச மென்பொருளில் உருவாக்கப்பட்ட நிரலாக்க மொழிகள்