ബിസിപിഎൽ

ബിസിപിഎൽ ("ബേസിക് കംമ്പയിൻഡ് പ്രോഗ്രാമിംഗ് ലാംഗ്വേജ്") (BCPL)ഒരു പ്രോസ്സീജറൽ, ഇംപറേറ്റീവ്, സ്ട്രക്ചേർഡ് കമ്പ്യൂട്ടർ പ്രോഗ്രാമിങ് ഭാഷയാണ്. മറ്റ് ഭാഷകൾക്ക് വേണ്ടി കംപൈലർ എഴുതുക എന്നതാണ് ബിസിപിഎല്ലിന്റെ പൊതു ഉപയോഗം. എന്നിരുന്നാലും, അതിന്റെ സ്വാധീനം ഇന്നും അനുഭവപ്പെടുന്നു ബിസിപിഎൽ വാക്യഘടനാപരമായി മാറ്റം വരുത്തിയതുമൂലം അതിന്റെ സ്വാധീനം ഇപ്പോഴും അനുഭവപ്പെടും. ബി എന്നു വിളിക്കുന്ന ഭാഷ സി പ്രോഗ്രാമിങ് ഭാഷ അടിസ്ഥാനമാക്കിയുള്ളതാണ്. ബിസിപിഎൽ ആധുനിക പ്രോഗ്രാമിങ് ഭാഷകളിൽ ഉള്ള പല സവിശേഷതകളും അവതരിപ്പിച്ചു. കോഡ് ബ്ലോക്കുകളുടെ അതിരുകൾ നിർണ്ണയിക്കുന്നതിന് വളഞ്ഞ ബ്രെയ്സുകൾ(വളച്ചുകെട്ട് ഉദാ:{ }) ഉപയോഗിച്ചു.https://www.cl.cam.ac.uk/~mr10/bcplman.pdf The BCPL Cintsys and Cintpos
User Guide, 2.1.4 Section brackets.
രൂപകല്പന
ചെറുതും ലളിതവുമായ കമ്പൈലറുകൾ എഴുതാൻ വേണ്ടിയാണ് ബിസിപിഎൽ രൂപകൽപന ചെയ്തത്. പ്രശസ്തമായ ചില കമ്പൈലറുകൾ 16 കിലോബൈറ്റുകളുള്ളവയിൽ പോലും പ്രവർത്തിപ്പിക്കാൻ കഴിയും. കൂടാതെ, യഥാർത്ഥ കംപൈലർ, ബിസിപിഎല്ലിൽ തന്നെ എഴുതിയതും, എളുപ്പത്തിൽ പോർട്ട് ചെയ്യാവുന്നതായിരുന്നു. ബിസിപിഎൽ ഒരു സിസ്റ്റം ബൂട്ട്സ്ട്രാപ്പിങ് ചെയ്യുന്നതിനുള്ള ഏറ്റവും നല്ല ചോയ്സ് ആയിരുന്നു. കംപൈലർ പോർട്ടബിലിറ്റിക്ക് ഒരു പ്രധാന കാരണം അതിന്റെ ഘടനയായിരുന്നു. അത് രണ്ടു ഭാഗങ്ങളായി വിഭജിച്ചു: ഫ്രണ്ട് എൻഡ് ഉറവിടം പാഴ്സ് ചെയ്യുകയും ഒ-കോഡ് സൃഷ്ടിക്കുകയും ചെയ്തു, പിന്നീടുള്ള ബാക്ക് എൻഡിൽ ഒ-കോഡ് എടുത്തു ലക്ഷ്യമിട്ട കോഡിലേക്ക് വിവർത്തനം ചെയ്തു. ഒരു പുതിയ യന്ത്രം (new machine) പിന്തുണയ്ക്കുന്നതിനായി 1/5 കംപൈലർ കോഡ് മാത്രം തിരുത്തിയെഴുതേണ്ടതുണ്ട്. ഈ ടാസ്ക്ക് സാധാരണയായി 2 മുതൽ 5 വരെ മാസം വരെ എടുക്കാറുണ്ട്. ഈ സമീപനം പിന്നീട് സാധാരണ പ്രയോഗമായി മാറി (ഉദാ. പാസ്കൽ, ജാവ).

