Author Archive: கலாராணி

செயற்கூறிய நிரலாக்கம் – பொதுவான செயற்கூறிய செயற்கூறுகள் – பகுதி 7

செயற்கூறிய நிரலாக்கமொழிகளில் பரவலாகப் பயன்படுத்தப்படும் மூன்று முக்கியசெயற்கூறுகளைப்பற்றி இப்பதிவில் தெரிந்துகொள்ளலாம். நமக்கு நன்கு பரிச்சயமான, எளிமையான ஜாவாஸ்கிரிப்ட்டு நிரலிலிருந்து தொடங்கலாம். இந்நிரலில் வழுவேதுமில்லை. ஆனால், இதற்குள் பெரும்பிரச்சனையொன்று அடங்கியிருக்கிறது. அதென்னவென்று கண்டறிய முடிகிறதா? இதுவொரு வார்ப்புநிரல் (Boilerplate code). ஒரு தீர்வைச்செயல்படுத்துவதற்கு இவை உதவுகின்றனவேயன்றி, இவற்றால் தீர்வினைத்தரமுடியாது. ஆனாலும் இதுபோன்ற கட்டளைகளை நாம் அன்றாடம் அதிகஅளவில்…
Read more

செயற்கூறிய நிரலாக்கம் – ஒற்றைஉள்ளீட்டாக்கம் – பகுதி 6

முந்தைய பகுதியில் mult மற்றும் add என்ற இருசெயற்கூறுகளைகளின் உள்ளீட்டுஉருபுகளின் எண்ணிக்கையின் வேறுபாட்டால், அவற்றைக்கொண்டு செயற்கூற்றுக்கலவையை உருவாக்கமுடியாமல் போனது. இங்கே add செயற்கூறு இரண்டு உள்ளீட்டுஉருபுகளை ஏற்கிறது. எனவே அதனை ஒற்றை உள்ளீட்டுஉருபை ஏற்கும் mult என்ற செயற்கூறோடு கலந்து புதிய செயற்கூற்றை வரையறுக்கமுடியாது. நமது mult5AfterAdd10 செயற்கூற்றுக்குத்தேவையான add10 செயற்கூற்றை add செயற்கூற்றிலிருந்து பின்வருமாறு…
Read more

செயற்கூறிய நிரலாக்கம் – செயற்கூறுகளின் கலவை – பகுதி 5

உலகெங்குமுள்ள நிரலர்களுக்கு ஒரு பொதுப்பண்பு உண்டு. ஒருமுறை எழுதிய நிரலை மறுமுறை எழுத அவர்கள் விரும்புவதில்லை. முன்பெழுதியதுபோன்ற நிரலை மீண்டும் எழுதநேரும்போது, ஏற்கனவே உள்ள நிரலைப்பயன்படுத்தவே முயல்கிறோம். கொள்கையடிப்படையில், நிரலின் மறுபயன்பாடு என்பது மிகச்சிறந்த கோட்பாடு. ஆனால், அதை நடைமுறைப்படுத்துவது அவ்வளவு எளிதானதல்ல. குறிப்பிட்ட தேவைக்காக நிரலெழுதும்போது பிற இடங்களில் அதைப்பயன்படுத்துவது கடினமாகிறது. அதேநேரத்தில், மிகவும்…
Read more

செயற்கூறிய நிரலாக்கம் – சூழச்சுருட்டு – பகுதி 4

Closureஐப்பற்றி அறிந்துகொள்வதற்கு முன்னதாக, அதைப்பயன்படுத்தும் ஓர் எளிய செயற்கூற்றைக்காணலாம். இவ்வெடுத்துக்காட்டில் grandParent என்ற செயற்கூறு, g1, g2 என்ற உள்ளீட்டு உருபுகளை ஏற்றுக்கொண்டு, g3 என்ற மாறியை வரையறுத்து, parent என்ற செயற்கூற்றைத் திருப்பியனுப்புகிறது. parent என்ற செயற்கூறு, p1, p2 என்ற உள்ளீட்டு உருபுகளை ஏற்கிறது. p3 என்ற மாறியை வரையறுக்கிறது. child என்ற…
Read more

செயற்கூறிய நிரலாக்கம் – உயர்வரிசை செயற்கூறுகள் – பகுதி 3

கீழேயுள்ள நிரலிலுள்ளதைப்போன்ற செயற்கூறுகளை நமது அன்றாட நிரலாக்கப்பணியில் கண்டிருப்போம். அடிப்படையில், இவ்விரு செயற்கூறுகளும் ஒரேவேலையைத்தான் செய்கின்றன. அதாவது, கொடுக்கப்பட்ட மதிப்பை (ssn / phone), ஒரு செங்கோவையைக்கொண்டு (RegularExpressions) சரிபார்த்து, அதன் விடையை அச்சிடுகின்றன. எனவே, இவ்விரு செயற்கூறுகளுக்குப்பதிலாக ஒரு செயற்கூற்றைமட்டும் வரையறுத்து, மாறுபடுகின்ற மதிப்புகளை உள்ளீட்டு உருபுகளாக அளிக்கலாம். இதனால் validateSsn, validatePhone என்ற…
Read more

