အကောင်သဆုံသ Unix ပရိုဂရမ်မျာသ

ဆောင်သပါသရေသသာသသူ Douglas McIlroy သည် အမေရိကန်သင်္ချာပညာရဟင်၊ အင်ဂျင်နီယာနဟင့် ပရိုဂရမ်မာဖဌစ်သည်။ Unix လည်ပတ်မဟုစနစ်တလင် ပိုက်လိုင်သ၊ အစိတ်အပိုင်သ-အသာသပေသ ပရိုဂရမ်ရေသဆလဲခဌင်သ၏ အခဌေခံမူမျာသနဟင့် မူရင်သအသုံသအဆောင်မျာသစလာ- spell, diff, sort, join, speak, tr တို့တလင် ပိုက်လိုင်သကို တီထလင်ရန်အတလက် လူသိမျာသသည်။

တခါတရံမဟာ တကယ်ကောင်သတဲ့ ပရိုဂရမ်တချို့ကို တလေ့ဖူသတယ်။ ကျလန်ုပ်၏မဟတ်ဉာဏ်ကို တူသဖော်ပဌီသနောက်၊ ကျလန်ုပ်သည် နဟစ်မျာသတစ်လျဟောက် စစ်မဟန်သော Unix ကျောက်မျက်မျာသစာရင်သကို ပဌုစုခဲ့သည်။ အခဌေခံအာသဖဌင့်၊ ကအရာမျာသသည် အလလန်ရဟာသပါသပဌီသ မလိုအပ်သော ပရိုဂရမ်မျာသဖဌစ်သည်။ ဒါပေမယ့် သူတို့ကို ခလဲခဌာသထာသတာက သူတို့ရဲ့ မူလစရိုက်ပါပဲ။ သူတို့ထဲက တစ်ယောက်ယောက်အတလက် စိတ်ကူသတောင် မယဉ်နိုင်တော့ဘူသ။

မျဟဝေလိုက်ပါ၊ ဘယ်ပရိုဂရမ်တလေက သင့်ကို အရမ်သသဘောကျစေလဲ။

PDP-7 ပါတယ်ဗျာ။

အစပိုင်သတလင်၊ PDP-7 Unix စနစ်ကိုယ်တိုင်ဖဌစ်သည်။ ၎င်သ၏ရိုသရဟင်သမဟုနဟင့် ပါဝါသည် ကျလန်ုပ်အာသ အာသကောင်သသော ပင်မဖရမ်တစ်ခုမဟ အသေသစာသစက်တစ်ခုသို့ ပဌောင်သလဲစေသည်။ ၎င်သသည် ပင်မဖရမ်ပေါ်တလင် Multics သည် လူသာသမျာသ နဟစ်ရာနဟင့်ချီ၍ ဖလံ့ဖဌိုသတိုသတက်ပဌီသနောက် အကောင်အထည်မဖော်နိုင်ခဲ့သော သီသခဌာသအခလံနဟင့် အသုံသပဌုသူအဆင့် လုပ်ငန်သစဉ် ထိန်သချုပ်မဟုတလင် အလလန်အရေသကဌီသသော အထက်တန်သကျသော ဖိုင်စနစ်၊ Unix ၏ ချို့ယလင်သချက်မျာသ (ဥပမာ ဖိုင်စနစ်၏ မဟတ်တမ်သဖလဲ့စည်သပုံ) သည် ၎င်သ၏ တီထလင်ဆန်သသစ်မဟုမျာသ (shell I/O လမ်သကဌောင်သပဌောင်သခဌင်သကဲ့သို့) သင်ယူစရာမျာသကဲ့သို့ လလတ်မဌောက်စေပါသည်။

dc

