Sunday, March 2, 2008

കോഡ് സമഗ്രം.

സാങ്കേതിക കാര്യങ്ങളില്‍ മാധവന്‍ നായര്‍ എന്നും തത്പരനാണ്. വയറിങ്ങ് മാന്‍ ചന്ദ്രനുമായി ചേര്‍ന്ന് ചില സാമഗ്രികളൊക്കെ ഉണ്ടാക്കാറും പതിവാണ്.

ഒരു ദിവസം ഉറങ്ങാന്‍ കിടക്കുമ്പോഴാണ് നായരുടെ മനസ്സില്‍ ഒരു ചോദ്യം തെളിഞ്ഞത് , ഒരു ബള്‍ബ് കത്തിക്കാനൊരു സ്വിച്ച് വേണം എന്നാല്‍ , ഒരു സ്വിച്ച് കൊണ്ട് ഒന്നില്‍ കൂടുതല്‍ ബള്‍ബ് കത്തിക്കാനാവുമോ? ഉണ്ടെങ്കില്‍ എങ്ങിനെ ?
കിടന്നും മറിഞ്ഞും ചിന്തിച്ചെങ്കിലും നായര്‍ക്ക് പൂര്ണ്ണരൂപം കിട്ടിയില്ല, അതിരാവിലെ ചന്ദ്രനെ കണ്ട് കാര്യം ബോധിപ്പിക്കുന്നതു വരെ നായര്‍ വല്ലാത്ത സ്വൈരക്കേടിലായിരുന്നു.


മാധവന്‍ നായരുടെ ആവശ്യമറിഞ്ഞ ചന്ദ്രന്‍ തന്റ്റെ താടിയില്‍ ഉഴിഞ്ഞു,


' മാധവേട്ടാ , ഒരു സ്വിച്ച് കൊണ്ട് രണ്ട് ബള്‍ബുകള്‍ കത്തിക്കാം , പക്ഷെ ചില പ്രായോകിക ബുദ്ധിമുട്ടുകളുണ്ട് '


' ചുരുക്കത്തില്‍ നടക്കില്ലെന്ന് അത് നെരേ ചൊവ്വെ പറഞ്ഞാല്‍ പോരെ ചന്ദ്രാ? '


' പ്രായോഗിക ബുദ്ധിമുട്ടിപ്പോള്‍ പറഞ്ഞാല്‍ താങ്കള്‍ക്ക് മനസ്സിലാവില്ല പക്ഷെ , കുറച്ചു സ്വിച്ചുകള് കൊണ്ട് കൂടുതല്‍ ബള്‍ബുകള്‍ കത്തിക്കാനുള്ള പരിപാടി ഞാന്‍ പറഞ്ഞുതരാം '

' മനസ്സിലായില്ല '

' മാധവേട്ടാ രണ്ട് സ്വിച്ചുകള്‍ കൊണ്ട് മൂന്ന് ബള്‍ബുകള്‍ കത്തിക്കാനാവും , അതിനുള്ള സാധനം ഉണ്ടാക്കി ഞാന്‍ വൈകീട്ട് വീട്ടില്‍ വരാം '

രണ്ട് സ്വിച്ചുകളും , മൂന്ന് ബള്‍ബുകളും ഒരു ബോര്ഡില്‍ ഘടിപ്പിച്ചാണ് ചന്ദ്രന് വൈകുന്നേരം മാധവേട്ടന്റ്റെ വീട്ടില്‍ വന്നത്.







ബോര്‍ഡിലെ വയറുകള്‍ ചുമരിലുള്ള സോക്കറ്റിലേക്ക് കുത്തിയതിനു ശേഷം സര്ക്യൂട്ടിന്റ്റെ പ്രവര്ത്തനം ചന്ദ്രന്‍ വിവരിച്ചു:

1.ആദ്യത്തെ സ്വിച്ച് ഓഫാക്കി രണ്ടാമത്തെ സ്വിച്ച് ഓണാക്കിയാല്‍ ആദ്യത്തെ ബള്‍ബ് മാത്രം കത്തും.








2.ആദ്യത്തെ സ്വിച്ച് ഓണാക്കി രണ്ടാമത്തേത് ഓഫാക്കിയാല് രണ്ടാമത്തെ ബള്‍ബ് മാത്രം കത്തും.




3.രണ്ട് സ്വിച്ചുകളും ഒരുമിച്ച് ഓണാക്കുമ്പോള് മൂന്നാമത്തെ ബള്‍ബ് മാത്രം കത്തും.



ചന്ദ്രന്‍ വിവരണം ഓരോ സ്വിച്ചിലും പ്രയോഗിച്ച് മാധവന്‍ നായര്‍ സ്വയം ബോധ്യപ്പെടുത്തി.