செயற்கூறிய நிரலாக்கம் – நிலைமாறாத்தன்மை – பகுதி 2

முன்குறிப்பு: கருத்தனின் பரிந்துரைப்படி, Functional programming என்பதற்கு “செயற்கூறிய நிரலாக்கம்” என்ற பதத்தையே தொடர்ந்து பயன்படுத்துவோம். இந்த நிரலை முதன்முதலில் பயன்படுத்தியபோது, xம், (x + 1)ம் சமமாக இருக்கமுடியாதென்ற அடிப்படை கணித சமன்பாட்டை மறந்துவிட்டிருந்தோம். xன் மதிப்புடன் ஒன்றைக்கூட்டி, அதன் விடையை மீண்டும் xல் சேமிக்கவேண்டும் என்பதே, பிறமுக்கிய மொழிகளில் , இதன் பொருள். ஆனால்,…
Read more

செயல்பாட்டு நிரலாக்க அடிப்படைகள் – பகுதி 1

இதுநாள்வரையில் பொருள்நோக்குநிரலாக்கத்தைப் (object oriented programming) பயன்படுத்தியே நிரலெழுதி வருவோர், செயல்பாட்டு நிரலாக்கத்தைக் (functional programming) கற்றுக்கொள்ளவேண்டுமென்றால் அதன் அடிப்படைக்கருத்துக்களை அறிந்துகொள்ளவேண்டியது அவசியம். முதலில் இது சற்றே கடினமான விசயமாகத்தெரிந்தாலும், சரியான கோணத்திலிருந்து அணுகும்போது எளிமையானதாகவே இருக்கிறது. முதன்முதலில் ஒரு வாகனத்தை ஓட்டக்கற்றுக்கொள்ளும்போது மிகவும் சிரமப்பட்டு கற்றுக்கொள்கிறோம். பிறர் செய்வதைக்காணும்போது எளிமையாகத்தோன்றினாலும், நாமே செய்யும்போது நாம்…
Read more

Big O குறியீடு – அறிமுகம்

ஒரு வழிமுறையைச் (algorithm) செயல்படுத்தும்போது, O(N), O(log N) போன்ற தொடர்களைக் கேள்விப்பட்டிருப்போம். இவற்றின் பொருளென்ன, அதன் முக்கியத்துவமென்ன என்பதைப்பற்றி இப்பதிவில் அறிந்துகொள்ள முயல்வோம். ஒரு வழிமுறையின் பேரளவாக்கத்தன்மை (scalability) இக்குறியீட்டால் அளவிடப்படுகிறது. வழிமுறைக்குக் கொடுக்கப்படும் உள்ளீட்டின் அளவு வேறுபடும்போது, அதன் வெளியீட்டிற்கு, எவ்வளவு அதிக உழைப்பு தேவைப்படுகிறது என்பதையே இக்குறியீடு உணர்த்துகிறது. எடுத்துக்காட்டாக, ஒரு…
Read more

ஒருங்குறியும், UTF-8 குறிமுறையும்

கணினியில் சேமிக்கப்படும் எந்தவொரு தகவலும் பூச்சியம், ஒன்று என்ற இரு எண்களைக்கொண்ட பைனரியாக மட்டுமே சேமிக்கப்படும். எண்கள், எழுத்துகள், பிறகுறியீடுகள் என எதுவாக இருந்தாலும், கணினியைப்பொருத்தவரை அவை பூச்சியம் மற்றும் ஒன்று என்ற இரு எண்களைக்கொண்ட தொடராகவே குறிக்கப்படும். இப்படி எண்களுக்கும், எழுத்துகளுக்கும், குறியீடுகளுக்கும் ஒரு எண் ஒதுக்கப்பட்டு, அது பைனரி வடிவத்தில் சேமித்துவைக்கப்படும். இவ்வாறாக…
Read more

npm உள்ளமை சார்புகளும், அவற்றை தீர்மானிக்கும் வழிமுறையும்

ஒரு npm கூறு நீக்கப்பட்டதால் எண்ணற்ற திட்டங்களுக்கு ஏற்பட்ட பாதிப்பு குறித்து சமீபத்தில் பரவலாக பேசப்பட்டது. அதில் குறிப்பிடப்பட்ட கூறு ஏன் நீக்கப்பட்டது என்ற விவரங்களை ஒதுக்கிவிட்டு, npm என்பது என்ன, அதன் சார்புக்கூறுகள் எவ்வாறு நிறுவப்படுகின்றன என்பது குறித்து அறிந்துகொள்ள முயல்வோம். npm என்றால் என்ன? ஜாவாஸ்கிரிப்ட் என்பது ஒரு நிரலாக்க மொழி. இன்றைய…
Read more