ഈ ഭാഷയ്ക്ക് ഒരു ഡാറ്റ ടൈപ്പ് മാത്രമേയുള്ളൂ: അതായത്, ഒരു നിശ്ചിത വലുപ്പത്തിലുള്ള വാക്ക്. മെഷീൻ്റെ ആർക്കിടെക്ചറുമായി പൊരുത്തപ്പെടുന്നതിനാണ് പദ വലുപ്പം തിരഞ്ഞെടുത്തിരിക്കുന്നത്. മെമ്മറി അഡ്രസ്സ് കൈവശം വയ്ക്കാൻ കഴിയുന്നത്ര വലുതാണ് ഇത്, ഡാറ്റ കൈകാര്യം ചെയ്യുന്നത് ലളിതമാക്കുന്നു. അക്കാലത്തെ പല മെഷീനുകൾക്കും, ഈ ഡാറ്റ ടൈപ്പ് 16-ബിറ്റ് വേഡായിരുന്നു. ഈ ചോയ്‌സ് പിന്നീട് ഒരു വാക്കല്ല, മറിച്ച് ഒരു ബൈറ്റ് അല്ലെങ്കിൽ 32-ബിറ്റ് അല്ലെങ്കിൽ 64-ബിറ്റ് പോലുള്ള വലിയ പദ വലുപ്പമുള്ള മെഷീനുകളിൽ ബിസിപിഎൽ ഉപയോഗിച്ചപ്പോൾ ഒരു പ്രധാന പ്രശ്‌നമായി മാറി.

ഈ ഭാഷയിൽ, ഒരു മൂല്യം എങ്ങനെ വ്യാഖ്യാനിക്കപ്പെടുന്നു എന്നത് ഉപയോഗിക്കുന്ന ഓപ്പറേറ്റർമാരെ ആശ്രയിച്ചിരിക്കുന്നു. ഉദാഹരണത്തിന്, + മൂല്യങ്ങളെ പൂർണ്ണസംഖ്യകളായി ചേർക്കുന്നു, അതേസമയം ! ഒരു മൂല്യത്തെ ഒരു പോയിൻ്ററായി കണക്കാക്കുന്നു. ശരിയായ ഉപയോഗം നടപ്പിലാക്കാൻ ഉതകുന്ന ടൈപ്പ് ചെക്കിംഗ് ഇല്ല. ഈ ഫ്ലെക്സിബിലിറ്റി വ്യത്യസ്‌ത ഡാറ്റ ടൈപ്പുകൾ ആവശ്യമില്ലാതെ തന്നെ വ്യത്യസ്‌ത പ്രവർത്തനങ്ങൾ അനുവദിക്കുന്നു.

ബിസിപിഎല്ലിൻ്റെ വേഡ് ഓറിയൻ്റേഷനും ബൈറ്റ്-ഓറിയൻ്റഡ് ഹാർഡ്‌വെയറും തമ്മിലുള്ള പൊരുത്തക്കേട് പല തരത്തിൽ പരിഹരിക്കപ്പെട്ടു. വാക്കുകൾ ബൈറ്റ് സ്ട്രിംഗുകളായി പാക്ക് ചെയ്യുന്നതിനും അൺപാക്ക് ചെയ്യുന്നതിനുമുള്ള സാധാരണ ലൈബ്രറി റുട്ടീനുകൾ നൽകുകയായിരുന്നു ഒന്ന്. പിന്നീട്, രണ്ട് ഭാഷാ സവിശേഷതകൾ കൂടി ചേർത്തു: ബിറ്റ്-ഫീൽഡ് സെലക്ഷൻ ഓപ്പറേറ്ററും ഇൻഫിക്സ് ബൈറ്റ് ഇൻഡെറക്ഷൻ ഓപ്പറേറ്ററും (% കൊണ്ട് സൂചിപ്പിച്ചിരിക്കുന്നു).

ഒരു ഗ്ലോബൽ വെക്റ്റർ ഉപയോഗിച്ച് ബിസിപിഎൽ പ്രത്യേക കംപൈലേഷൻ യൂണിറ്റുകളിലുടനീളം ഡാറ്റ കൈകാര്യം ചെയ്യുന്നു. ഉപയോക്താക്കൾ നിർവചിക്കുന്ന ഗ്ലോബൽ വേരിയബിളുകൾക്ക് പകരം, എല്ലാ ഗ്ലോബൽ ഡാറ്റയും ഈ വെക്റ്ററിൽ സംഭരിച്ചിരിക്കുന്നു. ഫോർട്രാനിൽ "ബ്ലാങ്ക് കോമൺ" പ്രവർത്തിക്കുന്നത് പോലെയാണ് ഇത്.

അവലംബം