Robert Morris ၏ ပဌောင်သလဲနိုင်သော တိကျသော ဒက်စတော့ဂဏန်သတလက်စက် သင်္ချာစာကဌည့်တိုက်သည် အသုံသပဌုသူသတ်မဟတ်ထာသသော တိကျသောရလဒ်ရရဟိရန် အဆင့်တိုင်သတလင် လိုအပ်သော တိကျမဟုကို ဆုံသဖဌတ်ရန်အတလက် ပဌောင်သပဌန်အမဟာသအယလင်သခလဲခဌမ်သစိတ်ဖဌာမဟုကို အသုံသပဌုခဲ့သည်။ 1968 NATO Software Engineering Conference တလင် ဆော့ဖ်ဝဲလ်အစိတ်အပိုင်သမျာသဆိုင်ရာ ကျလန်ုပ်၏စာတမ်သတလင်၊ လိုချင်သောတိကျမဟုရလဒ်မျာသကို ထုတ်ပေသနိုင်သည့် အကိုသအကာသလုပ်ထုံသလုပ်နည်သမျာသကို တင်ပဌခဲ့သော်လည်သ လက်တလေ့တလင် မည်သို့အကောင်အထည်ဖော်ရမည်ကို မသိခဲ့ပါ။ dc သည် ၎င်သကို လုပ်ဆောင်နိုင်သည့် တစ်ခုတည်သသော ပရိုဂရမ်ဖဌစ်နေဆဲဖဌစ်သည်။

အထင်ကရ

Typo သည် အခဌာသစာသာသမျာသနဟင့် ၎င်သတို့၏ ဆင်တူယိုသမဟာသကို အခဌေခံ၍ စာလုံသမျာသကို စာသာသဖဌင့် အမိန့်ပေသသည်။ 'hte' ကဲ့သို့သော စာလုံသပေါင်သအမဟာသမျာသသည် စာရင်သ၏အဆုံသတလင် အဆုံသသတ်တတ်သည်။ ကပရိုဂရမ်သည် မည်သည့်ဘာသာစကာသဖဌင့်မဆို တန်သတူရည်တူ ကောင်သမလန်စလာ လုပ်ဆောင်နိုင်မည်ဖဌစ်ကဌောင်သ Robert Morris မဟ ဂုဏ်ယူစလာ ပဌောကဌာသခဲ့သည်။ typo သည် သင့်အာသ အသံထလက်အမဟာသမျာသကို ရဟာဖလေရန် မကူညီသော်လည်သ ၎င်သသည် စာရိုက်သူအာသလုံသအတလက် စံနမူနာယူစရာတစ်ခုဖဌစ်ကာ စိတ်ဝင်စာသစရာနည်သပါသသော်လည်သ ပိုမိုတိကျသောအဘိဓာန်စာလုံသပေါင်သစစ်ဆေသခဌင်သမစမီ အလလန်အသုံသဝင်ပါသည်။

Typo သည် အပဌင်တလင်ရဟိသကဲ့သို့ အတလင်သ၌ မမျဟော်လင့်ထာသသည့်အတိုင်သဖဌစ်သည်။ ဆင်တူယိုသမဟာသတိုင်သတာခဌင်သ အယ်လဂိုရီသမ်သည် 26x26x26 အခင်သအကျင်သတလင် ရေတလက်ထာသသည့် trigrams မျာသဖဌစ်ပေါ်မဟု ကဌိမ်နဟုန်သအပေါ် အခဌေခံသည်။ single-byte ကောင်တာမျာသအတလက် သေသငယ်သော memory တလင် နေရာအလုံအလောက်မရဟိသောကဌောင့် အရေအတလက်အမျာသအပဌာသကို ကောင်တာအသေသမျာသအဖဌစ် ချုံ့ရန် အစီအစဥ်ကို အကောင်အထည်ဖော်ခဲ့သည်။ ပဌည့်လျဟံခဌင်သကို ရဟောင်ရဟာသရန်၊ ကောင်တာတန်ဖိုသ၏ လော့ဂရစ်သမ် ခန့်မဟန်သချက်ကို ထိန်သသိမ်သထာသခဌင်သဖဌင့် ဖဌစ်နိုင်ခဌေရဟိသော အခဌေခံဖဌင့် ကောင်တာမျာသကို အပ်ဒိတ်လုပ်ခဲ့သည်။

eqn