' മാധവേട്ടാ , ഓണായ സ്വിച്ചിനെ അക്കം ഒന്ന് (1) കൊണ്ടും ഓഫായ സ്വിച്ചിനെ പൂജ്യം (0) കൊണ്ടും സൂചിപ്പിക്കാമെങ്കില്‍ , ഓരോ ബള്‍ബിനേയും ഓണാക്കാന്‍ വേണ്ട സ്വിച്ചുകളുടെ ക്രമീകരണം ഒന്നു പറഞ്ഞേ'

' ചന്ദ്രാ , നീ വലിയ ആളൊന്നുമാകല്ലെ , ഞാന്‍ കാണിക്കാം വരച്ചുകൊണ്ടു തന്നെ '




' മാധവേട്ടാ , ഒന്നും പൂജ്യവും വെച്ച് സൂചിപ്പിക്കുന്ന ഈ രീതിയെ സാങ്കേതിക ഭാഷയില് എന്താണ് വിളിക്കുക എന്നറിയുമോ? 'ഞാന്‍ വായിച്ചിട്ടുണ്ട് കോഡെന്നല്ലേ ചന്ദ്രാ അതിനെ വിളിക്കുന്നത്? '

' വെറും കോഡല്ല മാധവേട്ടാ ബൈനറി കോഡെന്നാണ് പൂര്ണ്ണമായി വിളിക്കുക '

' ഈ ബൈനറി എവിടെനിന്നും വന്നു കയറി? '

' ഒന്നും , പൂജ്യവും ആകെ രണ്ട് അക്കങ്ങള്‍ വെച്ചല്ലെ ഈ കോഡുണ്ടാക്കിയിട്ടുള്ളത് അതിനാലാണ് ബൈനറി എന്ന് വിളിക്കുന്നത് . ബൈനറി എന്നാല്‍ രണ്ടെന്നര്ത്ഥം'

' ഈ സ്വിച്ചുകളുടെ എണ്ണവും അവകൊണ്ട് കത്തിക്കാനാവുന്ന ബള്‍ബുകളുടെ എണ്ണവും തമ്മില്‍ വല്ല ബന്ധവുമുണ്ടോ ചന്ദ്രാ? '

' ഉണ്ട് , കത്തിക്കാനാവുന്ന ബള്‍ബുകള്‍ സമം (2) ഘാതം സ്വിച്ചുകളുടേ ഏണ്ണം '
' അതായത് മൂന്ന് സ്വിച്ചുകളുണ്ടെങ്കില്‍ എട്ട് ബള്‍ബുകള്‍ കത്തിക്കാമെന്നു ചുരുക്കം അല്ലെ? '

' കണിശമായി പറയുകയാണെങ്കില്‍ എട്ടെണ്ണം കത്തിക്കാം എന്നാല്‍ പ്രായോഗിക ബുദ്ധിമുട്ട് കാരണം ഏഴെണ്ണമേ പറ്റൂ '
' കുറെ നേരമായല്ലോ പ്രായോഗിക ബുധിമുട്ടെന്നു പറയുന്നത് എന്താണതെന്ന് ഒന്നു പറയു ചന്ദ്രാ '

' അതിനു മുമ്പ് മാധവേട്ടന്‍ ഈ മൂന്ന് സ്വിച്ചുകള്‍ കൊണ്ട് എട്ട് ബള്‍ബുകള്‍ സ്വിച്ചുകളുടേ ക്രമീകരണമൊന്നുപറഞ്ഞേ '



' എന്താദ് ചന്ദ്രാ , ഇനിയും ഈ ക്രമീകരണം എന്ന പഴഞ്ചന്‍ വാക്ക് വിളിക്കാതെ കോഡെന്നുപറയൂ'
' വളരെ ശരിയാണ് പക്ഷെ ആദ്യത്തെ ബള്‍ബ് കത്തിക്കാനുള്ള കോഡൊന്നു നോക്കിയേ , മൂന്ന് സ്വിച്ചുകളും ഓഫല്ലെ '

' അതെ '
' ശരി മാധവേട്ടന് മൂന്ന് സ്വിച്ചുകളും ഓഫാക്കിയാല്‍ ഒന്നാമത്തെ ബള്‍ബ് കത്തേണ്ടേ '
' ഇതെന്തു ചോദ്യാ ചന്ദ്രാ കത്തണം '
' അപ്പോ കരണ്ട് ഇല്ലെങ്കിലോ '
' മണ്ടന്‍ ചന്ദ്രാ കരണ്ടില്ലെങ്കില്‍ എങ്ങിനെയാടോ ബള്‍ബ് കത്തുക? '
' അതെന്നെ ഞാനും പറഞ്ഞത് , മൂന്ന് സ്വിച്ചുകള്‍ ഓഫായാലും കരണ്ടില്ലാത്തതും ഒന്നുതന്നെ അപ്പോ പിന്നെ സ്വിച്ചുകള്‍ ക്രമീകരിച്ചാലും ഒന്നാമത്തെ ബള്‍ബ് കത്താത്തത് ; കരണ്ടില്ലാത്തതു കൊണ്ടാണോ , ബള്‍ബ് ഫ്യൂസായതിനാലാണോ എന്ന് എങ്ങിനെ അറിയാന്‍ പറ്റും? '

