VSI BASIC for OpenVMS
ઓપનવીએમએસ માટે વીએસઆઈ બેઝિક એ ડિજિટલ ઇક્વિપમેન્ટ કોર્પોરેશન (ડીઇસી) દ્વારા બનાવવામાં આવેલી અને હવે વીએમએસ સોફ્ટવેર ઇન્કૉર્પોરેટેડ (વીએસઆઈ) ની માલિકીની બેઝિક પ્રોગ્રામિંગ લેંગ્વેજની બોલીનું નવીનતમ નામ છે. તે મૂળરૂપે 1970ના દાયકામાં પીડીપી-11 મિનીકમ્પ્યુટર પર આરએસટીએસ-11 ઓપરેટિંગ સિસ્ટમ માટે બેઝિક-પ્લસ તરીકે વિકસાવવામાં આવી હતી. પાછળથી તેને ઓપનવીએમએસ પર મૂકવામાં આવ્યું હતું, પહેલા વીએએક્સ પર, પછી આલ્ફા અને તાજેતરમાં ઇન્ટિગ્રિટી પર. ઉત્પાદનના ભૂતકાળના નામોમાં નીચેનાનો સમાવેશ થાય છેઃ બેઝિક-પ્લસ, બેઝિક પ્લસ 2 (BP2 અથવા બેઝિક-પ્લસ-2), વેક્સ બેઝિક, DEC બેઝિક, ઓપનવીએમએસ માટે કોમ્પેક બેઝિક અને ઓપનવીએમએસ માટે એચપી બેઝિક. હાર્ડવેર પ્લેટફોર્મ (વી. એ. એક્સ., આલ્ફા સર્વર, વગેરે) ની નોંધ લેતા શીર્ષકોની બહુવિધ વિવિધતાઓ. પણ અસ્તિત્વ ધરાવે છે. નોંધપાત્ર સુવિધાઓ વી. એસ. આઈ. બેઝિકમાં ઘણા ફોરટ્રાન જેવા એક્સ્ટેન્શન્સ છે, તેમજ મૂળ ડાર્ટમાઉથ બેઝિક મેટ્રિક્સ ઓપરેટરોને ટેકો આપે છે. જ્યાં સુધી "ઇ. આર. એલ". કાર્ય હાજર ન હોય ત્યાં સુધી પંક્તિ સંખ્યાઓ વૈકલ્પિક છે. તે તમને સંરક્ષિત નિવેદનોની આસપાસ "WHEN ERROR" ભૂલ હેન્ડલર્સ લખવાની મંજૂરી આપે છે. વધુ પરંપરાગત પરંતુ ઓછા ભવ્ય "ભૂલ પર" નિવેદનમાં આવા સંદર્ભ અથવા અવકાશનો અભાવ છે. વીએસઆઈ બેઝિકની વધુ નોંધપાત્ર વિશેષતાઓમાંની એક ઓપનવીએમએસની શક્તિશાળી રેકોર્ડ મેનેજમેન્ટ સર્વિસીસ (આરએમએસ) માટે બિલ્ટ-ઇન સપોર્ટ છે. વેક્સ બેઝિકના પ્રકાશન પહેલાં, મૂળ આર. એમ. એસ. આધાર માત્ર ડી. ઇ. સી. ના કોબોલ કમ્પાઇલરમાં ઉપલબ્ધ હતો. ઇતિહાસ ઓપનવીએમએસ ઉત્પાદન ઇતિહાસ માટે વીએસઆઈ બેઝિક 30 વર્ષથી વધુ સમયગાળામાં ફેલાયેલું છે, અને તે તે સમયમાં ઘણા નામ અને માલિકીના ફેરફારોમાંથી પસાર થયું છે. ડીઇસી, કોમ્પેક, એચપી અને વીએસઆઈ દ્વારા વિકસાવવામાં આવ્યા હોવાથી તેને સતત નવા પ્લેટફોર્મ પર પણ મૂકવામાં આવ્યું છે. કંપની અને/અથવા પ્લેટફોર્મનું નામ ઘણીવાર ઉત્પાદનના નામમાં સામેલ કરવામાં આવે છે, જે નામોના પ્રસારમાં ફાળો આપે છે. બેઝિક-પ્લસ વી. એસ. આઈ. બેઝિકની શરૂઆત બેઝિક-પ્લસ તરીકે થઈ હતી, જે ડી. ઈ. સી. દ્વારા તેમની આર. એસ. ટી. એસ.-11 ઓપરેટિંગ સિસ્ટમ અને પી. ડી. પી.-11 મિની કમ્પ્યુટર માટે બનાવવામાં આવી હતી. પ્રોગ્રામિંગ ભાષાના નિવેદનો કાં તો સીધા આદેશ દુભાષિયામાં ટાઇપ કરી શકાય છે, અથવા ટેક્સ્ટ એડિટરમાં દાખલ કરી શકાય છે, ફાઇલમાં સાચવી શકાય છે, અને પછી ફાઇલમાંથી આદેશ દુભાષિયામાં લોડ કરી શકાય છે. લીટી દાખલ થયા પછી તરત જ વપરાશકર્તાને સ્રોત કોડમાં ભૂલોની જાણ કરવામાં આવી હતી. "સેવ" આદેશનો ઉપયોગ કરીને પ્રોગ્રામ્સ સ્રોત ફાઇલ તરીકે સંગ્રહિત કરવામાં આવ્યા હતા. તેને "કોમ્પાઇલ" આદેશનો ઉપયોગ કરીને બિન-સંપાદનક્ષમ દ્વિસંગી ફાઇલમાં "સંકલિત" કરી શકાય છે. આ આદેશ સાચા મશીન લેંગ્વેજ પ્રોગ્રામ્સનું ઉત્પાદન કરતો ન હતો, પરંતુ "ટોકન્સ" તરીકે ઓળખાતો બાઈટ કોડ હતો. ટોકન્સનું અર્થઘટન અમલ પર કરવામાં આવ્યું હતું, જે વધુ આધુનિક જાવાની જેમ જ હતું. 1 થી 32767 સુધીના પૂર્ણાંકો સાથે શરૂ થતા આદેશ દુભાષિયામાં પ્રોગ્રામ્સ દાખલ કરવામાં આવ્યા હતા. રેખા ફીડ અક્ષરનો ઉપયોગ કરીને રેખાઓને બહુવિધ રેખાઓ પર ચાલુ રાખી શકાય છે. સ્રોત ફાઇલના બાહ્ય સંપાદનની સરળતા માટે, બેઝિક-પ્લસની પછીની આવૃત્તિઓએ પણ & અક્ષરને રેખા-સાતત્ય અક્ષર તરીકે મંજૂરી આપી હતી. નિવેદન વિભાજક તરીકે ઉપયોગ કરીને એક જ લીટી પર બહુવિધ નિવેદનો મૂકી શકાય છે. વર્ચ્યુઅલ મેમરી (આર. એસ. ટી. એસ./ઇ.) ધરાવતી પી. ડી. પી.-11 પ્રણાલીઓ માટે સરનામાની જગ્યા લગભગ 64 કે. બી. સુધી મર્યાદિત હતી. બેઝિક-પ્લસ સાથે, આનો લગભગ અડધો ભાગ સંયુક્ત આદેશ દુભાષિયો અને રન-ટાઇમ લાઇબ્રેરી દ્વારા ઉપયોગમાં લેવાય છે. આ વપરાશકર્તા કાર્યક્રમો લગભગ 32 KB મેમરી સુધી મર્યાદિત કરે છે. જૂની આર. એસ. ટી. એસ.-11 પ્રણાલીઓમાં વર્ચ્યુઅલ મેમરીનો અભાવ હતો, તેથી આર. એસ. ટી. એસ. અને બેઝિક-પ્લસે તેમનો હિસ્સો સંભાળ્યા પછી વપરાશકર્તા પ્રોગ્રામને ભૌતિક મેમરીમાંથી જે બાકી હતું તેમાં ફિટ થવું પડ્યું હતું. ઉદાહરણ તરીકે, 32K ભૌતિક મેમરી સાથે PDP-11/35 પર, RSTS-11 V04B-17 ચલાવતા, વપરાશકર્તા કાર્યક્રમો 7 KB સુધી મર્યાદિત હતા. "ચેઇન" સૂચનાનો ઉપયોગ કરીને મોટા કાર્યક્રમોને વિવિધ ભાગોમાં વિભાજિત કરી શકાય છે. પ્રોગ્રામ્સ ગૌણ પ્રોગ્રામમાં ચોક્કસ લાઇન નંબરો સાથે સાંકળ કરી શકે છે. કોર કોમન તરીકે ઓળખાતા વહેંચાયેલ મેમરી વિભાગનો ઉપયોગ પણ કાર્યક્રમોને જરૂરિયાત મુજબ એકબીજા વચ્ચે ડેટા પસાર કરવાની મંજૂરી આપે છે; ડિસ્ક ફાઇલોનો પણ ઉપયોગ કરી શકાય છે પરંતુ તે ધીમી હતી. દુભાષિયામાં કચરો એકત્ર કરતા મેમરી મેનેજરનો સમાવેશ થતો હતો, જેનો ઉપયોગ સ્ટ્રિંગ ડેટા અને બાઈટ-કોડ બંને માટે થાય છે. ચાલી રહેલા કાર્યક્રમને વિક્ષેપિત કરી શકાય છે, ચલની તપાસ કરી શકાય છે અને તેમાં ફેરફાર કરી શકાય છે, અને પછી ફરી શરૂ કરી શકાય છે. અન્ય ઉચ્ચ-સ્તરની ભાષાઓમાં ઉપયોગમાં લેવાતી ઘણી નિયંત્રણ રચનાઓ બેઝિક-પ્લસમાં અસ્તિત્વમાં હતી, જેમાં WHILE અને UNTILનો સમાવેશ થાય છે. ભાષાએ એક જ લીટી પર શરતી સંશોધકોના ઉપયોગને પણ ટેકો આપ્યો હતો. ઉદાહરણ તરીકે, જ્યાં સુધી હું 10 કરતા ઓછો ન હોઉં ત્યાં સુધી "I" નું મૂલ્ય "I" રેખા છાપશે. બેઝિક પ્લસ 2 બેઝિક પ્લસ 2 (બી. પી. 2 અથવા બેઝિક-પ્લસ-2) પાછળથી ડી. ઈ. સી. દ્વારા વધારાની સુવિધાઓ ઉમેરવા અને કામગીરી વધારવા માટે વિકસાવવામાં આવી હતી. તે થ્રેડેડ કોડમાં સાચા સંકલનનો ઉપયોગ કરે છે, અને તેનું આઉટપુટ મશીન લેંગ્વેજ ઓબ્જેક્ટ ફાઇલોમાં લખે છે. આ સિસ્ટમ પરની અન્ય ઓબ્જેક્ટ ફાઇલો સાથે સુસંગત હતી, અને પુસ્તકાલયોમાં એસેમ્બલ કરી શકાય છે. એક લિંકર (ટીકેબી ટાસ્કબિલ્ડર) એ પછી તેમની પાસેથી એક્ઝેક્યુટેબલ ફાઇલો બનાવી. ટીકેબીએ ઓવરલેને પણ ટેકો આપ્યો હતો; આ વ્યક્તિગત દિનચર્યાઓને જરૂરિયાત મુજબ મુખ્ય મેમરી જગ્યામાં અદલાબદલી કરવાની મંજૂરી આપે છે. બી. પી. 2 કાર્યક્રમો આર. એસ. એક્સ.-11 અથવા આર. એસ. ટી. એસ./ઇ. ની આર. એસ. એક્સ. રન ટાઇમ સિસ્ટમ હેઠળ ચાલતા હતા. આ આરટીએસ વપરાશકર્તાની સરનામાની જગ્યાના માત્ર 8કેબી (પછીથી, 2કેબી) પર કબજો કરે છે, જે વપરાશકર્તાના પ્રોગ્રામ માટે 56કેબી છોડી દે છે. આ બે પરિબળોએ વ્યક્તિગત બી. પી. 2 કાર્યક્રમોને બેઝિક-પ્લસ કાર્યક્રમો કરતાં ઘણા મોટા હોવાની મંજૂરી આપી હતી, જે ઘણીવાર ચેઇનિંગની જરૂરિયાતને દૂર કરે છે. બેઝિક-પ્લસ (જે ફક્ત આર. એસ. ટી. એસ.-11 પર ઉપલબ્ધ હતું) થી વિપરીત, બી. પી. 2 એ આર. એસ. એક્સ.-11 ઓપરેટિંગ સિસ્ટમ પર પણ ઉપયોગ કરવાની મંજૂરી આપી હતી. વેક્સ બેઝિક અને ડીઇસી બેઝિક વેક્સ મિનીકમ્પ્યુટરની રચના સાથે, ડીઇસીએ નવી વીએમએસ ઓપરેટિંગ સિસ્ટમમાં બેઝિક-પ્લસ-2 પોર્ટ કર્યું, અને તેને વેક્સ બેઝિક નામ આપ્યું. વેક્સ બેઝિકે પ્રમાણભૂત વી. એમ. એસ. કૉલિંગ ધોરણોનો ઉપયોગ કર્યો હતો, તેથી વેક્સ બેઝિક દ્વારા ઉત્પાદિત ઓબ્જેક્ટ કોડને અન્ય કોઈપણ વી. એમ. એસ. ભાષાઓ દ્વારા ઉત્પાદિત ઓબ્જેક્ટ કોડ સાથે જોડી શકાય છે. બેઝિક પ્લસ 2 માટેનો સ્રોત કોડ સામાન્ય રીતે વેક્સ બેઝિક પર મોટા ફેરફારો વિના ચાલશે. જ્યારે ડીઇસીએ તેમનું આલ્ફા માઇક્રોપ્રોસેસર બનાવ્યું, ત્યારે તેમાં વીએમએસ મૂકવામાં આવ્યું અને તેનું નામ બદલીને ઓપનવીએમએસ રાખવામાં આવ્યું. એ જ રીતે વેક્સ બેઝિકને આલ્ફામાં પોર્ટ કરવામાં આવ્યું હતું અને તેનું નામ બદલીને DEC બેઝિક રાખવામાં આવ્યું હતું. બેઝિક દુભાષિયોને આ તબક્કે કાયમી ધોરણે પડતો મૂકવામાં આવ્યો હતો, જેનો અર્થ એ થયો કે DEC બેઝિક પ્રોગ્રામ્સ માત્ર ઓપનવીએમએસ એક્ઝેક્યુટેબલ તરીકે ચલાવી શકાય છે, જે સંકલન પછી લિંક દ્વારા ઉત્પન્ન થાય છે. કોમ્પેક, એચપી અને વીએસઆઈ જ્યારે ડીઇસીને કોમ્પેક દ્વારા 1997/98 માં ખરીદવામાં આવી ત્યારે ઉત્પાદનોનું નામ બદલીને ઓપનવીએમએસ વીએએક્સ માટે કોમ્પેક બેઝિક અને ઓપનવીએમએસ આલ્ફા માટે કોમ્પેક બેઝિક રાખવામાં આવ્યું હતું. તેવી જ રીતે, જ્યારે કોમ્પેકનું એચપી સાથે 2001/02 માં વિલિનીકરણ થયું, ત્યારે ઉત્પાદનોનું નામ બદલીને વીએએક્સ પર ઓપનવીએમએસ માટે એચપી બેઝિક અને આલ્ફાસર્વર પર ઓપનવીએમએસ માટે એચપી બેઝિક રાખવામાં આવ્યું. એચપીએ બાદમાં ઇન્ટેલના આઇટેનીયમ પ્રોસેસર્સ પર આધારિત તેમના ઇન્ટિગ્રિટી સર્વર પ્લેટફોર્મ્સ માટે ઇન્ટિગ્રિટી પર ઓપનવીએમએસ માટે એચપી બેઝિક રજૂ કર્યું હતું. 2014ના મધ્યમાં, એચપીએ સમગ્ર ઓપનવીએમએસ ઇકોસિસ્ટમને વીએસઆઈને વેચી દીધી જેણે ઉત્પાદનનું નામ બદલીને ઓપનવીએમએસ માટે વીએસઆઈ બેઝિક રાખ્યું. નમૂના કોડ વી. એસ. આઈ. બેઝિક એ બેઝિકનો એક સંરચિત પ્રકાર છે જેમાં પંક્તિ સંખ્યાઓ વૈકલ્પિક છે, અને ભાષા સબ અને કાર્યો બંનેને ટેકો આપે છે. હેલો, વર્લ્ડ પ્રિન્ટ "હેલો, વર્લ્ડ!" સેલ્સિયસ થી ફેરનહીટ રૂપાંતર કાર્ય વાસ્તવિક થી ફેરનહીટ (વાસ્તવિક સેલ્સિયસ) થી ફેરનહીટ = (સેલ્સિયસ * 1.8) + 32 અંતિમ કાર્ય બાહ્ય વાસ્તવિક કાર્યથી ફેરનહીટ (વાસ્તવિક) વાસ્તવિક તાપમાન સેલ્સિયસ જાહેર કરે છે જ્યારે પ્રિન્ટમાં ભૂલ થાય છે "સેલ્સિયસમાં તાપમાન દાખલ કરો"; ઇનપુટ x તાપમાન સેલ્સિયસ = વાસ્તવિક (x) પ્રિન્ટનો ઉપયોગ કરો "ભૂલઃ માન્ય આંકડાકીય મૂલ્ય દાખલ કરો, કૃપા કરીને". જ્યારે પ્રિન્ટ થાય ત્યારે સમાપ્ત થાય છે "તાપમાન ડિગ્રી ફેરનહીટમાં છે"; થી _ ફેરનહીટ (ટેમ્પ _ સેલ્સિયસ) અંત સંદર્ભો બાહ્ય લિંક્સ સત્તાવાર બેઝિક દસ્તાવેજીકરણ એચપી પર એચપી બેઝિક માટે ઓપનવીએમએસ "સ્રોત કોડ ડેમો અને ઉદાહરણો" ઉદાહરણ તરીકે બેઝિક કોડ સાથે લેખો ઓપનવીએમએસ સોફ્ટવેર બેઝિક કમ્પાઇલર્સ બેઝિક પ્રોગ્રામિંગ લેંગ્વેજ ફેમિલી