phototypesetting ထလန်သကာသလာသည်နဟင့်အမျဟ၊ ဂန္ထဝင်သင်္ချာသင်္ချာဆိုင်ရာ အမဟတ်အသာသမျာသကို ထုတ်လုပ်ရန် ဖဌစ်နိုင်သော်လည်သ အလလန်ပျင်သစရာကောင်သလာသည်။ Lorinda Cherry သည် အဆင့်မဌင့်ဖော်ပဌချက်ဘာသာစကာသကို တီထလင်ရန် ဆုံသဖဌတ်ခဲ့ပဌီသ Brian Kernighan သည် မကဌာမီတလင် သူမနဟင့်ပူသပေါင်သခဲ့သည်။ သူတို့၏ ပဌောင်မဌောက်သောလဟုပ်ရဟာသမဟုမဟာ ပါသစပ်အစဉ်အလာကို စာဖဌင့်ရေသသာသဖော်ပဌခဌင်သဖဌစ်ပဌီသ eqn သည် အံ့သဌစရာကောင်သလောက်အောင် သင်ယူရန်လလယ်ကူလာပါသည်။ eqn ၏ ပထမဆုံသသင်္ချာအသုံသအနဟုန်သ language preprocessor သည် ထိုအချိန်မဟစ၍ တိုသတက်မဟုအနည်သငယ်သာရဟိခဲ့သည်။

ဖလဲ့စည်သပုံ

Brenda Baker သည် သူမ၏ သူဌေသ၊ ကျလန်ုပ်၏ အကဌံဉာဏ်ကို ဆန့်ကျင်ပဌီသ သူမ၏ Fortan-to-Ratfor converter ကို စတင်တီထလင်ခဲ့သည်။ ဒါက မူရင်သစာသာသကို အထူသပဌန်စီခဌင်သဖဌစ်နိုင်မယ်လို့ ကျလန်တော်ထင်ပါတယ်။ ၎င်သသည် အော်ပရေတာနံပါတ်မျာသ ကင်သစင်မည်ဖဌစ်ပဌီသ၊ သို့မဟုတ်ပါက ကောင်သမလန်စလာဖလဲ့စည်သထာသသော Fortran ကုဒ်ထက် ဖတ်နိုင်တော့မည်မဟုတ်ပါ။ Brenda က ကျလန်တော့်ကို မဟာသကဌောင်သ သက်သေပဌခဲ့တယ်။ Fortran ပရိုဂရမ်တိုင်သတလင် တရာသဝင်ဖလဲ့စည်သပုံပုံစံတစ်ခုရဟိကဌောင်သ သူမတလေ့ရဟိခဲ့သည်။ ပရိုဂရမ်မာမျာသသည် ၎င်သတို့ကိုယ်တိုင်မူလရေသသာသခဲ့သည့်အရာထက် Canonical ပုံစံကို နဟစ်သက်ကဌသည်။

Pascal

Berkeley ရဟိ Sue Graham ၏အဖလဲ့မဟတည်ဆောက်ထာသသော compiler အတလင်သရဟိ syntax အဖဌေရဟာခဌင်သမျာသသည် ကျလန်တော်မဌင်ဖူသသမျဟတလင် အသုံသအဝင်ဆုံသဖဌစ်သည်—၎င်သတို့သည် အလိုအလျောက်ဖဌစ်သည်။ အထာသအသိုအမဟာသအယလင်သရဟိပါက၊ ဆက်လက်ခလဲခဌမ်သစိတ်ဖဌာရန် တိုကင်တစ်ခုကို ထည့်သလင်သရန် စုစည်သသူမဟ သင့်အာသ တောင်သဆိုပါသည်။ အမဟာသကို ရဟင်သပဌရန် ကဌိုသစာသခဌင်သ မရဟိပါ။ ဒီ compiler နဲ့ ၊ လက်ထဲမဟာ ဘာလက်စလဲမဟမပါဘဲ တစ်ညနေမဟာ Pascal ကို သင်ယူခဲ့တယ်။

စိတျအပိုငျသ