' പറ്റില്ല '
' അതാണ് ഞാന്‍ പറഞ്ഞ പ്രായോഗിക ബുദ്ധിമുട്ട് ഇതൊഴിവാക്കാന് എല്ലാ സ്വിച്ചുകളും ഓഫായ ആ ഒരു കോഡ് ഉപയോഗിക്കാറില്ലെന്നു ചുരുക്കം '

' ഇപ്പോ മനസ്സിലായി അതായത് പ്രായോഗിക ബുദ്ധിമുട്ടില്ലാതെ മൂന്ന് സ്വിച്ചുകൊണ്ട് ഏഴ് ബള്‍ബുകള്‍ കത്തിക്കാമെന്നു ചുരുക്കം അല്ലെ ചന്ദ്രാ? '

' അതെന്നെ ' 'ഇതിന്റ്റെ സര്ക്യൂട്ടൊന്നുണ്ടാക്കി തരുമോ ചന്ദ്രാ , എനിക്കൊന്നുണ്ടാക്കി നോക്കാനാണ് '
' ദാ ഇതാണ് മൂന്ന് സ്വിച്ചുപയോഗിച്ച് ഏഴു ബള്‍ബ് കത്തിക്കാനുള്ള സര്ക്യൂട്ട് '







എന്തിനാണ് ചന്ദ്രാ ഈ കോഡുകള് ഉപയോഗിക്കുന്നത്?'

' നമ്മള്‍ മലയാളം ഉപയോഗിക്കുന്നതെന്തിനാ , പരസ്പരം ആശയം കൈമാറാനല്ലേ? , എനിക്കും മാധവേട്ടനും മലയാളമറിയാം , ജപ്പാനില്‍ പരസ്പരം അറിയുന്ന ഭാഷ ജപ്പാനീസ് ആയതിനാല് അവര് അതുപയോഗിക്കുന്നു'

' വൈദ്യുതികൊണ്ട് പ്രവര്ത്തിക്കുന്ന ഉപകരണങ്ങള്‍ക്ക് ഒരു ഭാഷയേ അറിയൂ , വൈദ്യുത പ്രവാഹമുണ്ടോ ഇല്ലയോ എന്നത് മാത്രം , അതായത് ഉപകരണത്തിലേക്ക് ഘടിപ്പിച്ച സ്വിച്ചുകള്‍ / അവയുടെ കൂട്ടം ഓണാണോ ഓഫാണോ എന്നത് '

' ഈ രണ്ട് കാര്യങ്ങള്‍ വെച്ച് വൈദ്യുതികൊണ്ട് പ്രവര്ത്തിക്കുന്ന ഉപകരണങ്ങള്‍ തമ്മില്‍ ആശയകൈമാറ്റം ചെയ്യാനാണ് കോഡുകള്‍ ഉപയോഗിക്കുന്നത്.' കോഡുകൊണ്ടുള്ള ഒരുപയോഗത്തെ ചന്ദ്രന്‍ വിശദീകരിക്കാന് തുടങ്ങി:

ഒരു 7 - segment ഡിസ്പ്ലേ യാണ് ചിത്രത്തില്‍ സൂചിപ്പിച്ചിരിക്കുന്നത്. ഒരു പ്രത്യേക രീതിയില്‍ ഏഴു ബള്‍ബുകള്‍ ക്രമീകരിച്ചിരിക്കുന്നതാണ് സെവന്‍ സെഗ്മെന്റ്റ് ഡിസ്പ്ലേ ഇതിലെ ഏഴു ബള്‍ബുകളില്‍ ഓരോന്നിനേയും a മുതല് g വരെ അടയാളപ്പെടുത്തിയിരിക്കുന്നു.







പൂജ്യം മുതല്‍ ഒമ്പതുവരെയുള്ള അക്കങ്ങള്‍ സൂചിപ്പിക്കാന്‍ ഇതെങ്ങിനെ ഉപയോഗപ്പെടുത്താമെന്നു നോക്കാം b എന്ന ബള്‍ബും c എന്നതും കത്തിയാല്‍ ഒന്നെന്ന ( 1 ) അക്കമാണെന്നതിനു തര്‍‌ക്കമൊന്നുമില്ലല്ലോ. അതുപോലെ തന്നെ ഏഴ് ബള്‍ബുകളും ഒരുമിച്ച് കത്തിയാല്‍ അക്കം 8 കിട്ടുന്നു , അക്കം രണ്ട് ലഭിക്കാനോ , a-b-g-e-d എന്നീ ബള്‍ബുകള്‍ ഒരുമിച്ചു കത്തണം.

' മാധവേട്ടാ , പൂജ്യം മുതല്‍ ഒമ്പതു വരെ സൂചിപ്പിക്കാന്‍ എത്ര സ്വിച്ചുകളുള്ള കോഡുണ്ടാക്കണം? '

' മൂന്ന് സ്വിച്ചുകള്‍ കൊണ്ട് നടക്കില്ലെടോ , മൂന്ന് സ്വിച്ചുകള്‍ കൊണ്ട് ഏഴ് കോമ്പിനേഷനല്ലെ പറ്റൂ , നാലുതന്നെ വേണം '
' അതെ നാല് സ്വിച്ചുകളുള്ള സര്ക്യൂട്ട് വേണം '

' എടോ അതില് ബാക്കി വരില്ലെ , അതായത് നാല് സ്വിച്ചുകള്‍ കൊണ്ട് പതിനഞ്ചെണ്ണം പറ്റുമല്ലോ നമുക്ക് പത്തു കോഡല്ലേ ആവശ്യമുള്ളു ബാക്കി അഞ്ചെണ്ണമില്ലെ അതോ ?'
' അതു മറ്റുള്ള വല്ല ആവശ്യത്തിനും ഉപയോഗിക്കാം , ഉദാഹരണത്തിന് , അക്ഷരങ്ങള്‍ സൂചിപ്പിക്കാനെടുക്കാം'




' ചന്ദ്രാ എനിക്കൊരാഗ്രഹം, മൊത്തം ഇംഗ്ലിഷ് അക്ഷരങ്ങളും അക്കങ്ങളും സൂചിപ്പിക്കാനുള്ള ഒരു ബോര്ഡുണ്ടാക്കാന്‍ '

' അതിനെന്താ , താഴെക്കാണുന്നതുപോലെ പതിനാറ് ബള്‍ബുകള്‍ ബോര്ഡില്‍ ക്രമീകരിച്ചാല്‍ പോരെ , നമുക്കുണ്ടാക്കാം '


' ആഹാ ചന്ദ്രാ ഇതിലിപ്പോ മൊത്തം അക്കങ്ങളും അക്ഷരങ്ങളും കാണിക്കാമല്ലൊ അല്ലെ ?'
' പറ്റും പക്ഷെ ഇവിടെ നമ്മള്‍ സര്ക്യൂട്ടും മാറ്റേണ്ടിവരും '

' നാല് സ്വിച്ചുകള്കൊണ്ടുള്ള സര്ക്യൂട്ടല്ലെ നമ്മുടെ വശമുള്ളു , അതില്‍ പതിനഞ്ച് കോമ്പിനേഷനല്ലെ പറ്റൂ , ഇതിപ്പോ മൊത്തം അക്ഷരങ്ങള്‍ക്ക് കുറേ വേണ്ടേ മാധവേട്ടാ'

' ശരി അപ്പോ നാലിനു പകരം എട്ട് സ്വിച്ചുകളുള്ള സര്ക്യൂട്ടുണ്ടാക്കിക്കോ '

' ഇപ്പോ നടക്കും മാധവേട്ടാ , എട്ടു സ്വിച്ചുകള് കൊണ്ട് 256 വ്യത്യസ്ഥ കോംബിനേഷന്‍ സാധ്യമാണല്ലോ '

' ഇതില്‍ പൂജ്യം മുതല്‍ ഒമ്പതുവരെയുള്ള അക്കങ്ങളും , ചെറിയതും വലിയതുമായ അക്ഷരങ്ങളും കാണിക്കാനുള്ള കോഡായി '

' മാധവേട്ടന്‍ ഇവിടെയുള്ള ഒരു ചെറിയ പ്രശ്നം കണ്ടോ? '
' ഇനി എന്താ ചന്ദ്രാ പ്രശ്നം ഞാനൊന്നും ഒന്നും കാണുന്നില്ലല്ലോ ! '
' നമ്മളുണ്ടാക്കിയ ഈ സര്ക്യൂട്ടില്‍ ഏത് അക്ഷരം സൂചിപ്പിക്കാന്‍ ഏതു കോഡെന്നതാരാ തീരുമാനിക്കുക ?'

' അതിനിപ്പോ എന്താ സംശയം നീ അല്ലെ ഉണ്ടാക്കുന്നത് നീ തന്നെ തീരുമാനിക്കും '

' അതുതന്നെ , അതായത് എനിക്കു വേണമെങ്കില്‍ അക്ഷരം ' L ' സൂചിപ്പിക്കാന്‍ ' 0001 1011' എന്ന കോഡുപയോഗിക്കാം അല്ലെങ്കില്‍ '1011 1001' എന്ന കോഡും ഉപയോഗിക്കാം , സര്ക്യൂട്ടില് മാറ്റം വരുത്തിയാല് മതിയല്ലോ അല്ലെ? '