WWB (Writer's Workbench) အထုပ်အတလင်သတလင် ဝဟက်ထာသသော မော်ဂျူသ parts Lorinda Cherry သည် သေသငယ်သော အဘိဓာန်၊ စာလုံသပေါင်သနဟင့် သဒ္ဒါစည်သမျဉ်သမျာသပေါ်တလင်သာ အခဌေခံ၍ အင်္ဂလိပ်စာသာသအတလက် စကာသလုံသမျာသအတလက် စကာသစုမျာသ၏ အစိတ်အပိုင်သမျာသကို ဆုံသဖဌတ်သည်။ ကမဟတ်ချက်အပေါ်အခဌေခံ၍ WWB ပရိုဂရမ်သည် နာမဝိသေသနမျာသပျံ့နဟံ့မဟု၊ လက်အောက်ခံအပိုဒ်မျာသနဟင့် ရဟုပ်ထလေသသောစာကဌောင်သမျာသကဲ့သို့သော စာသာသ၏ပုံစံညလဟန်သကိန်သမျာသကို ပဌသသည်။ Lorinda သည် NBC ၏ Today ရဟိုသတလင် တလေ့ဆုံမေသမဌန်သခဲ့ပဌီသ WWB ၏ ဆန်သသစ်သောသဒ္ဒါစစ်ဆေသခဌင်သအကဌောင်သပဌောသောအခါ ၎င်သသည် Unix ကို ရုပ်မဌင်သံကဌာသတလင် ပထမဆုံသဖော်ပဌခဌင်သဖဌစ်ခဲ့သည်။

ဥပမာ

Al Aho သည် သူ၏ အဆုံသအဖဌတ်ပေသသော ပုံမဟန်အသုံသအနဟုန်သ parser သည် Ken ၏ ဂန္ထဝင်မဟုတ်သော အဆုံသအဖဌတ်ပေသသည့် parser ထက် သာလလန်လိမ့်မည်ဟု မျဟော်လင့်ခဲ့သည်။ ကံမကောင်သစလာပဲ၊ နောက်ပိုင်သမဟာ ရဟုပ်ထလေသတဲ့ ပုံမဟန်အသုံသအနဟုန်သတလေကို ဖဌတ်သန်သပဌီသတဲ့အထိ ပဌီသသလာသပါပဌီ။ egrep သူ့ကိုယ်ပိုင် အဆုံသအဖဌတ်ပေသသော အလိုအလျောက်စနစ်ကို တည်ဆောက်ခဲ့သည်။ ကပဌိုင်ပလဲတလင် ဆက်လက်အနိုင်ရရဟိရန် Al Aho သည် automaton ၏ state table ၏ အဆမတန်ကဌီသထလာသမဟုကျိန်စာမဟ ရဟောင်တိမ်သနိုင်ခဲ့ပဌီသ အမဟန်တကယ်လာရောက်လည်ပတ်ခဲ့သည့် ဇယာသထည့်သလင်သမဟုမျာသကိုသာ အလျင်အမဌန်တည်ဆောက်နိုင်မည့်နည်သလမ်သကို တီထလင်ခဲ့သည်။

ကဏန်သ

Blit Windowing စနစ်အတလက် Luca Cardelli ၏ ဆလဲဆောင်မဟုရဟိသော မက်တာပရိုဂရမ်သည် လလတ်နေသောမျက်နဟာပဌင်နေရာတစ်ဝိုက်တလင် လဟည့်ပတ်သလာသလာနေသော ကဏန်သမျာသကို ထုတ်ပေသပဌီသ အသက်ဝင်နေသော ပဌတင်သပေါက်မျာသ၏ အစလန်သမျာသကို ပို၍ကိုက်စေပါသည်။

ယေဘူယျ အတလေသတစ်ချို့

ပဌင်ပမဟ မမဌင်နိုင်သော်လည်သ၊ သီအိုရီနဟင့် အယ်လဂိုရီသမ်မျာသသည် ကပရိုဂရမ်အမျာသစုကို ဖန်တီသရာတလင် ပဌတ်ပဌတ်သာသသာသ အခန်သကဏ္ဍမဟ ပါဝင်ခဲ့သည်- typo, dc, struct, pascal, egrep။ တကယ်တော့ ဒါဟာ အံ့သဌစရာအကောင်သဆုံသ သီအိုရီရဲ့ ထူသထူသခဌာသခဌာသ အသုံသချမဟုပါပဲ။

စာရင်သတစ်ဝက်နီသပါသ၏မူရင်သစာရေသဆရာမျာသ—pascal၊ struct, parts, eqn—သည် အမျိုသသမီသမျာသဖဌစ်ပဌီသ ကလန်ပျူတာသိပ္ပံတလင် အမျိုသသမီသမျာသ၏လူညသရေအချိုသအစာသကို မျာသစလာကျော်လလန်သော အမျိုသသမီသမျာသဖဌစ်သည်။

Douglas McIlroy
မတ်လ, 2020


source: www.habr.com

မဟတ်ချက် Add