' ഇതിപ്പോ പറയാന്‍ എന്തിരിക്കുന്നു ചന്ദ്രാ നീ സര്ക്യൂട്ടുണ്ടാക്കുന്നു എങ്ങിനെ പ്രവര്ത്തിക്കണമെന്ന് നിനക്ക് തീരുമാനിക്കാം '
'പക്ഷെ അതു നല്ല ഒരു രീതിയാണൊ മാധവേട്ടാ? '
' മനസ്സിലായില്ല ' ' ഉദാഹരണത്തിന് ഞാനൊരക്ഷരത്തിന് ഒരു കോഡ് കൊടുക്കുന്നു , അത് ഞാന്‍ മാധവേട്ടനു തരുമ്പോള്‍ അതിനുള്ള കോഡും തരേണ്ടേ ? '
' തരണം അല്ലാതെ ഞാനെങ്ങിനെ അറിയാനാ എനിക്കു വെണ്ട അക്ഷരം സൂചിപ്പിക്കാന്‍ ഓരോ കോംബിനേഷനും മാറി മാറി നൊക്കേണ്ടിവരില്ലേ , അതൊരു ശുംഭത്തരമല്ലേടോ ചന്ദ്രാ ? '

' ഈ ലോകത്ത് ഇത്തരം അക്ഷരങ്ങള്‍ ഉണ്ടാക്കുന്നവരെല്ലാം ഒരേ കോഡുപയോഗിച്ചാല്‍ ഈ പ്രശ്നം ഉണ്ടാകില്ലല്ലോ! '

'വിശദമാക്കെടോ '
' P എന്ന അക്ഷരം എനിക്കും മാധവേട്ടനും ജപ്പാനിലുള്ളവനും ഒന്നുതന്നെയല്ലെ ? '
' എന്താ സംശയം '
' അപ്പോ പിന്നെ ലോകത്തെവിടെ ഇത്തരം ഡിസ്പ്ലേ സര്ക്യൂട്ടുകളുണ്ടാക്കിയാലും കൊഡൊന്നുതന്നെയാവുന്നത് വളരെ നല്ലതല്ലെ ?'
' തീര്ച്ചയായും ' ' അതായത് കോഡ് എകീകരണം അല്ലെ ചന്ദ്രാ '

' അതെന്നെ ' അമേരിക്ക ആസ്ഥാനമാക്കി കോഡുകള്‍ ഏകീകരിച്ചതിനെയാണ് ( ASCII ) American Standard Code for Information Interchange കോഡെന്നുപറയുന്നത് ഇതു പ്രകാരം ഇംഗ്ലീഷിലെ അക്ഷരമാലക്കും , അക്കങ്ങള്‍ക്കും ഒരു പ്രത്യേക കോഡ് തീരുമാനിച്ചിട്ടുണ്ട്. ഇതനുസരിച്ച് ഓരോ അക്ഷരങ്ങള്‍ക്കും അക്കങ്ങള്‍ക്കും ഒരു കോഡ് മാത്രമേ ഉപയോഗിക്കാന്‍ പാടുള്ളു.

ഉദാഹരണത്തിന് വലിയ അക്ഷരം 'A' ക്ക് 01000001 ഈ കോഡാണുപയോഗിക്കേണ്ടത്. അക്ഷരങ്ങള്‍ സൂചിപ്പിക്കാന്‍ പതിനാറ് സെഗ്മെന്റ്റ് ഡിസ്പ്ലേയില്‍ നിന്നും ഡോട്ട് മാട്രിക്സ് ബോര്‍‌ഡുകളും പിന്നീട് ഹൈ റെസൊലൂഷന് ഡിസ്പ്ലേ യൂണിറ്റുകളുമൊക്കെയായി മാറിയെങ്കിലും അടിസ്ഥാന പ്രവര്‍ത്തന തത്വം മേല്‍‌ പറഞ്ഞതുതന്നെയാണ്.





' ചന്ദ്രാ , ഇവിടെയൊരു പ്രശ്നമുണ്ടല്ലോ , ഇന്ന അക്ഷരം സൂചിപ്പിക്കാന്‍ ഇന്ന കോഡെന്ന് എഴുതിയ ഒരു ടേബിള്‍ കൊണ്ടുനടക്കേണ്ടിവരില്ലേ?'

'ചന്ദ്രന്‍ ചിരിച്ചു, ' വേണം , എന്താ സംശയം ? '
' അതൊരു പുകിലല്ലേ ചന്ദ്രാ , എല്ലാവരും എന്നെപ്പോലെ ബുദ്ധിയുള്ളവരാകില്ലല്ലോ , ദേ ഈ ബോര്‍ഡ് നമ്മുടെ ശങ്കുണ്ണിക്ക് കൊടുത്തൂന്നിരിക്കട്ടെ '

' അതിനെന്താ , മാധവേട്ടന്‍ കൊടുത്തോളൂ '

' പക്ഷെ ചന്ദ്രാ , അപ്പോ ദേ ഞാന്‍ ഈ കോഡ് പറഞ്ഞുകൊടുത്തില്ലെങ്കില്‍ അവനെങ്ങിനെ വേണ്ടത് കത്തിക്കും , ഓരോന്നും മാറി മാറി നോക്കേണ്ടി വരില്ലെ? '

' മാധവേട്ടാ കോഡ് കൊടുത്തില്ലെങ്കില്‍ , സ്വിച്ചുകള്‍ മാറി മാറി കത്തിച്ചുതന്നെ നോക്കേണ്ടിവരും '
' ഇരുനൂറ്റമ്പതു കോഡുകള്‍ ഓര്മ്മിക്കണം അല്ലെങ്കില്‍ എഴുതികയ്യില്‍ തൂക്കിനടക്കണം , ഏയ് അതൊരു മുഷിപ്പന്‍ പരിപാടിയല്ലെ ചന്ദ്രാ ?'

'മാധവേട്ടനിപ്പോ എന്തുവേണം , മാധവേട്ടനെപോലുള്ള വിവരമില്ലാത്തവര്‍ക്ക് കോഡ് കൊടുക്കാതെ ഓരോ അക്ഷരവും സൂചിപ്പിക്കണം , അല്ലെ ? '

' നീ പതുക്കെ പറഞ്ഞതു ഞാന്‍ കേട്ടു , അതെന്നെ , സൂത്രപ്പണി വല്ലതും നടക്കുമോ ? '

' അതിനൊരു പണിയുണ്ട് ,നമുക്ക് ഈ കോഡുണ്ടാക്കുന്ന സര്ക്യൂട്ടങ്ങോട്ടുണ്ടാക്കാം എന്നിട്ട് മാധവേട്ടനെപ്പോലുള്ള മണ്ട ശിരോമണികള്‍ക്ക് ഇതിനെക്കൊണ്ട് വേണ്ടുന്ന കോഡുണ്ടാക്കിക്കാം '

' അതായത് , മാധവേട്ടന് മനസ്സിലാവുന്ന ഭാഷയില്‍ ഈ പുതിയ സര്ക്യൂട്ടുമായി ആശയവിനിമയം നടത്തി , വേണ്ടുന്ന കോഡുണ്ടാക്കാനായാല്‍ കാര്യം ശരിയായില്ലെ? '

' വ്യക്തമായില്ല '

' അതായത് ഞാനൊരു പുതിയപകരണം ഉണ്ടാക്കിത്തരാം അതില്‍ ഇംഗ്ലീഷിലെ അമ്പത്തിരണ്ട് അക്ഷരങ്ങളും , പൂജ്യം മുതല്‍ ഒമ്പതുവരെയുള്ള അക്കങ്ങളും അടയാളപ്പെടുത്തിയ സ്വിച്ചുകള്‍ വെക്കാം '

'ശരി'

' ഈ അടയാളങ്ങളില്‍ വിരല്‍ അമര്ത്തിയാല്‍ അത് ഡിസ്പ്ലേയില്‍ കാണാനുള്ള കോഡ് ഈ ഉപകരണം ഉണ്ടാക്കിയാല്‍ സംഗതി കഴിഞ്ഞില്ലെ? '

' ഓ കീ ബോര്ഡല്ലെ ചന്ദ്രാ നീ ഈ പറയുന്ന സാധനം '

'അതെന്നെ മാധവേട്ടാ കീ ബോര്ഡ് സത്യത്തില്‍ ഒരു കോഡ് ജനറേറ്റര്‍ ( കോഡുണ്ടാക്കുന്ന ഉപകരണം) ആണ്. കോഡുപയോഗിച്ച് അക്ഷരങ്ങള്‍ കാണിക്കാന്‍ സാങ്കേതിക ഭാഷ അറിയുന്നവര്ക്ക് മാത്രമേ സാധിക്കൂ എന്ന പരിമിതി 'അക്ഷരങ്ങളും അക്കങ്ങളും' അടയാളപ്പെടുത്തിയ കോഡ് ജനറേറ്റേഴ്സ് ഉണ്ടാക്കിയതോടെ പരിഹരിക്കപ്പെട്ടു. ഇത്തരം കോഡ് ജനറേറ്റേഴ്സാണ് കീ ബോര്‍ഡുകള്‍.

ASCII കോഡ്


ഇന്നു നമ്മള്‍ ഉപയോഗിക്കുന്ന കീ ബോര്ഡുകളില്‍ അടയാളപ്പെടുത്തിയ ഒരു കീയില്‍ അമര്‍‌ത്തുമ്പോള്‍ ഒരു ASCII കോഡുണ്ടാകുകയും അതനുസരിച്ചുള്ള ബള്‍ബുകള്‍ (ലിപി) ഡിസ്പ്ലേയില് തെളിയുകയും ചെയ്യുന്നു. ആദ്യകാലത്ത് ഇംഗ്ലിഷ് അക്ഷരങ്ങള്‍കൊണ്ട് തൃപ്തരായെങ്കിലും ക്രമേണ മറ്റു ഭാഷാ അക്ഷരങ്ങള്‍ സൂചിപ്പിക്കാനുള്ള മാര്ഗ്ഗ അന്വേഷണമായിരുന്നു നടന്നത്.
എട്ട് സ്വിച്ചുകളുടെ കോമ്പിനേഷന്‍ കൊണ്ട് ആകെ സാധ്യമാകുന്നത് 256 കോഡുകള്‍ മാത്രമാണല്ലൊ ചെറുതും വലുതുമായ ഇംഗ്ലീഷ് അക്ഷരങ്ങളും, അക്കങ്ങളും, ചില പ്രത്യേക ലിപികളും ( %, *, +, തുടങ്ങിയവ) ഉള്‍ക്കൊള്ളിച്ചപ്പോള്‍ ഈ കോഡുകള്‍ തീര്ന്നു (മേല്‍‌ സൂചിപ്പിച്ച ടേബിള്‍ കാണുക).

ഇനി പുതിയ ഭാഷാ ലിപികള്‍ സൂചിപ്പിക്കണമെങ്കില്‍ രണ്ട് മാര്‍‌ഗ്ഗമേയുള്ളു.

1) പുതിയ ലിപികള്‍ക്ക് വേണ്ടുന്ന കോഡ് മുമ്പെ ഉപയോഗിച്ചവ തന്നെ വീണ്ടും ഉപയോഗിക്കുക.

2) സ്വിച്ചുകളുടെ ( കോമ്പിനേഷനുള്ള) എണ്ണം എട്ടില്‍ നിന്നും കൂട്ടുക.
ഇതില്‍ ഒന്നാമത്തെ രീതിക്കുള്ള പ്രശ്നം പുതിയ ലിപിയും (കോഡ്) ഒപ്പം വേണമെന്നതുതന്നെ. ഈ രീതി ഉപയോഗിച്ച് പലരും അവര്ക്കു വേണ്ട ലിപികളുണ്ടാക്കുകയും (കോഡ്) ഉപയോഗിക്കുകയും ചെയ്തു.


(ഉദാഹരണം മലയാളമനോരമയുടെ ലിപി). ഇവിടെയുള്ള പ്രധാന പ്രശ്നം പുതിയ ലിപിയുടെ കോഡില്ലെങ്കില്‍, ലിപികള്‍ ശരിക്കും വ്യക്തമായി സൂചിപ്പിക്കപ്പെടില്ലാന്നുള്ളതാണ്.


അതായത്, 'തറവാടി' ഒരു ലിപി ഉണ്ടക്കിയെന്നിരിക്കട്ടെ, ഈ ലിപിയിലുള്ള ഒരക്ഷരം കൃത്യമായി സൂചിപ്പിക്കണമെങ്കില്‍ അതിന്റ്റെ തന്നെ കോഡും ഉണ്ടായേ തീരൂ അല്ലെങ്കില്‍ എഴുതിയതൊന്നും , അത് കാണുന്നത് മറ്റൊന്നുമാകും. മറ്റൊരു തരത്തില്‍ പറയാം, ഡല്‍ഹിയില്‍ ജനിച്ചു വളര്ന്ന ആനയെ കേരളത്തില്‍ കൊണ്ടുവന്നാല്‍ ഹിന്ദിയറിയുന്ന പാപ്പാനെയേയും കൊണ്ടുവരേണ്ട അവസ്ഥ. ഈ രീതിക്കുള്ള ബുദ്ധിമുട്ട് പറയേണ്ടതില്ലല്ലൊ!.

ഇനി രണ്ടാമത്തെ മാര്ഗ്ഗം നോക്കാം, ASCII കോഡ് ഉണ്ടാക്കിയിട്ടുള്ളത് എട്ട് സ്വിച്ചുകളുടെ കോമ്പിനേഷനാണല്ലോ. എട്ടില്‍ നിന്നും പതിനാറാക്കിയാല്‍ 65536 കോഡുകള്‍ സാധ്യമാകുമെന്നുള്ളത് ലോകത്തിലുള്ള സര്‍‌വ്വ ഭാഷകളുടെയും അക്ഷരങ്ങള്‍ ഉള്‍ക്കൊള്ളിക്കാമെന്നു വന്നു.

ലോകത്തുള്ള എല്ലാ ഭാഷകളും ഉള്‍ക്കൊള്ളിച്ചാലും, ഒരേഭാഷയിലെ അക്ഷരങ്ങള്‍ മറ്റു ഭാഷകളില്‍ ഉപയോഗിക്കുന്നതൊഴിവാക്കാന്‍ വേണ്ടി, ലോകത്തിലെ ഓരോ ഭാഷക്കും അവയിലെ അക്ഷരങ്ങളുടെ എണ്ണം നോക്കി ഈ 65536 കോഡുകളിലെ ചില കോഡുകള്‍ തീറെഴുതിക്കൊടുത്തു.

ഉദാഹരണത്തിന് മലയാള ഭാഷാ അക്ഷരങ്ങള്‍ക്ക് നീക്കിവെച്ച കോഡുകളാണ്, 3328 മുതല് - 3455 വരെയുള്ള 127 കോഡുകള്‍. അതായത് 0000110100000000 - 0000110101111111 വരെയുള്ള 127 കോഡുകള്‍ .

ലോകത്തിലെ എല്ലാ ഭാഷകളും ഒരേ ഐക്യത്തോടെ ഉള്‍ക്കൊള്ളുന്ന (കൊള്ളാവുന്ന) ഈ 65536 കോഡിനെയാണ് യൂണിക്കോഡെന്നു വിളിക്കുന്നത്. ഇവിടെയുള്ള ഒരു പ്രശ്നം നോക്കാം, നമ്മള്‍ സാധാരണ ഉപയോഗിക്കുന്ന കീ ബോര്ഡ് പറ്റില്ലാ എന്നതുതന്നെ കാരണം പറയേണ്ടല്ലോ, കീ ബോര്ഡുകള്‍ ASCCII അടിസ്ഥാനപ്പെടുത്തിയതുതന്നെ.

ഇംഗ്ലീഷ് അല്ലാതുള്ള യൂണിക്കോഡിലുള്ള മറ്റൊരു ലിപി സൂചിപ്പിക്കണമെങ്കില്‍ ആ ഭാഷയിലുള്ള ലിപിക്കുവേണ്ടിയുള്ള കോഡായരിക്കണമല്ലോ ഉണ്ടാവേണ്ടത്. നമ്മള് ഉപയോഗിക്കുന്ന സാധാരണ കീബോര്ഡില്‍ നിന്നും ASCII കോഡ് മാത്രമേ ഉണ്ടാകുകയുള്ളു.

അതായത് 00000000 മുതല് 11111111 വരെയുള്ള 256 കോഡുകളെ ഉണ്ടാകുകയുള്ളു. ഈ കോഡുകള്‍ സൂചിപ്പിക്കുന്നതാകട്ടെ ഇംഗ്ലീഷ് ഭാഷയിലെ അക്ഷരങ്ങളും അക്കങ്ങളുമാണെന്ന് പറയേണ്ടതില്ലല്ലോ. ഓരോ പ്രാദേശിക ഭാഷാ ലിപികള്‍ക്കും വേണ്ട കോഡ് ജനറേറ്റര്‍ (കീ ബോര്‍‌ഡ് ) നിര്‍‌മ്മിക്കുക എന്നതിനേക്കാള്‍ പ്രാപല്യത്തിലുള്ള ASCII കീ ബോര്‍ഡുകള്‍ ഉപയോകിച്ച് യൂണിക്കോഡാക്കി മാറ്റുന്ന സം‌രംഭങ്ങള്‍ വന്നതോടേ കാര്യങ്ങള്‍ എളുപ്പമാക്കി.

അതായത്, ASCII കീ ബോര്‍ഡിലെ ഓരോ അക്ഷരങ്ങള്‍ക്കുമുള്ള കോഡുകളെ (ASCII) , യൂണിക്കോഡാക്കി മാറ്റുന്നത്തോടെ, യൂണിക്കോഡിലെ അക്ഷരം സൂചിപ്പിക്കാനാവുന്നു. ഉദാഹരണത്തിന്, ഇംഗ്ലീഷ് അക്ഷരം 'a' അമര്‍ത്തുമ്പോള്‍ 01100001 കോഡാണല്ലോ ഉണ്ടാകുക.

ഇതിനെ യൂണിക്കോഡിലെ നമുക്ക് സൂചിപ്പിക്കേണ്ടുന്ന ലിപിയുടേ കോഡാക്കി മാറ്റുന്നതോടെ യൂണിക്കോഡിലെ അക്ഷരം സൂചിപ്പിക്കാനാവുന്നു. ഇങ്ങനെ ഏത് അസ്കീ കോഡിന് ഏത് യൂണികോഡ് സൂചിപ്പിക്കണമെന്നത് കോഡ് മാറ്റുന്ന വിദ്യ ഉണ്ടാക്കുന്ന ആളുടെ പൂര്‍ണ്ണ സ്വാതന്ത്ര്യമാണ്.

ഇങ്ങനെ ASCII യില് നിന്നും യൂണികോഡിലേക്കുള്ള കോഡ് മാറ്റം ചെയ്യാന്‍ വേണ്ടുന്ന പല ഡവലപ്പിങ്ങ് സോഫ്റ്റ്വെയറുകളുമുണ്ട്, ഉദാഹരണത്തിന് tavultesoft കമ്പനിയുണ്ടാക്കുന്ന ഡവലപ്പിങ്ങ് സോഫ്റ്റ്വെയര്‍ ഉപയോഗിച്ച് കീ മാപ്പിങ്ങ് ചെയ്യാവുന്നതാണ്, ഇങ്ങനെ ഉണ്ടാക്കുന്ന റ്റൂള്‍സ് ഉപയോഗിച്ച് പ്രാദേശികാ അക്ഷരങ്ങള്‍ സൂചിപ്പിക്കാം.


4 comments:

അനില്‍@ബ്ലോഗ് said...

വെറുതെ ഗൂഗിളില്‍ കറങ്ങിയപ്പോള്‍ എത്തിയതാ.

നന്നായിരിക്കുന്നു.

പട്ടാമ്പിക്കാരന്‍ said...

valare nannayirikkunnu ..

SoanS said...

Aliyu,

well explained

shah saheb said...

very good ideas