સ્વર્ગની ભાષા. ભાષાઓના મિશ્રણ વિશે દંતકથાઓ

શાળાઓમાં, અલ્ગોરિધમાઇઝેશનની મૂળભૂત બાબતોનો અભ્યાસ કરવા માટે, કહેવાતા. શાળા અલ્ગોરિધમિક ભાષા (શૈક્ષણિક અલ્ગોરિધમિક ભાષા), રશિયનમાં એવા શબ્દોનો ઉપયોગ કરવો જે શાળાના બાળકો માટે સમજી શકાય. મોટાભાગની પ્રોગ્રામિંગ ભાષાઓથી વિપરીત, અલ્ગોરિધમિક ભાષા કમ્પ્યુટર આર્કિટેક્ચર સાથે જોડાયેલી નથી અને તેમાં મશીનની ડિઝાઇન સંબંધિત વિગતો શામેલ નથી.

ઉદાહરણો

અલ્ગોરિધમિક ભાષામાં અલ્ગોરિધમ સામાન્ય રીતે ફોર્મમાં લખવામાં આવે છે:

algઅલ્ગોરિધમનું નામ (દલીલો અને પરિણામો) આપેલઅલ્ગોરિધમનો લાગુ પાડવા માટેની શરતો જરૂરીઅલ્ગોરિધમનો હેતુ શરૂઆતમધ્યવર્તી જથ્થાઓનું વર્ણન | આદેશોનો ક્રમ (એલ્ગોરિધમનો મુખ્ય ભાગ) કોન

અલ્ગોરિધમ રેકોર્ડમાં કીવર્ડ્સસામાન્ય રીતે રેખાંકિત અથવા બોલ્ડમાં. લોજિકલ બ્લોક્સને હાઇલાઇટ કરવા માટે, ઇન્ડેન્ટેશનનો ઉપયોગ કરવામાં આવ્યો હતો, અને બ્લોકની શરૂઆત અને અંતના જોડીવાળા શબ્દો ઊભી પટ્ટી દ્વારા જોડાયેલા હતા.

ચોરસના સરવાળાની ગણતરીનું ઉદાહરણ:

algચોરસનો સરવાળો ( arg અકબંધ n, res અકબંધએસ) આપેલ| n > 0 જરૂરી| S = 1*1 + 2*2 + 3*3 + … + n*n શરૂઆત અકબંધ i | ઇનપુટ n; S:=0 | nc i માટે 1 થી n | | S:= S + i * i | kts | નિષ્કર્ષ"એસ = ", એસ કોન

ઇ-વર્કશોપ

મજબૂતીકરણ માટે સૈદ્ધાંતિક અભ્યાસઅલ્ગોરિધમિક ભાષામાં પ્રોગ્રામિંગ, મોસ્કો સ્ટેટ યુનિવર્સિટીના મિકેનિક્સ અને ગણિતના ફેકલ્ટીના નિષ્ણાતોએ 1985 માં સંપાદક-કમ્પાઇલર બનાવ્યું. "ઇ-વર્કશોપ"("E" - એર્શોવના માનમાં), તમને અલ્ગોરિધમિક ભાષામાં પ્રોગ્રામ દાખલ કરવા, સંપાદિત કરવા અને ચલાવવાની મંજૂરી આપે છે.

1986 માં, "ઇ-વર્કશોપ" માટે શૈક્ષણિક વિશ્વ (કર્ફોમર્સ) નો સમૂહ બહાર પાડવામાં આવ્યો હતો: "રોબોટ", "ડ્રાફ્ટ્સમેન", "બે પગવાળું", "ઓલ-ટેરેન વ્હીકલ", જે તમને સરળ રીતે રજૂ કરવાની મંજૂરી આપે છે. અલ્ગોરિધમનો ખ્યાલ. "ઇ-વર્કશોપ" કોમ્પ્યુટર પર લાગુ કરવામાં આવી હતી: યામાહા, કોર્વેટ, યુકેએનસી અને વ્યાપક બની હતી.

આ પ્રોગ્રામિંગ ભાષાને સતત શુદ્ધ કરવામાં આવી રહી હતી અને 1990 માં પાઠ્યપુસ્તકમાં "ઇ-વર્કશોપ" ના પછીના સંસ્કરણનું વર્ણન દેખાયું. પ્રોગ્રામિંગ સિસ્ટમ "કુમીર" ("સેટ લર્નિંગ વર્લ્ડસ"), આ પાઠ્યપુસ્તકને ટેકો આપતા, 1990 માં InfoMir એન્ટરપ્રાઇઝ દ્વારા પ્રકાશિત કરવામાં આવ્યું હતું. આ સિસ્ટમની ભાષાને "આઇડોલ" પણ કહેવામાં આવે છે.

1995 માં, રશિયન ફેડરેશનના શિક્ષણ મંત્રાલય દ્વારા "કમ્પ્યુટર સાયન્સ અને ફંડામેન્ટલ્સ ઓફ કોર્સ" માટે મુખ્ય શૈક્ષણિક સામગ્રી તરીકે "કુમિર" ની ભલામણ કરવામાં આવી હતી. કમ્પ્યુટર ટેકનોલોજી"એ.જી. કુશ્નિરેન્કો, જી.વી. લેબેદેવ અને આર.એ. સ્વોરેન દ્વારા પાઠયપુસ્તક પર આધારિત.

.

જો કે, એ નોંધવું જોઇએ કે અલ્ગોરિધમિક ભાષા, તેને કોમ્પ્યુટર આર્કિટેક્ચર સાથે સીધી રીતે જોડતી વિગતોની ગેરહાજરીમાં, તેમ છતાં, અલ્ગોલોનો સંદર્ભ આપે છે. - જેવી ભાષાઓ, સ્પષ્ટપણે વિદ્યાર્થીઓને વોન ન્યુમેન મશીન આર્કિટેક્ચર પર આધાર રાખવાનું શીખવે છે. (વોન ન્યુમેન આર્કિટેક્ચર એ વધુનું વ્યવહારુ અમલીકરણ છે પ્રારંભિક વિચારટ્યુરિંગ મશીન કહેવાય છે. ટ્યુરિંગના વિચાર ઉપરાંત, અન્ય વિચારો પણ છે. તેમાંના સૌથી લોકપ્રિયને લેમ્બડા કેલ્ક્યુલસ કહેવામાં આવે છે: એલોન્ઝો ચર્ચે તેના પર કામ કર્યું. લિસ્પ મશીન એ એક આર્કિટેક્ચર છે જે લેમ્બડા કેલ્ક્યુલસ પર આધારિત છે.)

લિંક્સ

  • એ.પી. એર્શોવ. કોમ્પ્યુટર સાયન્સ અને કોમ્પ્યુટર ટેકનોલોજીના ફંડામેન્ટલ્સ પર શાળાના અભ્યાસક્રમમાં અલ્ગોરિધમિક ભાષા. 05/07/1985
  • રશિયન પ્રોગ્રામિંગ ભાષાઓ અને વિકાસ સાધનો પર ફોરમ

વિકિમીડિયા ફાઉન્ડેશન.

2010.

    અન્ય શબ્દકોશોમાં "રશિયન અલ્ગોરિધમિક ભાષા" શું છે તે જુઓ: અલ્ગોરિધમિક ભાષાઔપચારિક ભાષા

    , એલ્ગોરિધમ્સ લખવા, અમલ કરવા અથવા અભ્યાસ કરવા માટે વપરાય છે. દરેક પ્રોગ્રામિંગ ભાષા એ અલ્ગોરિધમિક ભાષા છે, પરંતુ દરેક અલ્ગોરિધમિક ભાષા ભાષા તરીકે ઉપયોગ કરવા માટે યોગ્ય નથી... ... વિકિપીડિયા

    આ શબ્દના અન્ય અર્થો છે, જુઓ ડ્રેગન (અર્થો). ડ્રેગન ભાષાના ડ્રેગન ડાયાગ્રામ ડ્રેગન (દૃશ્યતા પ્રદાન કરતી મૈત્રીપૂર્ણ રશિયન અલ્ગોરિધમિક ભાષા) વિઝ્યુઅલમાં અલ્ગોરિધમના બ્લોક ડાયાગ્રામનું ઉદાહરણ... ... વિકિપીડિયા

    આ શબ્દના અન્ય અર્થો છે, અલ્ગોરિધમિક ભાષા જુઓ. શૈક્ષણિક અલ્ગોરિધમિક ભાષા એ ઔપચારિક ભાષા છે જેનો ઉપયોગ અલ્ગોરિધમ્સ લખવા, અમલ કરવા અને અભ્યાસ કરવા માટે થાય છે. મોટાભાગની પ્રોગ્રામિંગ ભાષાઓથી વિપરીત, તે ... વિકિપીડિયા સાથે જોડાયેલું નથી

    અલ્ગોરિધમિક ભાષા (રશિયન અલ્ગોરિધમિક ભાષા, RAYA) એ એક પ્રોગ્રામિંગ ભાષા છે જેનો ઉપયોગ અલ્ગોરિધમ્સ લખવા અને અભ્યાસ કરવા માટે થાય છે. શાળાઓમાં કમ્પ્યુટર વિજ્ઞાનનો અભ્યાસ કરતી વખતે, કહેવાતા અલ્ગોરિધમનો ઉપયોગ અલ્ગોરિધમાઇઝેશનની મૂળભૂત બાબતોનો અભ્યાસ કરવા માટે થાય છે. શાળા અલ્ગોરિધમિક... ... વિકિપીડિયા

    શૈક્ષણિક પ્રોગ્રામિંગ લેંગ્વેજ એ પ્રોગ્રામિંગ ભાષા છે જે નિષ્ણાતોને પ્રોગ્રામિંગ શીખવવા માટે રચાયેલ છે. આવી ભાષાએ મુખ્ય જરૂરિયાત પૂરી કરવી આવશ્યક છે: સરળતા. તે જેટલું સરળ છે, તેટલી ઝડપથી શિખાઉ માણસ તેને માસ્ટર કરશે. આવી શક્યતાઓ... ... વિકિપીડિયા ડ્રેગન ભાષાના ડ્રેગન ડાયાગ્રામ ડ્રેગન (મૈત્રીપૂર્ણ રશિયન અલ્ગોરિધમિક ભાષા જે દૃશ્યતા પ્રદાન કરે છે) માં અલ્ગોરિધમના બ્લોક ડાયાગ્રામનું ઉદાહરણઅવકાશ કાર્યક્રમ બુરાન. વિકાસઆ ભાષાની

    આ શબ્દનો અન્ય અર્થ છે, સ્યુડોકોડ જુઓ. સ્યુડોકોડ એ અલ્ગોરિધમ્સનું વર્ણન કરવા માટે, અનિવાર્ય પ્રોગ્રામિંગ ભાષાઓના કીવર્ડ્સનો ઉપયોગ કરવા માટે, પરંતુ બિનમહત્વપૂર્ણ વિગતોને અવગણવા અને ... વિકિપીડિયા માટે કોમ્પેક્ટ (ઘણીવાર અનૌપચારિક) ભાષા છે.

18મી ડિસેમ્બર એ વિશ્વ અરબી ભાષા દિવસ છે. આ રજાની સ્થાપના 2010માં સંયુક્ત રાષ્ટ્ર દ્વારા કરવામાં આવી હતી અને તે છ પૈકીની એક છે સત્તાવાર ભાષાઓયુએન. નવીનતમ માહિતી અનુસાર, વિશ્વમાં 300 મિલિયન લોકો છે જેઓ અરબી અને તેની બોલીઓ બોલે છે. વધુમાં, 240 મિલિયન લોકો માટે તે મૂળ છે. અરબી ભાષા અને ઇસ્લામ ધર્મ અતૂટ રીતે જોડાયેલા છે. એક બીજા વિના અકલ્પ્ય છે, કારણ કે દોઢ સહસ્ત્રાબ્દીથી, વિશ્વના મુસ્લિમો દિવસમાં પાંચ વખત અરબીમાં પ્રાર્થના વાંચી રહ્યા છે. તેના પર પવિત્ર કુરાન અવતરિત થયું, અને પયગંબર મુહમ્મદ (સલ્લલ્લાહુ અલયહિ વ.) બોલ્યા.

ગ્રોઝની પાદરીઓએ તેમની પોતાની રીતે નોંધપાત્ર તારીખની ઉજવણી કરી. "ચેચન્યાનું હૃદય" મસ્જિદના ઇમામ, મેગોમેડ દાદખાયેવ, શહેરના રહેવાસીઓને સંબોધિત કર્યા. તેમણે મુસ્લિમના જીવનમાં અરબી ભાષાની ભૂમિકા સમજાવી:

અરબી બોલ્યા વિના વ્યક્તિ ઇસ્લામને સમજી શકતો નથી. તેથી, આ ભાષા પ્રાચીન સમયથી મુસ્લિમોમાં ખૂબ આદરણીય છે. પયગંબર (સ.અ.વ.) ના ધર્મનો અભ્યાસ કરવા માટેની આવશ્યક શરત વિશ્લેષણ છે અરબી પાઠો, જેમાંથી લગભગ તમામ લાંબા સમય પહેલા લખવામાં આવ્યા હતા. આધુનિક અરબીમાં 12 મિલિયનથી વધુ શબ્દો છે (સરખામણી માટે, રશિયનમાં 131,000 અને અંગ્રેજીમાં લગભગ એક મિલિયન છે...). તે ખૂબ જ સમૃદ્ધ છે અને જટિલ ભાષા. જ્યારે મેં સીરિયાની એક ઇસ્લામિક યુનિવર્સિટીમાં અભ્યાસ કર્યો, ત્યારે અમારા શિક્ષક, ફિલોલોજિસ્ટ, અમને નીચેનું ઉદાહરણ આપ્યું: અરબીમાં, ફક્ત એક શબ્દ "ઉંટ" માટે સમાનાર્થીની સંખ્યા છ હજાર સુધી પહોંચે છે! તેનું વ્યાકરણ પણ ખૂબ જટિલ અને બહુપક્ષીય છે. તેના અભ્યાસ માટે નોંધપાત્ર બૌદ્ધિક અને જરૂરી છે સ્વૈચ્છિક પ્રયાસો. તેથી, કુરાન અને પ્રોફેટ (સ.) ના હદીસના દુભાષિયાઓમાં, કોઈ એમેચ્યોર નથી. અર્થ સમજવો લગભગ અશક્ય છે પવિત્ર લખાણ, નક્કર અરબી શબ્દભંડોળ અને આ ભાષાના વાક્યરચના, સિમેન્ટિક્સ અને ધ્વન્યાત્મક જ્ઞાન વિના. કેટલીકવાર તમે એવા લોકોને મળો છો જેઓ પોતાને કુરાનમાં નિષ્ણાત કહે છે. તેઓ સર્વશક્તિમાનના સંદેશમાંથી અવતરણ કરે છે અને લોકોને સલાહ આપે છે. પરંતુ જો તમે તેમને જ્ઞાનના સ્ત્રોત વિશે પૂછો, તો તમને જવાબ મળશે: "મેં અનુવાદ વાંચ્યો છે." આવા લોકો ઇસ્લામ માટે ખૂબ જ ખતરનાક છે, કારણ કે, તેઓ શું કરી રહ્યા છે તે જાણ્યા વિના, તેઓ સર્વશક્તિમાનના સંદેશના અર્થઘટનમાં મૂંઝવણ અને અચોક્કસતા રજૂ કરવામાં સક્ષમ છે. નીચેની શિક્ષણ પદ્ધતિ ઇસ્લામિક શૈક્ષણિક સંસ્થાઓમાં વ્યાપકપણે પ્રેક્ટિસ કરવામાં આવે છે: ઘણા વર્ષોથી, વિદ્યાર્થીઓ પ્રારંભિક અભ્યાસક્રમોફક્ત અરબી ફિલોલોજીનો અભ્યાસ કરો. અને તેઓ જરૂરી જથ્થાની સામગ્રીમાં પૂરતી નિપુણતા પ્રાપ્ત કર્યા પછી જ તેઓ કુરાનિક ગ્રંથોના અભ્યાસમાં પ્રવેશ મેળવે છે. આમ, અરબી- ઇસ્લામ વિશેની માહિતીમાં નિપુણતા મેળવવા માટે એક પ્રકારનું સ્પ્રિંગબોર્ડ. તદુપરાંત, અરબી એ ભાષા છે જે સ્વર્ગના રહેવાસીઓ બોલશે. અલ્લાહનો મહિમા કે તેણે આપણને મુસ્લિમ બનાવ્યા! આપણી ઇચ્છાને સમજવા માટે આપણને કેટલી સુંદર, સમૃદ્ધ અરબી ભાષા આપી છે!

RAY ડાયલોગ સિસ્ટમની અનુકૂલનશીલ ભાષા વિકસાવી ડીએસએસપી પ્રોગ્રામિંગમોસ્કો રાજ્ય યુનિવર્સિટીકોમ્પ્યુટેશનલ મેથેમેટિક્સ અને સાયબરનેટિક્સ ફેકલ્ટી, વી.બી. ઝાખારોવ, એસ.એ. સિદોરોવ, એન.એ. ચાનીશેવ, 1987.

PARADISE ની ભાષાનું સામાન્ય વર્ણન

ભાષાના વિકાસનો હેતુ અને હેતુ

RAYA (વિકસિત અનુકૂલનશીલ ભાષા) એ ડાયલોગ સ્ટ્રક્ચર્ડ પ્રોગ્રામિંગ સિસ્ટમ DSSP ની મૂળ ભાષા છે. મૂળભૂત - એટલે કે તે વિકાસ (વિસ્તરણ, મજબૂતીકરણ) દ્વારા DSSP માં હાથ ધરવામાં આવતા તમામ આગળના બાંધકામો માટેનો આધાર છે. આધાર ભાષાઅને, કદાચ, અનુકૂલન આ રીતે બનાવેલ છે ભાષાકીય અર્થચોક્કસ એપ્લિકેશન માટે. કહેવાતી ભાષાઓથી વિપરીત ઉચ્ચ સ્તર,RAY તૈયાર ડેટા પ્રકારો અને કામગીરી પ્રદાન કરતું નથી, પરંતુ જરૂરી પ્રકારોને અસરકારક રીતે વ્યાખ્યાયિત કરવા માટે માત્ર તત્વો અને આદિમ પ્રદાન કરે છે. ઉદાહરણ તરીકે, મૂળ ડેટા ફોર્મેટ 8-બીટ બાઈટ, 16-બીટ શબ્દ અને 32-બીટ લોંગવર્ડ છે, જે તેમના પર પૂર્ણાંકો, બુલિયન વેક્ટર્સ, કેરેક્ટર કોડ્સ, બુલિયન, ડેટા અને પ્રક્રિયા પોઈન્ટર્સ તરીકે કરવામાં આવતી કામગીરીના આધારે અર્થઘટન કરવામાં આવે છે. આ કિસ્સામાં, એક તરફ, બાઇટ્સ અને શબ્દોના વ્યક્તિગત બિટ્સની હેરફેર કરવી અને બીજી તરફ, સંયુક્ત ડેટા એકમો (બહુવિધ લંબાઈના શબ્દો, વેક્ટર, એરે, ટેક્સ્ટની રેખાઓ વગેરે) બનાવવાનું શક્ય છે. , તેમના માટે યોગ્ય કામગીરીની એક અથવા બીજી અર્થઘટન પરિચય સેટ કરો. હા, તેઓ દાખલ કરી શકાય છે વાસ્તવિક સંખ્યાઓજરૂરી લંબાઈ અને મૂલ્યોની શ્રેણી, જટિલ સંખ્યાઓઅને અન્ય ઑબ્જેક્ટ્સ, જેના પર ધ્યાન કેન્દ્રિત ભાષાના સંસ્કરણ સાથે આ એપ્લિકેશન, આ એપ્લિકેશનની લાક્ષણિકતાઓ અને માધ્યમોનો સમાવેશ કરશે અને જે તેની સાથે સંબંધિત નથી તે શામેલ કરશે નહીં - ભાષા એપ્લિકેશનમાં અનુકૂલિત (અનુકૂલિત) કરવામાં આવશે. ડીએસએસપીના વિકાસનો હેતુ વ્યાપકપણે સુલભ બનાવવાનો હતો અને અસરકારક ઉપાયમાઇક્રોકોમ્પ્યુટર પ્રોગ્રામિંગ, એટલે કે. માઇક્રોપ્રોસેસર્સ પર બનેલા કમ્પ્યુટર્સ. માઇક્રોપ્રોસેસર આર્કિટેક્ચરની આવશ્યક વિશેષતા એ ડેટા પ્રકારો અને કામગીરીની પ્રાથમિક પ્રકૃતિ છે, જેનો અર્થ છે, એક તરફ, સાર્વત્રિકતા, અને બીજી તરફ, શ્રમ-સઘન પ્રોગ્રામિંગ. તેમની વર્સેટિલિટીને કારણે, માઇક્રોપ્રોસેસર્સ અને તેમના આધારે બનાવેલા માઇક્રોકોમ્પ્યુટર્સ પાસે સંભવિતપણે અમર્યાદિત એપ્લિકેશન શક્યતાઓ છે. જોકે વ્યવહારુ અમલીકરણઆ શક્યતાઓ મુખ્યત્વે જરૂરી એપ્લિકેશન પ્રોગ્રામ્સ વિકસાવવાની જટિલતા દ્વારા મર્યાદિત છે. વધુમાં, સંતોષકારક એપ્લિકેશન કાર્યક્રમોસંબંધિત એપ્લિકેશનોની વિશિષ્ટતાઓના ઊંડા અને સૂક્ષ્મ જ્ઞાન સાથે જ બનાવી શકાય છે, એટલે કે. તેઓ ફક્ત પ્રોગ્રામરો દ્વારા જ નહીં, પરંતુ ચોક્કસ ક્ષેત્રના ઉચ્ચ લાયકાત ધરાવતા નિષ્ણાતો દ્વારા વિકસાવવા જોઈએ. તેથી, પ્રોગ્રામિંગ સિસ્ટમ જ નહીં મોટા પ્રમાણમાંપ્રોગ્રામિંગ કાર્યની ઉત્પાદકતામાં વધારો કરો, પરંતુ તે એટલું સરળ પણ છે કે બિન-વ્યાવસાયિક પ્રોગ્રામરો દ્વારા તેનો અસરકારક રીતે ઉપયોગ કરી શકાય.

આ સમસ્યાનો આમૂલ ઉકેલ એ કમ્પ્યુટર આર્કિટેક્ચરનું નોંધપાત્ર સરળીકરણ હોવાનું જણાય છે. પરંતુ, કમનસીબે, માઇક્રોકોમ્પ્યુટરનું આર્કિટેક્ચર ડાયમેટ્રિકલી વિરુદ્ધ દિશામાં વિકસી રહ્યું છે - વધતી જટીલતા અને અભિજાત્યપણુના માર્ગ સાથે, જેથી એક વ્યાવસાયિક પ્રોગ્રામર માટે માઇક્રોકોમ્પ્યુટર એસેમ્બલી ભાષાને સંપૂર્ણ રીતે માસ્ટર કરવું આજે સરળ નથી. ભાષાઓ સિસ્ટમ પ્રોગ્રામિંગ, જેમ કે C અથવા PL/M, એ પ્રોગ્રામ ડેવલપમેન્ટની શ્રમ તીવ્રતાને અમુક હદ સુધી ઘટાડી છે (જોકે તે પર્યાપ્ત નથી), પરંતુ પ્રોગ્રામિંગ ક્રાફ્ટમાં અનુભવી ન હોય તેવા લોકોને ભાગ્યે જ ભલામણ કરી શકાય છે. વ્યાપકપણે સુલભ ભાષા, અલબત્ત, સરળ અને વધુ પ્રાકૃતિક હોવી જોઈએ, અને પ્રોગ્રામિંગના સાર અને તકનીક વિશે, શક્ય હોય ત્યાં સુધી, રોજિંદા, પરિચિત વિચારો પર આધારિત હોવી જોઈએ.

એસેમ્બલી લેંગ્વેજમાં પ્રોગ્રામિંગની તુલનામાં પ્રોગ્રામ ડેવલપમેન્ટની શ્રમ તીવ્રતામાં સુલભતા અને નોંધપાત્ર ઘટાડા ઉપરાંત, ડીએસએસપીને એસેમ્બલી લેંગ્વેજ જેવી જ ભાષાની સાર્વત્રિકતા, ઉચ્ચ મશીન કાર્યક્ષમતા (એટલે ​​​​કે કોમ્પેક્ટનેસ અને કોડની ઝડપ) જરૂરી હતી. ), બનાવેલ પ્રોગ્રામ્સની ચકાસણીની વિશ્વસનીયતા, અને તેમની જાળવણી અને ફેરફારક્ષમતા, તેમજ સિસ્ટમની ગતિશીલતા (પોર્ટેબિલિટી) અને વિવિધ આર્કિટેક્ચરના મશીનો માટે તેમાં વિકસિત પ્રોગ્રામ્સ.

પ્રક્રિયાગત પ્રોગ્રામિંગ

PARA ભાષામાં પ્રોગ્રામિંગ આવા વ્યાપક પ્રકારો જેવું જ છે માનવ પ્રવૃત્તિઆંતરસંબંધિત ક્રિયાઓ, કાર્ય, પ્રક્રિયાઓનું આયોજન અને આયોજન કરવા અથવા જટિલ ભૌતિક પદાર્થોની રચના - મશીનો, એકમો, માળખાં તરીકે. એક ડિઝાઇનરની જેમ કે જે તેના ઘટકો (બ્લોક, એસેમ્બલી, ભાગો) ને એકત્ર કરીને તેના વિચારને સાકાર કરે છે, પ્રોગ્રામર જરૂરી સંશ્લેષણ કરે છે. જટિલ ક્રિયાભાષા દ્વારા પૂરી પાડવામાં આવેલ તેમાંથી સરળ ક્રિયાઓ. આપણે એમ પણ કહી શકીએ કે પ્રોગ્રામિંગ (ડિઝાઇન)માં નાના અને નાના ઘટકોમાં અમલમાં મુકવામાં આવતા ઑબ્જેક્ટના ક્રમિક વિઘટન (વિઘટન)નો સમાવેશ થાય છે.

PARADISE ની ભાષામાં, મુખ્ય "નિર્માણ" એ એક પ્રક્રિયા છે - નામવાળી ક્રિયા. ભાષા સરળ પ્રક્રિયાઓ (આદિમ) ના મર્યાદિત સમૂહ પર આધારિત છે, જે તેમના પોતાના નામો (નોટેશન્સ) દ્વારા રજૂ થાય છે. ઉદાહરણ તરીકે: + નો અર્થ થાય છે “ઉમેરો”, NEG નો અર્થ થાય છે “ચેન્જ સાઈન”, VCTR એટલે “વેક્ટર બનાવો”. ખાસ કરીને, ત્યાં આદિમ છે: અને; (કોલોન અને અર્ધવિરામ) તમને નવી પ્રક્રિયા દાખલ કરવાની મંજૂરી આપે છે, ઉદાહરણ તરીકે, P નામ સાથે, તેને ફોર્મમાં P1, P2, ..., PN પ્રક્રિયાઓના ક્રમ તરીકે વ્યાખ્યાયિત કરો.

: P P1 P2 ... PN ;

જો પ્રક્રિયા P એ ક્રિયાને રજૂ કરે છે જે બનાવેલ પ્રોગ્રામે હાથ ધરવી જોઈએ, તો PAYA ભાષાના માધ્યમનો ઉપયોગ કરીને આ પ્રોગ્રામનું નિર્માણ P1, P2, ..., PN પ્રક્રિયાઓની ક્રમિક વિગતો સુધી ઘટાડવામાં આવે છે. આનો અર્થ એ છે કે આ દરેક પ્રક્રિયાઓને નાની પ્રક્રિયાઓના ક્રમ દ્વારા વ્યાખ્યાયિત કરવી આવશ્યક છે, જે પછીથી નાની પ્રક્રિયાઓના ક્રમ દ્વારા વ્યાખ્યાયિત કરવામાં આવે છે, અને તેથી જ, જ્યાં સુધી માત્ર આદિમનો સમાવેશ કરતી વ્યાખ્યાઓ પ્રાપ્ત ન થાય ત્યાં સુધી.

આ પ્રકારનો પ્રોગ્રામ કન્સ્ટ્રક્શન, આપેલ ધ્યેયથી શરૂ કરીને અને ધીમે ધીમે મૂળભૂત ભાષા સાધનોના સ્તર સુધી ઉપયોગમાં લેવાતી પ્રક્રિયાઓને તોડીને, ટોપ-ડાઉન પ્રોગ્રામિંગ તરીકે ઓળખાય છે. તે વ્યક્તિગત, સારી રીતે વ્યાખ્યાયિત સમસ્યાઓ ઉકેલવા માટે PARA ભાષામાં પ્રોગ્રામ્સ મેળવવાની મુખ્ય રીતનું પ્રતિનિધિત્વ કરે છે. તેનાથી વિપરીત છે બોટમ-અપ પ્રોગ્રામિંગ - એક ચોક્કસ સમસ્યા વિસ્તાર પર ધ્યાન કેન્દ્રિત કરીને ધીમે ધીમે વિસ્તૃત પ્રક્રિયાઓનું બાંધકામ, સિસ્ટમ ભાષાના મૂળભૂત માધ્યમો પર આધારિત છે. આ રીતે, ભાષાનો વિકાસ થાય છે અને ચોક્કસ એપ્લિકેશન માટે સ્વીકારવામાં આવે છે.

બંને કિસ્સાઓમાં, બનાવેલ પ્રોગ્રામ્સનું સાવચેતીપૂર્વક માળખું આવશ્યક છે: દરેક પ્રોગ્રામ અને પ્રોગ્રામના દરેક ભાગમાં થોડી સંખ્યામાં અલગ ભાગો હોવા જોઈએ, જેમાંથી દરેક કાર્ય કરે છે. ચોક્કસ કાર્યઅને ઑફલાઇન ચકાસણીની મંજૂરી આપે છે. PARA ભાષાના સંદર્ભમાં, આનો અર્થ એ છે કે, ખાસ કરીને, પ્રક્રિયાની વ્યાખ્યાઓ ટૂંકી હોવી જોઈએ: વ્યાખ્યાયિત ક્રમમાં, નિયમ તરીકે, 5-7 કરતાં વધુ શબ્દો ન હોવા જોઈએ. સ્ટ્રક્ચરિંગ એ સુનિશ્ચિત કરે છે કે પ્રોગ્રામ સમજી શકાય તેવું, ચકાસી શકાય તેવું અને સુધારી શકાય તેવું છે અને તેની રચના અને જાળવણીની જટિલતાને નોંધપાત્ર રીતે ઘટાડે છે.

પ્રક્રિયા P ની ઉપરોક્ત ઉદાહરણ વ્યાખ્યા એક સરળ છે. વાસ્તવમાં, વ્યાખ્યાયિત ક્રમમાં સભ્યો તરીકે માત્ર પ્રક્રિયાના નામો જ નહીં, પણ એક કરતાં વધુ શબ્દો ધરાવતા નિવેદનો (આદેશો) પણ હોઈ શકે છે. પ્રક્રિયાનું નામ, જ્યારે અન્ય શબ્દો સાથે સંયોજનની બહાર વપરાય છે, તે તેના દ્વારા નિયુક્ત પ્રક્રિયાને ચલાવવા માટેનો આદેશ છે. પ્રક્રિયાના નામનો ક્રમ સ્પષ્ટ કરે છે કે આ પ્રક્રિયાઓ તે ક્રમમાં ચલાવવામાં આવે છે જેમાં તેમના નામ એક પછી એક દેખાય છે (રેખીય ક્રમમાં). અમલના અન્ય ક્રમનો ઉલ્લેખ કરવા માટે, RAYA ખાસ શબ્દો (ઉપસર્ગ) પૂરા પાડે છે જે તેમની સાથે સંયોજનમાં નામવાળી પ્રક્રિયાઓના અમલીકરણને સૂચવે છે, તેના આધારે ઉલ્લેખિત સ્થિતિ, તેમજ પ્રક્રિયાના પુનરાવર્તિત (ચક્રીય) અમલ.

ઉદાહરણ તરીકે, રેખીય ક્રમ P0 P1 પ્રક્રિયા P0 ને અમલમાં મૂકવાનું કારણ બને છે અને પછી પ્રક્રિયા P1 ચલાવવામાં આવે છે. જો પ્રક્રિયા P1 ને હંમેશા એક્ઝિક્યુટ કરવાની જરૂર હોતી નથી, પરંતુ માત્ર એ શરત હેઠળ કે P0 ચલાવવાના પરિણામે હકારાત્મક સંખ્યા પ્રાપ્ત થાય છે, તો P1 ને બદલે, શરત અનુસાર અમલ આદેશ લખો: IF+ P1, એટલે કે. P0 P1 ને બદલે P0 IF+ P1 હશે. RAYA માં શરતી ઉપસર્ગોનો સમૂહ શામેલ છે જે તમને શરત દ્વારા અમલીકરણને અસરકારક રીતે વ્યક્ત કરવા દે છે, તેમજ બે, ત્રણ અથવા વધુ પ્રક્રિયાઓની પસંદગી પણ કરે છે.

RP ઉપસર્ગનો ઉપયોગ કરીને પ્રક્રિયાના પુનરાવર્તિત અમલનો ઉલ્લેખ કરવામાં આવે છે. આમ, RP P કમાન્ડ પ્રક્રિયા P ના અમલીકરણનું વારંવાર કારણ બને છે જ્યાં સુધી એવી પરિસ્થિતિઓ બનાવવામાં ન આવે કે જેના હેઠળ આ પ્રક્રિયાના મુખ્ય ભાગમાં સમાયેલ EX ટ્રિગર થાય છે - લૂપમાંથી બહાર નીકળવું, જે પછી રેખીય ક્રમમાં આગળનો આદેશ ચલાવવામાં આવે છે. લૂપમાંથી બહાર નીકળવાની શરત હોઈ શકે છે, ઉદાહરણ તરીકે, કેટલાક ચલ X થી શૂન્યની સમાનતા, જે આ રીતે વ્યક્ત થાય છે:

એક પ્રક્રિયા કે જેનું નામ અન્ય પ્રક્રિયાની વ્યાખ્યામાં સમાવિષ્ટ છે તે તેની અંદર રહેલું કહેવાય છે. નેસ્ટેડ પ્રક્રિયા, જો તે આદિમ ન હોય તો, બદલામાં નેસ્ટેડ પ્રક્રિયાઓ સમાવી શકે છે, એટલે કે. માળખું બહુવિધ હોઈ શકે છે. વધુમાં, PARA ભાષાના નિયમો તેની પ્રક્રિયાની વ્યાખ્યામાં સમાવેશને પ્રતિબંધિત કરતા નથી પોતાનું નામઅથવા આ નામ ધરાવતી પ્રક્રિયાનું નામ, એટલે કે. RAYA પુનરાવર્તિત થવા દે છે.

વારંવાર ચલાવવામાં આવતી પ્રક્રિયાને પણ વારંવાર ચલાવવામાં આવતી પ્રક્રિયામાં નેસ્ટ કરી શકાય છે. આ કિસ્સામાં, લૂપ માળખું થાય છે. PARA લૂપ્સના બહુવિધ માળખાને મંજૂરી આપે છે.

આદેશોનો રેખીય ક્રમ, માળખાં, શરતી અને ચક્રીય માળખાં પ્રક્રિયાઓ - આ PARA ભાષામાં પ્રોગ્રામ્સ બનાવવાની શક્યતાઓને સમાપ્ત કરે છે. આ માધ્યમોની અછત, એકરૂપતા અને પ્રાકૃતિકતા એ ભાષામાં નિપુણતા અને ઉપયોગની સરળતાની ચાવી છે. તે જ સમયે, તે એક કડક સંરચિત પ્રોગ્રામિંગ ભાષા છે, જે વિકાસ મજૂર તીવ્રતા અને પ્રોગ્રામની વિશ્વસનીયતામાં નોંધપાત્ર ઘટાડો સુનિશ્ચિત કરે છે.

પ્રક્રિયાઓ અને ડેટા

અત્યાર સુધી જે કંઈપણ કહેવામાં આવ્યું છે તે PARA ભાષાની લાક્ષણિકતા છે જે ક્રિયાઓ સૂચવવા, આદિમ ક્રિયાઓના મર્યાદિત સમૂહમાંથી મનસ્વી ક્રિયાઓનું નિર્માણ કરવાના સાધન તરીકે છે. ભાષાની બીજી બાજુમાં ઑબ્જેક્ટ્સનું પ્રતિનિધિત્વ કરવાના માધ્યમોનો સમાવેશ થાય છે જેના પર ઑપરેશન કરવામાં આવે છે. ક્રિયાઓ, અર્થમાહિતીની રજૂઆત અને સંગઠન.

અત્યંત સરળ તત્વડેટા એ બે-મૂલ્યવાળું તત્વ છે - થોડી. અન્ય તમામ ફોર્મેટ્સ અને ડેટા પ્રકારો બિટ્સમાંથી બનેલ છે. RAYA ભાષામાં, મૂળભૂત ફોર્મેટ 8-bit બાઈટ, 16-bit શબ્દ અને 32-bit લાંબા શબ્દ છે. તેમના પર કરવામાં આવતી કામગીરીના આધારે, બાઇટ્સ, શબ્દો અને લાંબા શબ્દો ઘણા અર્થઘટનને મંજૂરી આપે છે, એટલે કે. માટે આધાર તરીકે સેવા આપી શકે છે વિવિધ પ્રકારોડેટા વધુમાં, તેઓ સંયુક્ત બંધારણો અને પ્રકારોની રચના માટે પ્રારંભિક તત્વો છે.

વાસ્તવમાં, RAYA માં સરળ અથવા સંયુક્ત ડેટા પ્રકારો શામેલ નથી - ત્યાં ફક્ત મૂળભૂત ફોર્મેટ્સ (બાઈટ, શબ્દ, લાંબા શબ્દ) અને તેમાંથી સંયુક્ત ફોર્મેટ્સ બનાવવા માટેના સાધનો છે: વેક્ટર અને બહુપરિમાણીય એરે. આ કિસ્સામાં, સમાન બાઇટ્સ (શબ્દો, લાંબા શબ્દો), તેમના પર કરવામાં આવતી કામગીરીના આધારે, બીટ વેક્ટર તરીકે અથવા સહી કરેલ અને સહી ન કરેલ દ્વિસંગી પૂર્ણાંકો તરીકે અથવા ઇનપુટ/આઉટપુટ મૂળાક્ષરો વગેરેના અક્ષરો તરીકે અર્થઘટન કરવામાં આવે છે. ડેટા પ્રકારો અને તેમની સાથે સંકળાયેલ અવરોધો અને તપાસો ભાષામાં સમસ્યા-વિશિષ્ટ એક્સટેન્શનમાં રજૂ કરી શકાય છે.

બેઝ લેંગ્વેજમાં, ડેટા નામોની ઘોષણા ફક્ત નામ દ્વારા ડેટાની ઍક્સેસ પ્રદાન કરવાનું કાર્ય કરે છે: નામ ઘોષણા દ્વારા જરૂરી મેમરી કોષોની સંખ્યા અને તેમને ઍક્સેસ કરવાની પદ્ધતિ સાથે સંકળાયેલું છે. ટેસ્ટ અને ટ્રાન્સફોર્મ ઓપરેશન્સ સીધા નામના ડેટા પર લાગુ થતા નથી. આ કામગીરીઓ ઓપરેન્ડ સ્ટેક પર વ્યાખ્યાયિત કરવામાં આવે છે, જે 32-બીટ લાંબા શબ્દો (સ્ટેક તત્વો) નો ક્રમ છે જે તેના અંતમાં નવા તત્વો ઉમેરીને (દબાવીને) ગતિશીલ રીતે સંશોધિત થાય છે, તેમજ તે જ છેડેથી તત્વોને દૂર કરીને (દબાણ) કરે છે. સ્ટેકમાંથી પોપિંગ). આઇટમ્સને રિવર્સ ક્રમમાં દૂર કરવામાં આવે છે જેમાં તે મોકલવામાં આવી હતી: છેલ્લી મોકલેલી પ્રથમ દૂર કરવામાં આવે છે. ચકાસવા અથવા રૂપાંતરિત કરવા માટેનો ડેટા સ્ટેક પર મોકલવામાં આવે છે, જ્યાં તેના પર નિર્ધારિત કામગીરી કરવામાં આવે છે, જેના પછી પ્રક્રિયાના પરિણામોને સ્ટેકમાંથી દૂર કરી શકાય છે.

ઉદાહરણ તરીકે, જો 32-બીટ લાંબો શબ્દ તરીકે જાહેર કરેલ ચલ X હોય, તો તેના પર ફક્ત બે જ કામગીરી સીધી રીતે કરી શકાય છે:

1) તેના મૂલ્યને સ્ટેક પર દબાણ કરવું, જે દરેક વખતે X નામનો ઉલ્લેખ કરવામાં આવે ત્યારે આપમેળે થાય છે,

2) તેને ટીમને સોંપવું! X એ સ્ટેકમાંથી દૂર કરાયેલ છેલ્લા (ટોચના) ઘટકનું મૂલ્ય છે.

જો, કહો કે, તમે X ની કિંમતને તેમાં ઉમેરીને બમણી કરવા માંગો છો, તો પછી તમે નીચેના આદેશોને એક પછી એક ચલાવીને આ કરી શકો છો:

મૂલ્ય X ની બે નકલો સ્ટેક પર દબાણ કરવામાં આવશે, પછી + આદેશ તેમને દૂર કરશે, તેમને ઉમેરશે અને પરિણામી રકમને સ્ટેક પર દબાણ કરશે, જેના પછી આદેશ! X આ રકમ લેશે અને તેનું મૂલ્ય ચલ Xને સોંપશે.

ઉચ્ચ-સ્તરની ભાષાઓ માટે લાક્ષણિક, ઉપરના ઉદાહરણને X:=X+X ફોર્મમાં લખવું એ પ્રોગ્રામર માટે વધુ પરિચિત છે, પરંતુ તે પ્રોસેસર દ્વારા ચલાવવામાં આવતા આદેશોના ક્રમનું સીધું પ્રતિબિંબ નથી, પરંતુ તે વિવિધતા છે. ગાણિતિક સૂત્ર. પ્રોગ્રામિંગ કોમ્પ્યુટેશનલ કાર્યો કરતી વખતે આ અનુકૂળ છે, જો કે, બેઝ લેંગ્વેજમાં, એક્ઝિક્યુટ કરવામાં આવતા આદેશો સાથે અસ્પષ્ટ પત્રવ્યવહાર વધુ મહત્વપૂર્ણ લાગે છે, કારણ કે પ્રોગ્રામની કમાન્ડ-બાય-કમાન્ડ વેરિફિકેશન સીધી પ્રોગ્રામિંગ ભાષામાં થઈ શકે છે અને તેની કોઈ જરૂર નથી. પ્રોસેસર ભાષા સિવાયની ભાષા જાણો.

પરંતુ સ્ટેક્ડ ડેટા પ્રોસેસિંગનો ખાસ કરીને મૂલ્યવાન ફાયદો એ છે કે પરીક્ષણ અને રૂપાંતર પ્રક્રિયાઓને તેઓ જે ડેટા પર લાગુ કરવામાં આવે છે તેનાથી સ્વતંત્ર રીતે વ્યાખ્યાયિત અને અમલ કરી શકાય છે. પરીક્ષણ અને રૂપાંતર કામગીરી ડેટા ઓળખકર્તાઓ (અથવા સ્થિરાંકો અને ચલોના નામો, ઔપચારિક પરિમાણો) ના સંબંધમાં ઘડવામાં આવે છે, પરંતુ સ્ટેક તત્વોના સંબંધમાં, જે ઑપરેશન એક્ઝિક્યુટ થાય ત્યાં સુધીમાં ઑપરેન્ડ મૂલ્યો અસાઇન કરવા જોઈએ. ઉદાહરણ તરીકે, + (ઉમેરો) આદેશનો ઉપયોગ કરીને કરવામાં આવતી બે સંખ્યાઓ ઉમેરવાની કામગીરીમાં સ્ટેકમાંથી ટોચના બે ઘટકો (શિરોબિંદુ અને સબવર્ટેક્સ)ને ઉમેરણ તરીકે લેવા, તેમના સરવાળાની ગણતરી કરીને અને તેને સ્ટેક પર ધકેલવાનો સમાવેશ થાય છે. બે નંબરો ઉમેરવા માટે, તમારે તેમના મૂલ્યોને સ્ટેક પર દબાણ કરવાની અને + આદેશ ચલાવવાની જરૂર છે, પરિણામ સ્ટેકની ટોચ પર હશે.

ઇનપુટ અને આઉટપુટ પેરામીટર્સની મનસ્વી સંખ્યા સાથેની ટેસ્ટ-ટ્રાન્સફોર્મેશન પ્રક્રિયાને આ રીતે ફક્ત નામવાળી ક્રિયા (પેરામીટર્સની સૂચિ વિના) તરીકે વ્યાખ્યાયિત કરી શકાય છે જેમાં તે મૂકવામાં આવેલા સ્ટેક પર કરવામાં આવે છે. નિયત રીતેદલીલોના મૂલ્યો, અને અમલ પછી, પરિણામોના મૂલ્યો. ચોક્કસ ડેટાના ચોક્કસ સેટ પર આવી પ્રક્રિયા લાગુ કરવા માટે, તમારે આ ડેટાને યોગ્ય ક્રમમાં સ્ટેક પર દબાણ કરવો આવશ્યક છે. તેનો વપરાશ કર્યા પછી, પ્રક્રિયા તેના પરિણામો સ્ટેક પર છોડી દેશે (ચોક્કસ ક્રમમાં પણ સ્થિત છે).

બીજા શબ્દોમાં કહીએ તો, RAY ભાષામાં પ્રક્રિયાના નામો એ જ રીતે ઉપયોગમાં લેવાય છે જેમ કે ઓપરેશન ચિહ્નો અને અનિવાર્યપણે ઓપરેન્ડની મનસ્વી સંખ્યા સાથેની કામગીરીના પ્રતીકો છે. સ્ટેકના સંચાલનના સિદ્ધાંત અનુસાર, ઓપરેશન્સ પોસ્ટફિક્સ સ્વરૂપમાં લખવામાં આવે છે, એટલે કે. ઓપરેશનનું નામ તેના ઓપરેન્ડના નામ અથવા મૂલ્યો પછી મૂકવામાં આવે છે. ઉદાહરણ તરીકે, જો આપણે ++ ચિહ્ન વડે ત્રણ સંખ્યાઓનો સરવાળો મેળવવાની ક્રિયાને સૂચવીએ, તો A, 5 અને B નંબરોનો સરવાળો નીચે પ્રમાણે દર્શાવવામાં આવશે:

પોસ્ટફિક્સ ભાષાના ઔપચારિક નિયમો સ્થાપિત કરવા અને પ્રોગ્રામ લખતી વખતે તેમના દ્વારા માર્ગદર્શન મેળવવું શક્ય બનશે, પરંતુ વ્યક્તિ માટે નિયમો સાથે નહીં, પરંતુ સ્ટેક પ્રોસેસર મોડેલ સાથે વ્યવહાર કરવો સરળ અને વધુ વિશ્વસનીય છે, એટલે કે. મશીનના મોડેલ સાથે કે જેના માટે પ્રોગ્રામ્સ બનાવવામાં આવે છે અને જે તેને એક્ઝિક્યુટ કરશે. PARA ભાષાના કિસ્સામાં, આવા મશીન એ DSSP પ્રોસેસર છે - સાધનો અને પ્રોગ્રામ્સનો સમૂહ જે આ ભાષામાં નિર્ધારિત ક્રિયાઓને અમલમાં મૂકે છે.

ડીએસએસપી પ્રોસેસર

ભૌતિક રીતે, ડીએસએસપી પ્રોસેસરને સરળ અને અસરકારક રીતે પ્રોગ્રામેબલ આર્કિટેક્ચરના માઇક્રોપ્રોસેસરના રૂપમાં અમલમાં મૂકી શકાય છે જે માઇક્રોકોમ્પ્યુટર માટે સોફ્ટવેર સાધનોની સમસ્યાને હલ કરશે. શ્રેષ્ઠ શક્ય રીતે. પરંતુ આવા માઇક્રોપ્રોસેસર હજુ સુધી બનાવવામાં આવ્યા નથી અને તેના આર્કિટેક્ચરને તેમની પ્રોગ્રામેબિલિટી સુધારવા માટે હાલના માઇક્રોકોમ્પ્યુટર પર અનુકરણ કરવું પડશે. અલબત્ત, ઇમ્યુલેશન ખર્ચ સાથે સંકળાયેલું છે - તેને મેમરી અને કમ્પ્યુટર સમયની જરૂર છે, પરંતુ DSSP પ્રોસેસરનું અનુકરણ કરવાના કિસ્સામાં, આ ખર્ચ પ્રમાણમાં નાના છે.

પ્રોગ્રામરના દૃષ્ટિકોણથી, પ્રોસેસરની લાક્ષણિકતા એ તેનું આર્કિટેક્ચર છે, એટલે કે. ડેટા પ્રોસેસિંગ ટૂલ તરીકે આપેલ પ્રોસેસર શું છે તે વિશેની માહિતી, ઇનપુટ પર અને પ્રોસેસરની અંદર ડેટા પ્રસ્તુત કરવાની શક્યતાઓ શું છે, કયા પરીક્ષણ અને ડેટા કન્વર્ઝન ઓપરેશન્સ ઉપલબ્ધ છે, પ્રોસેસરની પોતાની મેમરી કેવી રીતે ગોઠવવામાં આવે છે, તેમજ તેની ઍક્સેસ મુખ્ય અને બાહ્ય મેમરી, પ્રોગ્રામના કંટ્રોલ ટૂલ્સ પ્રોગ્રેસ શું છે, તેની સાથે ક્રિયાપ્રતિક્રિયા બાહ્ય વાતાવરણ, અસાધારણ ઘટનાઓનો પ્રતિસાદ આપવો, વગેરે. આર્કિટેક્ચરમાં નિપુણતા છે જરૂરી સ્થિતિઅર્થપૂર્ણ (અનૌપચારિક) પ્રોગ્રામિંગ, જે ભૂલોની સંખ્યાને નોંધપાત્ર રીતે ઘટાડે છે અને પ્રોગ્રામ્સની વિશ્વસનીયતામાં વધારો કરે છે.

DSSP પ્રોસેસરની કેન્દ્રિય લિંક એ પહેલેથી જ ઉલ્લેખિત ઓપરેન્ડ સ્ટેક છે. ખરેખર, પ્રક્રિયા સ્ટેક પર કરવામાં આવે છે અને, નિયમ પ્રમાણે, સ્ટેક દ્વારા ડેટા મોકલવામાં આવે છે. વ્યક્તિગત આદેશો અને સ્ટેક પરના આદેશોના ટૂંકા ક્રમને ટર્મિનલ કીબોર્ડથી સીધા જ પ્રોસેસર ઇનપુટ પર પસાર કરીને એક્ઝિક્યુટ કરી શકાય છે. આ કિસ્સામાં, DSSP પ્રોસેસર પોસ્ટફિક્સ કેલ્ક્યુલેટરની કામગીરીનું અનુકરણ કરે છે. કીબોર્ડમાંથી દાખલ કરેલ નંબરો અને ઓપરેશન નેમોનિક કોડ્સ જગ્યાઓ દ્વારા અલગ કરવામાં આવે છે. દાખલ કરેલ ટેક્સ્ટ ટર્મિનલ સ્ક્રીન પર એક લીટી તરીકે દેખાય છે. ઇનપુટના અંત માટેનો સિગ્નલ અને પ્રોસેસરને આપેલ આદેશ "દાખલ કરેલા ઓર્ડરને એક્ઝિક્યુટ કરો" એ કી પ્રેસ છે , પણ સૂચવવામાં આવે છે , . પ્રોસેસર ઇનપુટ પર આવતા નંબરો સ્ટેક પર સંગ્રહિત થાય છે, અને આદેશો સ્ટેક પર ચલાવવામાં આવે છે. સ્ટેકની ટોચ પર મેળવેલ ગણતરી પરિણામ આદેશ સાથે ટર્મિનલ સ્ક્રીન પર કૉપિ કરી શકાય છે. (બિંદુ).

ઉદાહરણ તરીકે, અભિવ્યક્તિનું મૂલ્યાંકન કરવા (2-5)*3 અને પ્રાપ્ત પરિણામ પ્રદર્શિત કરો, દાખલ કરો:

2 5 - 3 * .

કી દબાવ્યા પછી પ્રોસેસર પરિણામ ઉત્પન્ન કરે છે, તેથી સમગ્ર લાઇન જેવી દેખાશે

* 2 5 - 3 * . -90

લાઇનની શરૂઆતમાં ફૂદડી સિગ્નલ તરીકે પ્રોસેસર દ્વારા જારી કરવામાં આવે છે કે તે ઇનપુટની રાહ જોઈ રહ્યું છે.

ધ્યાનમાં લીધેલા ઉદાહરણમાં, પ્રોસેસર ઇનપુટ નંબરોને દશાંશ પૂર્ણાંક તરીકે સમજે છે અને પ્રક્રિયા કરે છે. વાસ્તવમાં, જ્યારે ઇનપુટ, ત્યારે આ સંખ્યાઓ દ્વિસંગી પૂરક કોડમાં રૂપાંતરિત કરવામાં આવી હતી, અને જ્યારે આઉટપુટ, ત્યારે તે દશાંશ સિસ્ટમમાં રૂપાંતરિત કરવામાં આવી હતી. DSSP પ્રોસેસર બાઈનરી, ઓક્ટલ અને હેક્સાડેસિમલ ઇનપુટ/આઉટપુટ મોડને પણ મંજૂરી આપે છે. ઇચ્છિત મોડ પર સ્વિચ કરવા માટે, તમારે અનુક્રમે B2, B8, B10, B16 આદેશોમાંથી એકનો અમલ કરવો પડશે.

કી દબાવવાથી કોડ પ્રોસેસર ઇનપુટ પર મોકલવામાં આવે છે, જે આ કી પર દર્શાવેલ અક્ષરોનું પ્રતિનિધિત્વ કરે છે (અક્ષરો, સંખ્યાઓ, વિરામચિહ્નો, ઓપરેશન પ્રતીકો). દાખલ કરેલ અક્ષરોનો ક્રમ એક ઇનપુટ સ્ટ્રિંગ બનાવે છે - કેરેક્ટર કોડ્સ ધરાવતી બાઇટ્સની સાંકળ, પ્રતિ અક્ષર એક બાઇટ. મહત્તમ લંબાઈઇનપુટ સ્ટ્રિંગ - 80 લિટર.

ઇનપુટ સ્ટ્રિંગ પર પ્રક્રિયા કરતી વખતે, પ્રોસેસર તેમાંના શબ્દોને અલગ પાડે છે - સ્પેસ દ્વારા એકબીજાથી અલગ પડેલા અક્ષરોના સંયોજનો અને તેનું અર્થઘટન કરે છે. જો પ્રોસેસ થઈ રહેલ શબ્દ એ કોઈ ઓપરેશન (પ્રક્રિયા) અથવા પ્રોસેસરને જાણીતો ડેટાનું નામ છે, તો પ્રોસેસર તે ક્રિયાઓ કરે છે જેને આ નામ વ્યાખ્યા દ્વારા બોલાવવા જોઈએ. જો પ્રોસેસર માટે શબ્દ જાણીતો નથી, તો તે I/O મોડને ધ્યાનમાં લઈને, તેને સંખ્યા તરીકે અર્થઘટન કરવાનો પ્રયાસ કરે છે.

સંખ્યાઓ એવા શબ્દો છે જે આપેલ નંબર સિસ્ટમમાં સ્વીકાર્ય અંકોનો સમાવેશ કરે છે અને, કદાચ, પ્રથમ અક્ષર તરીકે બાદબાકીનું ચિહ્ન ધરાવે છે. હેક્સાડેસિમલ I/O મોડમાં, માન્ય અક્ષરો, સંખ્યાઓ સાથે, લેટિન અક્ષરો A, B, C, D, E, Fનો પણ સમાવેશ કરે છે. પ્રાપ્ત સંખ્યાને દ્વિસંગી બેના પૂરક કોડમાં રૂપાંતરિત કરવામાં આવે છે અને ઓપરેન્ડ સ્ટેક પર a તરીકે દબાણ કરવામાં આવે છે. 32-બીટ લાંબો શબ્દ. વધુમાં, જો સંખ્યાનું મૂલ્ય રજૂ કરી શકાય તેવા મૂલ્યોની શ્રેણીની બહાર હોય -2147483648: 2147483647, તો તેને આ શ્રેણીમાંથી મૂલ્ય તુલનાત્મક મોડ્યુલો 2**32 દ્વારા બદલવામાં આવે છે.

એવા કિસ્સામાં કે જ્યારે પ્રોસેસર માટે પ્રોસેસિંગ શબ્દ જાણીતો નથી અને નંબર તરીકે સ્વીકારી શકાતો નથી, ત્યારે પ્રોસેસર ટર્મિનલ સ્ક્રીન પર સંદેશ પ્રદર્શિત કરે છે: "મને ખબર નથી"<обрабатываемое слово>" અને વધુ સૂચના દાખલ થવાની રાહ જુએ છે.

મનસ્વી ટેક્સ્ટના સ્વરૂપમાં ડેટા ઇનપુટ (બાઇટ-લિટરલ્સનો ક્રમ) ટેક્સ્ટ લિટરલ્સના સ્વરૂપમાં બનાવવામાં આવે છે, જે ટેક્સ્ટને ડબલ અવતરણમાં બંધ કરવામાં આવે છે, ઉદાહરણ તરીકે: "ટેક્સ્ટ શાબ્દિક". પ્રોસેસર ઇનપુટ પર લખાણ શાબ્દિકનું આગમન, અવતરણો વચ્ચે બંધાયેલ ટેક્સ્ટને બાઇટ-લિટરલ્સની સાંકળના રૂપમાં મુખ્ય મેમરીમાં લખવાનું કારણ બને છે. આ કિસ્સામાં, પ્રથમ બાઇટનું સરનામું અને બાઇટ્સની સંખ્યા (ટેક્સ્ટ લંબાઈ) સ્ટેક પર દબાણ કરવામાં આવે છે. ડોટની આગળ આવેલ ટેક્સ્ટ શબ્દશઃ પ્રોસેસર દ્વારા "ટર્મિનલ સ્ક્રીન પર અવતરણ વચ્ચેના ટેક્સ્ટને બતાવવા" આદેશ તરીકે જોવામાં આવે છે. ઉદાહરણ તરીકે, પ્રોસેસરના ઇનપુટ પર અક્ષર સંયોજન "નો મેમરી" મોકલવાથી સ્ક્રીન પર સંદેશ દેખાશે: કોઈ મેમરી નથી.

જ્યારે આ અક્ષર પ્રોસેસર ઇનપુટ પર તેની આગળના # ચિહ્ન સાથે પ્રાપ્ત થાય છે ત્યારે વ્યક્તિગત અક્ષરનો કોડ શિરોબિંદુના નીચા બાઇટ તરીકે સ્ટેક પર ધકેલવામાં આવે છે. ઉદાહરણ તરીકે, અક્ષર સંયોજન #L સ્ટેક પર L અક્ષરનો કોડ મોકલશે, અક્ષર સંયોજન #5 નંબર 5 નો કોડ મોકલશે. ટર્મિનલ પર બાઈટ આઉટપુટ કરવા માટેનો TOB આદેશ તે અક્ષર દર્શાવે છે જેનો કોડ છે. સ્ટેકની ટોચની નીચી બાઈટમાં સમાયેલ છે.

આદેશોના સીધા અમલના મોડમાં પણ, ડીએસએસપી પ્રોસેસર પરંપરાગત કેલ્ક્યુલેટરની ક્ષમતાઓ કરતાં ઘણું વધારે છે, જે વપરાશકર્તાને ડેટા પ્રોસેસિંગ ઓપરેશન્સ ઉપરાંત, નામિત ડેટા જાહેર કરવાના માધ્યમો અને પ્રક્રિયાઓને વ્યાખ્યાયિત કરવા માટે પ્રદાન કરે છે જેનો ઉપયોગ પછી સાથે કરી શકાય છે. મૂળભૂત કામગીરી. ડેટાના નામોની ઘોષણા અને પ્રક્રિયાઓને વ્યાખ્યાયિત કરવી ખાસ આદેશોનો ઉપયોગ કરીને કરવામાં આવે છે.

ઉદાહરણ તરીકે, TEMP નામનું 16-બીટ વેરીએબલ બનાવવા માટે, તમારે કીબોર્ડ પર ટાઇપ કરવું જોઈએ અને પ્રોસેસર ઇનપુટ પર કી લાગુ કરવી જોઈએ. ટીમ

VAR TEMP

તમે તેને ઘોષણા સાથે ચલને સોંપી શકો છો પ્રારંભિક મૂલ્ય, ઉદાહરણ તરીકે, 0:

VAR TEMP 0! TEMP

હવે પ્રોસેસર ઇનપુટ પર TEMP નામના આગમનથી આ વેરીએબલની વર્તમાન કિંમત સ્ટેક પર ધકેલવામાં આવશે, અને સ્ટેકમાંથી કાઢી નાખવામાં આવેલી નવી કિંમતની સોંપણી આદેશ દ્વારા કરી શકાય છે! TEMP.

આદેશ દ્વારા પ્રક્રિયાની વ્યાખ્યા દાખલ કરવામાં આવે છે: (કોલોન), જેમાં વ્યાખ્યાયિત કરવામાં આવેલ પ્રક્રિયાનું નામ અને અક્ષર સાથે આદેશોની વ્યાખ્યાયિત સાંકળ હોય છે; (અર્ધવિરામ) વ્યાખ્યાના અંતિમ પાત્ર તરીકે. ચાલો સૂત્રનો ઉપયોગ કરીને કુદરતી સંખ્યા N ના અવયવની ગણતરીના ઉદાહરણનો ઉપયોગ કરીને પ્રક્રિયાઓની વ્યાખ્યા અને ઉપયોગ દર્શાવીએ.

N!=N*(N-1)*(N-2)*...*2*1, એટલે કે N-1 ગુણાકાર.

ઇચ્છિત પરિણામ મેળવવા માટે FCT પ્રક્રિયાનો ગુણાકાર કરવો આવશ્યક છે આપેલ નંબર N-1 થી શરૂ કરીને ક્રમશઃ ઘટતી સંખ્યાઓમાં, એટલે કે. માત્ર N-1 વખત. PARA ભાષામાં, આ પ્રક્રિયા P t વખત ચલાવીને પ્રોગ્રામ કરવામાં આવે છે: DO P, જ્યાં P એ પ્રક્રિયાનું નામ છે, t એ સ્ટેકની ટોચ પરની વર્તમાન કિંમત છે, જે દર્શાવે છે કે P ને કેટલી વાર પ્રક્રિયા ચલાવવાની જરૂર છે.

ચાલો માની લઈએ કે FCT પ્રક્રિયા લાગુ કરતાં પહેલાં, N નંબરને સ્ટેક પર ધકેલવામાં આવે છે અને તેની ટોચ પર સ્થિત છે. પ્રક્રિયાને વધુ સમજી શકાય તેવું બનાવવા માટે, ચાલો K ચલના સુધારેલા ગુણકની કલ્પના કરીએ:

અમે ફોર્મમાં FCT પ્રક્રિયાની વ્યાખ્યા રજૂ કરીએ છીએ:

FCT [N]! K K K 1- DO F . [એન];

પ્રતિબિંબિત કરવા માટે ચોરસ કૌંસમાં ટિપ્પણીઓ આપવામાં આવી છે વર્તમાન સ્થિતિઓપરેન્ડ સ્ટેક. ટીમ! K, જે નિર્ધારિત પ્રક્રિયા શરૂ કરે છે, સ્ટેકમાંથી ચલ K ને લીધેલ N નંબરની કિંમત સોંપે છે. પછી K ને સ્ટેક પર બે વાર ધકેલવામાં આવે છે અને સ્ટેકની ટોચ પર 1 બાદ કરીને, પુનરાવર્તિત અમલની સંખ્યા પ્રક્રિયા F રચાય છે, N-1 ની બરાબર. આગળ DO F આદેશ આવે છે, જે લૂપનો ઉલ્લેખ કરે છે, જે પૂર્ણ થવા પર સ્ટેકની ટોચ પર ફેક્ટોરિયલની ઇચ્છિત કિંમત હશે - N!. ટીમ. (ડોટ) ટર્મિનલ સ્ક્રીન પર આ મૂલ્યની નકલ છાપે છે. તે પ્રક્રિયા F ને વ્યાખ્યાયિત કરવાનું બાકી છે જે 1 બાદ કરીને K ના મૂલ્યમાં ફેરફાર કરે છે અને સ્ટેક પર સમાવિષ્ટ ગણતરી R ના આંશિક પરિણામને K વડે ગુણાકાર કરે છે:

F [R] K 1- ! K[R]K*;

બંને પ્રક્રિયાઓની શુદ્ધતા તેમની વ્યાખ્યા આદેશ દ્વારા આદેશ દ્વારા ચકાસવામાં આવે છે, દરેક આદેશ પછી ટર્મિનલ સ્ક્રીન પર ઓપરેન્ડ સ્ટેકની સામગ્રી અને વેરીએબલ K ની કિંમત દર્શાવીને, સ્ટેકની ટોચની આવશ્યકતા મૂલ્ય N! ધરાવે છે, અને ચલ Kનું મૂલ્ય 1 ની બરાબર હોવું જોઈએ.

ચકાસાયેલ અને સુધારેલ (જો ચકાસણી પ્રક્રિયા દરમિયાન ભૂલો ઓળખવામાં આવી હોય) પ્રક્રિયાઓને લાગુ કરીને પરીક્ષણ કરવામાં આવે છે વ્યક્તિગત મૂલ્યોનંબર N. FCT માં પ્રક્રિયા F એમ્બેડ કરેલ હોવાથી, તેનું પરીક્ષણ પછીની પરીક્ષણ પ્રક્રિયા દરમિયાન આપમેળે હાથ ધરવામાં આવે છે. તે ધ્યાનમાં રાખવું જોઈએ કે પરિણામ મૂલ્યો મહત્તમ કરતાં વધુ ન હોવા જોઈએ હકારાત્મક સંખ્યા, 32-બીટ ટુના પૂરક કોડમાં રજૂ થાય છે લાંબા શબ્દમાં: 2147483647, એટલે કે. FCT માત્ર N=1, ..., 13 માટે સાચા પરિણામો આપે છે.

FCT નો ઉપયોગ એ પ્રોસેસરની પોતાની સૂચનાઓનો ઉપયોગ કરતા અલગ નથી: પરિણામ મેળવવા માટે, તમારે ઓપરેન્ડની કિંમત સેટ કરવાની અને પ્રક્રિયાનું નામ દાખલ કરવાની જરૂર છે:

5 FCT 120

7 FCT 5040

FCT પ્રક્રિયાના ઉપરોક્ત અમલીકરણ માટે સહાયક ચલ K ની રજૂઆતની આવશ્યકતા હતી, પરંતુ કાર્યાત્મક રીતે સમકક્ષ પ્રક્રિયાને સહાયક ચલ વિના અમલમાં મૂકી શકાય છે, ઓપરેશન Cનો ઉપયોગ કરીને, જે તેની ટોચની નકલને સ્ટેક પર ધકેલે છે, અને કામગીરી E2 અને E3, જે અનુક્રમે સ્ટેકના બીજા અને ત્રીજા ઘટકો સાથે ટોચનું વિનિમય કરે છે. આ પ્રક્રિયાની વ્યાખ્યા નીચે મુજબ છે.

: FCTA [N] C 1- C DO FA D .

;

: FA C E3 * E2 1- ;

આવી "શુદ્ધ સ્ટેક" પ્રક્રિયાનો ફાયદો એ છે કે તે સંપૂર્ણપણે સ્વાયત્ત છે: મૂળભૂત પ્રોસેસર સ્ટેક કામગીરીની જેમ, તે માત્ર ઓપરેન્ડ સ્ટેક પર જ કરવામાં આવે છે, અન્ય કોઈપણ મેમરીની જરૂર વગર અથવા અન્ય પ્રોસેસરના ઘટકોમાં કોઈ ફેરફાર કર્યા વિના.

નિર્ધારિત પ્રક્રિયાઓ અને ઘોષિત ડેટાના નામ પ્રોસેસર ડિક્શનરીમાં દાખલ કરવામાં આવે છે, જે આ નામો અને નામવાળી ઑબ્જેક્ટ્સ વચ્ચે જોડાણ સ્થાપિત કરે છે, એટલે કે, મુખ્ય મેમરીમાં સ્થિત પ્રક્રિયા સંસ્થાઓ સાથે અને ઘોષિત ડેટાને સ્ટોર કરવા માટે ફાળવેલ આ મેમરીના ઘટકો સાથે. ઇનપુટ સ્ટ્રીમમાંથી આગલા શબ્દ પર પ્રક્રિયા કરતી વખતે, પ્રોસેસર શબ્દકોશમાં જુએ છે અને, તેમાં મેળ ખાતો શબ્દ મળી આવતા, આ શબ્દ સાથે સંકળાયેલ ક્રિયાઓ કરે છે. જો શોધ અસફળ છે, તો પછી, પહેલેથી જ ઉલ્લેખ કર્યો છે તેમ, આપેલ શબ્દનું સંખ્યાત્મક અર્થઘટન કરવાનો પ્રયાસ કરવામાં આવે છે, અને જો તે નિષ્ફળ જાય, તો પછી એક સંદેશ દેખાય છે કે શબ્દ પ્રોસેસરને જાણતો નથી.

જ્યારે, પ્રક્રિયા P ની વ્યાખ્યાના સંકલન સાથે, પ્રોસેસરને અગાઉ અજાણી તમામ નેસ્ટેડ પ્રક્રિયાઓની વ્યાખ્યાઓ પણ સંકલિત કરવામાં આવે છે, ત્યારે પોઇન્ટરનો સંપૂર્ણ વંશવેલો રચાય છે, જે પ્રોસેસર ઇનપુટ પર માત્ર તેનું નામ મોકલીને પ્રક્રિયા P ચલાવવાનું શક્ય બનાવે છે. . તે જ સમયે, P ની વ્યાખ્યાના સંબંધમાં સંકલિત નેસ્ટેડ પ્રક્રિયાઓના નામોને સંગ્રહિત કરવાનો કોઈ અર્થ નથી, જો આ પ્રક્રિયાઓને અલગથી ઍક્સેસ કરવાની જરૂર નથી. સંખ્યાબંધ કેસોમાં, શબ્દકોષના એક અથવા બીજા ભાગની ઍક્સેસ બંધ કરવાની સલાહ આપવામાં આવે છે, કદાચ, ફક્ત કેટલીક પ્રક્રિયાઓ કરવાની ક્ષમતા છોડીને.

આવી આવશ્યકતાઓને સંતોષવા માટે, શબ્દકોશને પેટા-શબ્દોના સમૂહ તરીકે અમલમાં મૂકવામાં આવે છે, જેના પર કામગીરી વ્યાખ્યાયિત કરવામાં આવે છે જે પેટા-શબ્દો અને તેમના ભાગો બનાવવા અને નાશ કરવા, નામો કાઢી નાખવા, અમુક પેટા-શબ્દોની ઍક્સેસ બંધ કરવા અને ખોલવાની મંજૂરી આપે છે. દરેક પેટાડિક્શનરીમાં એક નામ હોય છે જેનો ઉપયોગ તેને સંબંધિત આદેશોમાં થાય છે. સબડિક્શનરી નામો $ અક્ષરથી શરૂ થવા જોઈએ, ઉદાહરણ તરીકે: $PRIME, $EDIT, $FLOAT, $TEXTPROC, $GRAPHICS.

પ્રોસેસર શરૂ થયા પછી DSSP શબ્દોનો મૂળભૂત સમૂહ ધરાવતો સબડિક્શનરી $PRIME, તેમાં સમાવિષ્ટ શબ્દોની ઍક્સેસ અને નવા શબ્દો ઉમેરવા માટે બંને ખુલ્લી છે. તેમાં દાખલ કરાયેલા નવા શબ્દો, જો જરૂરી હોય તો, FORGET $PRIME આદેશનો ઉપયોગ કરીને તેમની સાથે સંકળાયેલ બોડી સાથે કાઢી નાખી શકાય છે. આ પછી, GROW $PRIME આદેશને એક્ઝિક્યુટ કરીને આ પેટાડિક્શનરીમાં વધુ શબ્દો દાખલ કરવાની શક્યતા સુનિશ્ચિત કરવામાં આવે છે, જે $PRIME પેટાડિક્શનરીને ફરીથી વિસ્તૃત કરવાની મંજૂરી આપે છે, અને તેમાં દાખલ કરેલી દરેક વસ્તુને ફરીથી $PRIME આદેશ વગેરે વડે કાઢી નાખી શકાય છે. . આ મોડમાં, DSSP નો ઉપયોગ પ્રોગ્રામ્સના નાના ટુકડાઓ, વ્યક્તિગત ઉદાહરણો, અંદાજો અને જો જરૂરી હોય તો, સિસ્ટમ ભાષાના વિકાસના ક્રમમાં $PRIME સબડિક્શનરીમાં નવા શબ્દો સહિત પ્રયોગ કરતી વખતે થાય છે.

એક અલગ પ્રોગ્રામ બનાવવાના કિસ્સામાં, તેઓ તેના માટે તેમની પોતાની પેટા-શબ્દકોષ બનાવે છે, અને આ આદેશ સાથે પ્રોગ્રામ ટેક્સ્ટ શરૂ કરીને પ્રાપ્ત થાય છે.

પ્રોગ્રામ $<имя программы>

એક વ્યક્તિ આ આદેશને મથાળા તરીકે સમજે છે, જે પછી ચોરસ કૌંસમાં ટિપ્પણી દ્વારા અનુસરવામાં આવવી જોઈએ, જે પ્રોગ્રામ દ્વારા અમલમાં મૂકાયેલ કાર્યને થોડા શબ્દોમાં દર્શાવશે. પ્રોસેસર માટે તે આદેશોના ક્રમની સમકક્ષ છે

$ ભૂલી જાઓ<имя>$ વધારો<имя>

તેથી, પ્રોસેસર ઇનપુટ પર પ્રોગ્રામ ટેક્સ્ટનું દરેક આગમન તેના પાછલા સંસ્કરણને કાઢી નાખવાનું કારણ બનશે અને પ્રવેશ માટે આ રીતે સાફ કરાયેલ પેટાડિક્શનરી ખોલશે. નવી આવૃત્તિસમાન નામ ધરાવતો પ્રોગ્રામ. આમાં સુધારો કરતી વખતે આ અનુકૂળ છે પ્રોગ્રામ બનાવવામાં આવી રહ્યો છે, તેમજ જ્યારે તે ભવિષ્યમાં સંશોધિત થાય છે.

જે પ્રોગ્રામ બનાવવામાં આવી રહ્યો છે તેનું ટેક્સ્ટ કીબોર્ડથી સીધા જ પ્રોસેસર ઇનપુટમાં દાખલ થતું નથી, પરંતુ ટેક્સ્ટ એડિટર બફરમાં જનરેટ થાય છે. E કમાન્ડ (Edit) એ એડિટિંગ મોડ સેટ કરે છે, જેમાં કીબોર્ડ પર ટાઈપ કરેલા શબ્દોને પ્રોસેસર દ્વારા તરત જ એક્ઝિક્યુટ કરવાના આદેશો તરીકે જોવામાં આવતા નથી, પરંતુ તે ફક્ત બફર પર લખાયેલ ટેક્સ્ટ છે અને તે જ સમયે સ્ક્રીન પર પ્રદર્શિત થાય છે. સમગ્ર સ્ક્રીન પર વર્તમાન સ્થિતિ સૂચક (કર્સર) ની હિલચાલને નિયંત્રિત કરતી વિશેષ કીઓનો ઉપયોગ કરીને, તેમજ અન્ય કી દબાવીને આપેલા આદેશોને સંપાદિત કરીને, દાખલ કરેલ ટેક્સ્ટને સુધારી અને બદલી શકાય છે, કાઢી નાખવા અને દાખલ કરીને, તેના ટુકડાઓને સ્થાનેથી ખસેડી શકાય છે. સ્થળ, વગેરે

ટેક્સ્ટ દાખલ કરવા અને સંપાદિત કરવાનું પૂર્ણ કર્યા પછી, E કીને એકસાથે (અથવા તેના બદલે, અગાઉ દબાવવામાં આવેલ) કી સાથે દબાવીને એડિટર બંધ થઈ જાય છે. , અને સિસ્ટમ DSSP આદેશોના મુખ્ય મોડમાં જાય છે. સમાન ક્રિયા ફક્ત કી દબાવવાથી થાય છે . આ મોડમાં, એડિટર બફરની સામગ્રીઓ PF (PerForm - execute) આદેશ વડે પ્રોસેસર ઇનપુટમાં આઉટપુટ થઈ શકે છે. આ કિસ્સામાં, ટેક્સ્ટમાં સમાવિષ્ટ તમામ આદેશો ચલાવવામાં આવશે, ખાસ કરીને, પ્રોગ્રામ $ આદેશ<имя>સબડિક્શનરીમાં દાખલ કરેલ $ કાઢી નાખશે<имя>છેલ્લી વખત આ આદેશનો અમલ કરવામાં આવ્યો ત્યારથી, ડેટા અને પ્રક્રિયાના નામો, તેમજ અનુરૂપ સંસ્થાઓ, વૃદ્ધિ માટે આ પેટાડિક્શનરીને ફરીથી ખોલે છે. ડેટા ઘોષણા અને પ્રક્રિયા વ્યાખ્યા આદેશો તેઓ દાખલ કરે છે તે નામો દાખલ કરશે, તે નામો દ્વારા નિયુક્ત ડેટા અને વ્યાખ્યાઓ અનુસાર સંકલિત પ્રક્રિયા સંસ્થાઓના નિર્દેશકો સાથે.

એકવાર લોડિંગ પૂર્ણ થઈ જાય, પ્રક્રિયાઓ અને ડેટા તેમના કીબોર્ડ નામો દ્વારા સંદર્ભ માટે ઉપલબ્ધ હોય છે, અને પ્રોગ્રામની શુદ્ધતા ચડતા ક્રમમાં પ્રક્રિયાઓ ચલાવીને ચકાસી શકાય છે, એટલે કે. જેમની વ્યાખ્યાઓમાં ચકાસાયેલ પ્રક્રિયાઓ શામેલ નથી તેમની સાથે શરૂ કરીને. તમે તપાસવાનું શરૂ કરો તે પહેલાં, તે ખાતરી કરવા માટે યોગ્ય છે કે પ્રોગ્રામ અવ્યાખ્યાયિત નામોનો ઉપયોગ કરતું નથી. પ્રોસેસર તેમને UNDEF આદેશનો ઉપયોગ કરીને સ્ક્રીન પર પ્રદર્શિત કરે છે. આ નામોની વ્યાખ્યાઓ સાથે પ્રોગ્રામ ટેક્સ્ટને પૂરક બનાવવા માટે, તેમજ ચેકિંગ પ્રક્રિયા દરમિયાન શોધાયેલ અન્ય ભૂલોને સુધારવા માટે, તમારે સંપાદકને કૉલ કરવા અને સંપાદક બફરમાં સ્થિત સ્રોત પ્રોગ્રામ ટેક્સ્ટમાં યોગ્ય ફેરફાર કરવા માટે E આદેશનો ઉપયોગ કરવાની જરૂર છે. , અને પછી પ્રોસેસરને મુખ્ય મોડ પર સ્વિચ કરો અને PF આદેશ વડે બફરની સામગ્રી લોડ કરો.

પ્રોગ્રામની ચકાસણી અને પરીક્ષણ કર્યા પછી, તે સ્ત્રોત OE f આદેશનો ઉપયોગ કરીને એડિટરના બફરથી ડિસ્ક પર કૉપિ કરી શકાય છે, જ્યાં f એ ફાઇલનું નામ છે જેમાં પ્રોગ્રામને ડિસ્ક પર લખવામાં આવશે. ભવિષ્યમાં, ફાઇલના સમાવિષ્ટોને LOAD f આદેશ વડે પ્રોસેસર ઇનપુટ પર લોડ કરી શકાય છે, અને IE f આદેશનો ઉપયોગ કરીને તેમાંના ટેક્સ્ટના ઉમેરા તરીકે સંપાદકના બફરમાં કૉપિ પણ કરી શકાય છે. મૂળભૂત રીતે, ફાઇલોમાં એક્સ્ટેંશન .DSP હોય છે. KE આદેશ વડે બફરને પહેલા સાફ કરી શકાય છે. LPE આદેશનો ઉપયોગ કરીને બફરની સામગ્રીને છાપવાનું પણ શક્ય છે.

એક્ઝેક્યુશન માટે તૈયાર પ્રોગ્રામ લોડ કર્યા પછી, તેના માટે બનાવેલ સબડિક્શનરી $ સાફ કરવું શક્ય છે<имя>$ આદેશ સાફ કરો<имя>. આ આદેશને એક્ઝિક્યુટ કરીને, પ્રોસેસર નામના સબડિક્શનરીમાંથી અનફિક્સ્ડ નામોને દૂર કરે છે, એટલે કે. બધા નામો સિવાય કે જેમની વ્યાખ્યાઓ ફિક્સિંગ ઉપસર્ગથી આગળ આવે છે:: (બે કોલોન). આ કિસ્સામાં, ફક્ત નામો જ (શબ્દકોષની એન્ટ્રીઓ) કાઢી નાખવામાં આવે છે, અને તેમની સાથે સંકળાયેલ પ્રક્રિયા સંસ્થાઓ અને ડેટા સંકલન દરમિયાન સ્થાપિત આંતરિક લિંક્સ દ્વારા પ્રોગ્રામ એક્ઝિક્યુશન દરમિયાન સાચવવામાં આવે છે અને ઍક્સેસિબલ હોય છે, પરંતુ તે હવે બહારથી ઍક્સેસિબલ નથી. બહારથી ઍક્સેસ પુનઃસ્થાપિત કરવા માટે, ઉદાહરણ તરીકે, જો તમારે કેટલાક ઉમેરા અથવા ફેરફારને કમ્પાઇલ કરવાની જરૂર હોય, તો તમારે પ્રોગ્રામનો સ્રોત કોડ ફરીથી ડાઉનલોડ કરવાની જરૂર છે.

SHUT $ આદેશનો ઉપયોગ કરીને નામોને શબ્દકોશમાંથી દૂર કર્યા વિના બાહ્ય રીતે અપ્રાપ્ય બનાવી શકાય છે<имя>, જે તેમાં નામ આપવામાં આવેલ પેટાડિક્શનરીના તમામ શબ્દોની ઍક્સેસને અવરોધિત કરે છે. તેના શબ્દોનો ઉપયોગ કરવા માટે પેટાડિક્શનરી ખોલવાનું USE $ આદેશ સાથે કરવામાં આવે છે<имя>. એક માત્ર $ આદેશ પણ છે<имя>, જે નામના સિવાયના તમામ પેટાડિક્શનરીઓને બંધ કરે છે, અને CANCEL આદેશ, જે આ પ્રતિબંધને રદ કરે છે. સૂચિબદ્ધ આદેશો તમને સંકલન અને મર્યાદા દરમિયાન શબ્દકોશના ઉપયોગને નિયંત્રિત કરવાની મંજૂરી આપે છે જરૂરી ન્યૂનતમપ્રોગ્રામના વપરાશકર્તા માટે ઉપલબ્ધ નામોનો સમૂહ.

શબ્દકોશમાં નામની શોધ તેના શબ્દોને જે ક્રમમાં શબ્દકોષમાં દાખલ કરવામાં આવી હતી તેના વિપરીત ક્રમમાં જોઈને કરવામાં આવે છે, એટલે કે. દાખલ કરેલ છેલ્લા સાથે શરૂ કરીને. તેથી, શબ્દકોશમાં એક કરતા વધુ વખત વ્યાખ્યાયિત થયેલ નામ માટે, નવીનતમ વ્યાખ્યા માન્ય રહેશે. જો આ છેલ્લી વ્યાખ્યા ધરાવતો પેટાડિક્શનરી બંધ હોય, તો આપેલ નામ સાથે પ્રથમ ઉપલબ્ધ શબ્દકોશ એન્ટ્રી પર શોધ ચાલુ રહે છે અને તે એન્ટ્રી દ્વારા દર્શાવેલ વ્યાખ્યાનો ઉપયોગ કરવામાં આવશે.

ડેટા ઇનપુટ અને આઉટપુટ વિશે થોડાક શબ્દો. પહેલેથી જ ઉલ્લેખ કર્યો છે તેમ, પ્રોસેસર એક્ઝિક્યુટેબલ પ્રોગ્રામના શબ્દનું અર્થઘટન કરવાનો પ્રયાસ કરે છે જે શબ્દકોશમાં સંખ્યા તરીકે જોવા મળતો નથી અને, જો સફળ થાય, તો આ સંખ્યાના દ્વિસંગી સમકક્ષને સ્ટેક પર દબાણ કરે છે. સ્ટેક પર નંબર દાખલ કરવાનું TIN આદેશ સાથે કરી શકાય છે, જેના માટે કીબોર્ડ પર ઇનપુટ નંબર લખવો જરૂરી છે. એવા આદેશો પણ છે કે જેના કારણે કીબોર્ડમાંથી દાખલ કરાયેલા અક્ષરને સ્ટેક પર ધકેલવામાં આવે છે: TIB - ડિસ્પ્લે સાથે, TRB - સ્ક્રીન પર આ અક્ષર પ્રદર્શિત કર્યા વિના. આ કિસ્સામાં, કેરેક્ટર કોડને સ્ટેક પર ધકેલવામાં આવેલા 32-બીટ શબ્દના નીચા બાઈટ દ્વારા દર્શાવવામાં આવે છે, જેમાંથી સૌથી વધુ 3 બાઈટ શૂન્યની બરાબર છે.

સ્ટેકની ટોચની સામગ્રી અનુક્રમે નંબર તરીકે અથવા અક્ષર તરીકે દાખલ કરી શકાય છે. TON આદેશ આઉટપુટ ફીલ્ડમાં સ્ક્રીન પર સબવર્ટેક્સના આંકડાકીય મૂલ્યના પ્રદર્શનનું કારણ બને છે, જેની પહોળાઈ શિરોબિંદુ દ્વારા નિર્દિષ્ટ કરવામાં આવે છે, તેના અમલ સમયે સ્થાપિત થયેલ સંખ્યા પ્રતિનિધિત્વ સિસ્ટમમાં. TOB આદેશ તે અક્ષર દર્શાવે છે જેનો કોડ સ્ટેકની ટોચની નીચા બાઈટમાં સમાયેલ છે. બંને કિસ્સાઓમાં, આઉટપુટ સ્ટેકમાંથી દૂર કરવામાં આવતી દલીલો સાથે છે.

DSSP પ્રોસેસર પાસે બાહ્ય અને આંતરિક (કમાન્ડ) વિક્ષેપો માટેનું ઉપકરણ છે અને તેની પ્રક્રિયા કરવા માટે નીચેના માધ્યમો પૂરા પાડે છે. બાહ્ય વિક્ષેપને હેન્ડલ કરવાના હેતુવાળી પ્રક્રિયાને સામાન્ય પ્રક્રિયાની જેમ જ વ્યાખ્યાયિત કરવામાં આવે છે, પરંતુ કોલોન પહેલાં INT ઉપસર્ગ ઉમેરવામાં આવે છે. આવી પ્રક્રિયાનું નામ આદેશ સાથે વિક્ષેપ વેક્ટરના સરનામા સાથે સંકળાયેલું છે:

<адрес вектора>લિંક<имя процедуры>

આદેશ વિક્ષેપ એ નામની કામગીરી છે જે પ્રતિભાવ રૂટિનને કૉલ કરે છે. આ ઓપરેશનનું નામ ટ્રેપ કમાન્ડ દ્વારા નક્કી કરવામાં આવે છે, જે તેની સાથે કહેવાતી અંતિમ પ્રતિભાવ પ્રક્રિયાને સાંકળે છે, જે જો અંતિમ પ્રતિસાદને ON અથવા EON આદેશનો ઉપયોગ કરીને અન્ય પ્રતિસાદ પ્રક્રિયા દ્વારા બદલવામાં ન આવે તો તે ચલાવવામાં આવે છે. ત્રણેય આદેશો સમાન ફોર્મેટ ધરાવે છે:

ટ્રેપ<имя вызова> <процедура реагирования>

ચાલુ<имя вызова> <процедура реагирования>

EON<имя вызова> <процедура реагирования>

EON સૂચના દ્વારા કૉલ નામ સાથે સંકળાયેલ પ્રક્રિયા EON સૂચના ધરાવતી પ્રક્રિયાના મુખ્ય ભાગમાંથી પ્રારંભિક એક્ઝિટ સાથે અને ઑપરેન્ડ સ્ટેક પોઇન્ટરની કિંમત સાથે ચલાવવામાં આવે છે જે EON એક્ઝિક્યુટ કરવામાં આવી હતી તે સમયે અસ્તિત્વમાં હતા.

RAYA ભાષા વાક્યરચના

RAY ભાષાના મૂળાક્ષરોમાં લેટિન અને રશિયન, લોઅરકેસ અને શામેલ છે મોટા અક્ષરો, દશાંશ સંખ્યાઓ, ગાણિતિક અને અન્ય વિશિષ્ટ અક્ષરો. મૂળાક્ષરોના તત્વો (સદસ્યો) ને અક્ષરો કહેવામાં આવે છે. અક્ષરનું બાહ્ય પ્રતિનિધિત્વ તેની મુદ્રિત છબી (પ્રિન્ટેડ ચિહ્ન) છે. DSSP પ્રોસેસરની અંદર, દરેક મુદ્રિત અક્ષરને બાઈટ દ્વારા દર્શાવવામાં આવે છે, જેનું મૂલ્ય આ અક્ષરનો બાઈનરી કોડ છે. બાહ્ય પ્રતિનિધિત્વનું આંતરિક અને તેનાથી વિપરીત ઇનપુટ/આઉટપુટ ઉપકરણ (કીબોર્ડ, ડિસ્પ્લે, પ્રિન્ટર) દ્વારા રૂપાંતર કરવામાં આવે છે. સગવડ માટે સંખ્યાત્મક મૂલ્યકોડ્સ દશાંશ, હેક્સાડેસિમલ અથવા ઓક્ટલ સિસ્ટમમાં વ્યક્ત કરવામાં આવે છે, જે અનુરૂપ નંબરને દશાંશ, હેક્સાડેસિમલ અથવા ઓક્ટલ કોડ લેટર કહે છે.

RAYA ભાષાના તમામ પદાર્થો અક્ષરોમાંથી બનેલ છે અને મર્યાદિત લંબાઈના અક્ષરોની રેખીય સાંકળોનું પ્રતિનિધિત્વ કરે છે, જેને શબ્દો કહેવાય છે. એકબીજાને અનુસરતા શબ્દોનું વિભાજક એ બિન-છાપવા યોગ્ય અક્ષર (જગ્યા) છે. સ્પેસની સ્ટ્રિંગ એક સ્પેસની સમકક્ષ છે. વધુમાં, શબ્દ વિભાજકનું કાર્ય "આગલી લાઇનની શરૂઆતમાં જાઓ" આદેશ દ્વારા કરવામાં આવે છે, જે પ્રતીક દ્વારા ઇનપુટ ઉપકરણોના કીબોર્ડ પર દર્શાવેલ છે. અથવા અને, અક્ષરો સાથે, બાઈટ કોડ તરીકે આંતરિક પ્રતિનિધિત્વ ધરાવે છે. આમ, લાઇનની શરૂઆતમાં અને અંતમાં જગ્યાઓ અલગ કરવાની જરૂર નથી.

ઉદાહરણ શબ્દો: CLEAR NOP STACK2 અને 1+ -366 X પ્રોબ.

ડીએસએસપી પ્રોસેસર પ્રથમ સાત અક્ષરો દ્વારા શબ્દોને અલગ પાડે છે, તેના શબ્દકોશમાંના શબ્દો સાથે બહુભાષી સરખામણી કરીને તેને ઓળખે છે. શબ્દકોશમાં એવા શબ્દો છે જે પ્રોસેસરની પોતાની કામગીરીના નામ (હોદ્દો) છે, જેને મૂળભૂત કામગીરી અથવા આદિમ કહેવાય છે, અને વપરાશકર્તા દ્વારા વ્યાખ્યાયિત વસ્તુઓ (ડેટા, પ્રક્રિયાઓ) ના નામ સાથે ફરી ભરી શકાય છે. આમ, શબ્દકોશમાં સમાવિષ્ટ શબ્દો કાં તો ક્રિયાઓના નામ છે (ઓપરેશન્સ, પ્રક્રિયાઓ) અથવા ડેટાના નામ (સ્થિર, ચલ, એરે).

જ્યારે ઓળખી શકાય એવો શબ્દ શબ્દકોશમાં ન હોય, ત્યારે પ્રોસેસર તેને નીચેનામાંથી એક કેસમાં સોંપવાનો પ્રયાસ કરે છે:

    સંખ્યાત્મક શાબ્દિક, એટલે કે. સંખ્યાઓનો ક્રમ, સંભવતઃ ઓછા ચિહ્નથી શરૂ થાય છે, ઉદાહરણ તરીકે: 0, 4096, -25;

    અક્ષર શાબ્દિક: અક્ષર # થી શરૂ થતો શબ્દ, જેના કારણે પ્રોસેસરને આપેલ કોડ તરીકે તરત જ નીચેના અક્ષર પ્રાપ્ત થાય છે, ઉદાહરણ તરીકે: #A - કેપિટલ શાબ્દિક લેટિન અક્ષર A, #5 - નંબર 5 નો શાબ્દિક, # - જગ્યાનો શાબ્દિક, ## - અક્ષર # નો શાબ્દિક;

    ટેક્સ્ટ શાબ્દિક: બેવડા અવતરણમાં બંધાયેલ અને શબ્દ સીમાંકકો દ્વારા અલગ કરાયેલ મનસ્વી ટેક્સ્ટ, ઉદાહરણ તરીકે: "ટેક્સ્ટ", "ઇનપુટ ફાઇલ N3";

    ટેક્સ્ટ સંદેશ પ્રદર્શિત કરવા માટેનો આદેશ: પ્રદર્શિત સંદેશનો ટેક્સ્ટ, અક્ષર સંયોજન ડોટ-ડબલ ક્વોટ દ્વારા ડાબી બાજુએ સીમાંકિત અને ડબલ અવતરણજમણી બાજુએ અને શબ્દ વિભાજકો દ્વારા અલગ, ઉદાહરણ તરીકે: "સ્ટેક ખાલી છે";

    ટિપ્પણી: મફત લખાણ બંધ ચોરસ કૌંસઅને સીમાંકકો દ્વારા અલગ, ઉદાહરણ તરીકે: .

શબ્દકોષમાંથી ઓળખાયેલા શબ્દો સાથે ડિસ્પ્લે પર સંદેશ પ્રદર્શિત કરવાનો શબ્દ અને આદેશ DSSP ભાષાના ઑબ્જેક્ટ તરીકે કાર્ય કરે છે, જ્યારે ટિપ્પણીઓને DSSP પ્રોસેસર દ્વારા સંપૂર્ણપણે અવગણવામાં આવે છે - તે મશીન માટે નહીં પણ વ્યક્તિ માટે બનાવાયેલ છે. જો શબ્દ શબ્દકોશમાં મળ્યો નથી અને તે સૂચિબદ્ધ બાંધકામો સાથે સંબંધિત નથી, તો પ્રોસેસર સંદેશ પ્રદર્શિત કરે છે: “મને ખબર નથી<неопознанное слово>".

અક્ષરો સાથે જોડાયેલ વિશેષ અર્થને કારણે #, "અને સંયોજન." શબ્દની શરૂઆતમાં, એટલે કે. વિભાજક પછી, તેમજ વિભાજક પહેલાં " અક્ષર, તેઓ શબ્દકોષમાં સમાવેશ માટે વ્યાખ્યાયિત શબ્દોમાં ઉલ્લેખિત સ્થિતિમાં ઉપયોગમાં લેવા જોઈએ નહીં.

પ્રોસેસર ઇનપુટ પરના શબ્દોના ક્રમને પ્રોસેસર દ્વારા ચલાવવામાં આવેલી સૂચનાઓના ક્રમ તરીકે અર્થઘટન કરવામાં આવે છે. ત્રણ પ્રકારના શબ્દો છે:

1) સ્વતંત્ર રીતે કરવામાં આવે છે, એટલે કે. સિંગલ-વર્ડ આદેશોનું પ્રતિનિધિત્વ (મોનોવર્ડ્સ);

2) એક અથવા વધુ અનુગામી શબ્દો સાથે જોડાણમાં કરવામાં આવે છે, એટલે કે. હોવા પ્રારંભિક શબ્દો(ઉપસર્ગ) બે-, ત્રણ- અથવા બહુ-શબ્દ આદેશો;

3) સ્પેશિયલ એક્ઝેક્યુશન મોડ (ઉપસર્ગ) ના સ્પષ્ટીકરણ અથવા સંકેત તરીકે આદેશની આગળ.

મોનોવર્ડ્સમાં શાબ્દિક શબ્દો, ડેટા નામો, મોટાભાગના I/O ઓપરેશન્સ, સ્ટેક પર પરીક્ષણ અને ડેટા રૂપાંતરણ અને વપરાશકર્તા-નિર્ધારિત પ્રક્રિયાઓનો સમાવેશ થાય છે. ઉદાહરણ તરીકે: 1987 - આંકડાકીય શાબ્દિક, #5 - નંબર 5 નો શાબ્દિક, "સ્કીમ સૂચિ" - ટેક્સ્ટ શાબ્દિક, LENGTH - ચલ નામ, TOB, NEG, +, &,<, = - имена (обозначения) операций, SORT, CONVERT, ЧИСТКА, СНЯТЬ - имена процедур пользователя.

ઉપસર્ગો ડેટાનું વર્ણન કરવા અને પ્રક્રિયાઓને વ્યાખ્યાયિત કરવા, તેમજ નામાંકિત ડેટાની હેરફેર કરવા, પ્રક્રિયાઓના શરતી અને પુનરાવર્તિત અમલ માટે, અને શબ્દકોશનું સંચાલન કરવા માટેના આદેશોમાં સહજ છે. ઉપસર્ગ સાથેના આદેશોના ઉદાહરણો:

VAR SUM - એક ચલ SUM બનાવો,

: ODD [x] 1 & ; - એક ODD પ્રક્રિયા બનાવો જે એક વિષમ સંખ્યાને 1 સાથે, એક સમાન સંખ્યાને 0 સાથે બદલે,

0 X - ચલ X ને મૂલ્ય 0 સોંપો,

BR+ P1 P2 - જો સ્ટેકમાંથી લીધેલ તેની ટોચની કિંમત ધન હોય, તો પછી P1 ચલાવો, અન્યથા P2 ચલાવો,

આરપી ચેક - ફરીથી અને ફરીથી ચેક પ્રક્રિયા કરો,

$REAL નો ઉપયોગ કરો - ઉપયોગ માટે $REAL પેટાડિક્શનરી ખોલો.

સામાન્ય રીતે, ચોક્કસ ઉપસર્ગને તેના પછી ચોક્કસ સંખ્યામાં શબ્દોની જરૂર હોય છે. તેથી, હમણાં જ આપેલા ઉદાહરણોમાં, ઉપસર્ગ VAR, !0 અને USE દરેકને એક શબ્દની જરૂર છે, અને ઉપસર્ગ BR+ ને બે શબ્દોની જરૂર છે. જો કે, ઉપસર્ગ: (કોલોન) તમને ત્રણ શબ્દોથી શરૂ કરીને કોઈપણ લંબાઈનો આદેશ બનાવવાની મંજૂરી આપે છે. આદેશનો અંત શબ્દ છે; (અર્ધવિરામ). એક મનસ્વી લંબાઈ એ સતત વર્ણનકર્તા આદેશ CNST A1 ... AJ ની લાક્ષણિકતા પણ છે. અને પ્રક્રિયા બહુવિધ પસંદગી આદેશ BR A1 P1 ... AJ PJ ELSE PN.

ઉપસર્ગ એ વિશિષ્ટ શબ્દો છે જે, જ્યારે આદેશની આગળ ઉમેરવામાં આવે છે, ત્યારે તેની સામગ્રીમાં ફેરફાર કરે છે અથવા વિશિષ્ટ એક્ઝેક્યુશન મોડને વ્યાખ્યાયિત કરે છે. ઉદાહરણ તરીકે, ઉપસર્ગ વિનાનો VAR X આદેશ એ 16-બીટ વેરીએબલ X બનાવવા માટેની સૂચના છે. જો તમે તેની સાથે BYTE ઉપસર્ગ જોડો છો, તો તમને BYTE VAR X આદેશ મળશે, જે તમને 8-બીટ બનાવવાની સૂચના આપે છે. X નામનું વેરીએબલ (બાઈટ)

અન્ય પ્રકારનો ઉપસર્ગ, એટલે કે:: (બે કોલોન) આદેશના પરિણામને CLEAR પ્રક્રિયા માટે પ્રતિરોધક બનાવે છે, જે શબ્દકોશમાંથી છૂટક શબ્દો દૂર કરે છે. પ્રોગ્રામના નિર્માણ દરમિયાન ડેટા વર્ણન અને પ્રક્રિયા વ્યાખ્યા આદેશો દ્વારા શબ્દકોશમાં દાખલ કરાયેલા નામો પ્રોગ્રામ બનાવ્યા પછી અને પરીક્ષણ કર્યા પછી શબ્દકોશમાંથી દૂર કરી શકાય છે, થોડા અપવાદ સિવાય કે જે ફિનિશ્ડ પ્રોગ્રામને જાળવવા માટે જરૂરી છે. CLEAR $ આદેશ સાથે દૂર કરવામાં આવે છે<имя подсловаря>, જે પ્રોગ્રામ સાથે સંકળાયેલ પેટાડિક્શનરીને સાફ કરવાની સૂચના આપે છે, તેમાં ફક્ત તે જ શબ્દો રાખીને જેની વ્યાખ્યામાં ઉપસર્ગ છે ::. આદેશોના ઉદાહરણો કે જે કાઢી ન શકાય તેવા શબ્દો જનરેટ કરે છે:

:: BYTE CNST LITCODE # #0 #A ;

:: : MOD / [int(a,b),res(a,b)] E2 D [res(a,b)] ;

બીજા ઉદાહરણ તરીકે, જેમાં :: અને BYTE ઉપસર્ગો છે, બતાવે છે કે આદેશમાં એક કરતાં વધુ ઉપસર્ગ હોઈ શકે છે.

આમ, DSSP માં આદેશ કાં તો એક શબ્દ (મોનોવર્ડ) અથવા શબ્દસમૂહ (શબ્દસમૂહ) હોઈ શકે છે, જે ઉપસર્ગથી શરૂ થાય છે અને આ ઉપસર્ગ માટે સેટ કરેલ શબ્દોની સંખ્યા ધરાવે છે, અને જો ઉપસર્ગ શબ્દોની મનસ્વી સંખ્યાને મંજૂરી આપે છે, તો પછી અંતમાં મર્યાદિત શબ્દ, અથવા તે વિશેષ ઉપસર્ગ શબ્દો સાથે આગળના ભાગમાં પૂરક વાક્ય હોઈ શકે છે.

મૂળભૂત DSSP ભાષામાં કમાન્ડ કરતાં વધુ જટિલ સિન્ટેક્ટિક કન્સ્ટ્રક્શન્સ હોતા નથી અને સામાન્ય રીતે ઉપર ચર્ચા કરાયેલા સિવાય અન્ય કોઈ કન્સ્ટ્રક્શન્સ સમાવતા નથી. અભિવ્યક્તિ અને કાર્ય જેવી પ્રોગ્રામિંગ ભાષાઓમાં પણ આવી અનિવાર્ય વસ્તુઓ બેઝ લેંગ્વેજમાં ગેરહાજર છે અને જો જરૂરી હોય તો, તેના વિકાસ દરમિયાન જ રજૂ કરી શકાય છે.

બેઝ લેંગ્વેજમાં પ્રોગ્રામ એ ટેક્સ્ટમાં જે ક્રમમાં દેખાય છે તે ક્રમમાં એક્ઝિક્યુટ કરાયેલ આદેશોનો સંગ્રહ છે. તદુપરાંત, દરેક આદેશ, ફક્ત આદિમ સમાવિષ્ટોના અપવાદ સાથે, તેના અમલીકરણની પ્રક્રિયામાં આદેશોનો ક્રમ શામેલ છે જે તેમાં સમાવિષ્ટ શબ્દોને વ્યાખ્યાયિત કરે છે. સમાવિષ્ટ આદેશો બદલામાં આદેશ સાંકળોને દર્શાવતા શબ્દો સમાવી શકે છે, જેમાં તેમની સંકળાયેલ સાંકળો વગેરેનો ઉલ્લેખ કરતા શબ્દો પણ હોઈ શકે છે. તે સ્તર સુધી જ્યાં આદેશોમાં ફક્ત આદિકાળનો સમાવેશ થાય છે.

PARA ભાષાનું સામાન્ય વર્ણન, જેણે આ પ્રકરણની સામગ્રીની રચના કરી હતી, તે આ ભાષાની રચનાની લાક્ષણિકતાઓ અને તેના આદેશોના મૂળભૂત (પ્રારંભિક) સમૂહને સમર્પિત હતી, જે બિલ્ટ-ઇન આદેશોનો સમૂહ છે (આદિમ) DSSP પ્રોસેસરનું. ભાષાનો વધુ વિકાસ અને પ્રોસેસરની ક્ષમતાઓમાં અનુરૂપ વધારો નવી પ્રક્રિયાઓ, આદેશો, ફોર્મેટ્સ અને મૂળભૂત સાધનોનો ઉપયોગ કરીને બનાવવામાં આવેલ ડેટા પ્રકારો રજૂ કરીને હાથ ધરવામાં આવે છે. એક નિયમ તરીકે, આવા વિકાસ પ્રકૃતિમાં સમસ્યા લક્ષી હોય છે અને બેઝ સિસ્ટમ ઉપરાંત પ્રોસેસર ઇનપુટ પર લોડ થયેલ પ્રક્રિયાઓના પેકેજના સ્વરૂપમાં હાથ ધરવામાં આવે છે.

બીજી બાજુ, DSSP પ્રોગ્રામ્સની મશીન કાર્યક્ષમતા વધારવા માટે તેના આધારે અમલમાં મુકવામાં આવેલા વિશેષ માધ્યમો સાથે મૂળભૂત સિસ્ટમને પૂરક બનાવી શકાય છે. આ સુવિધાઓમાં ઉપયોગમાં લેવાતા મશીનના આદેશ કોડમાં વ્યક્તિગત પ્રક્રિયાઓને સીધી રીતે વ્યાખ્યાયિત કરવાની ક્ષમતા શામેલ છે. પ્રક્રિયાને વ્યાખ્યાયિત કરવાની પદ્ધતિ તેના વધુ ઉપયોગ પર કોઈ અસર કરતી નથી: બધી પ્રક્રિયાઓના નામ સામાન્ય શબ્દકોશમાં દાખલ કરવામાં આવે છે અને તે સંપૂર્ણપણે સમાન છે. સંખ્યાબંધ લાઇબ્રેરી પ્રોગ્રામ્સ તમને અન્ય ભાષાઓમાં લખેલી પ્રક્રિયાઓ અથવા સંપૂર્ણ પ્રોગ્રામ્સનો ઉપયોગ કરવાની મંજૂરી આપે છે.

કામગીરી અને આદેશોનું વર્ણન

સ્ટેક પર કામગીરી કરવામાં આવી હતી

ઓપરેન્ડ સ્ટેક એ DSSP પ્રોસેસર આર્કિટેક્ચરના મુખ્ય ઘટકોમાંનું એક છે. મોટાભાગની પ્રોસેસર સૂચનાઓ સ્ટેકનો ઉપયોગ કરે છે, તેમાંથી તેઓને જરૂરી ઓપરેન્ડનો ઉપયોગ કરે છે અને પરિણામોને તેના પર દબાણ કરે છે. સ્ટેક પરના ડેટાનું અર્થઘટન એ સમસ્યાના નિરાકરણના સાર પર આધાર રાખે છે, એટલે કે, તે આખરે પ્રોગ્રામરની જવાબદારી છે. હકીકત એ છે કે સ્ટેક પર દબાણ કરાયેલ મૂલ્ય ખરેખર તેનું નામ ગુમાવે છે, પ્રોગ્રામ ટેક્સ્ટમાંથી તે નક્કી કરવું મુશ્કેલ છે કે ચોક્કસ ઑપરેશન કયા ઑપરેન્ડ પર લાગુ થાય છે અને તેના પરિણામો શું છે. તેથી, ટિપ્પણીઓનો ઉપયોગ RAYA ભાષામાં પ્રક્રિયાઓના ઓપરેન્ડ અને પરિણામોને સ્પષ્ટપણે સૂચવવા માટે થાય છે. આ કિસ્સામાં, સ્ટેકની સંપૂર્ણ સામગ્રીનું વર્ણન કરવું જરૂરી નથી (અને હંમેશા શક્ય નથી). સ્ટેકના ઉપરના ભાગ પર ટિપ્પણી કરવી એકદમ જરૂરી છે, જે તેના પર કરવામાં આવતી પ્રક્રિયાથી પ્રભાવિત થાય છે, કારણ કે આ વિના પ્રોગ્રામની સ્પષ્ટતા ખોવાઈ જાય છે અને તેની ચકાસણી મુશ્કેલ બની જાય છે.

પ્રોગ્રામ એકરૂપતા હાંસલ કરવા માટે, આ ટિપ્પણીઓ થોડા સરળ નિયમોને ધ્યાનમાં રાખીને લખવી જોઈએ. કોઈપણ ટિપ્પણીની જેમ, સ્ટેક પરના ડેટાનું વર્ણન ચોરસ કૌંસમાં બંધ છે. આ વર્ણન એ ઓપરેન્ડ્સની સૂચિ છે જે પ્રોગ્રામમાં આપેલ બિંદુ પર સ્ટેક પર છે. દરેક સૂચિ ઘટક એક સ્ટેક પોઝિશનના સમાવિષ્ટોને દર્શાવે છે; સ્ટેક પોઝિશન મૂલ્યો ડાબેથી જમણે સૂચિબદ્ધ છે, સૌથી ઊંડા તત્વથી શરૂ કરીને અને સ્ટેકની ટોચ સાથે સમાપ્ત થાય છે. વ્યક્તિગત ઓપરેન્ડનું વર્ણન સંખ્યા, નામ, અભિવ્યક્તિ અથવા અન્ય કોઈપણ અર્થપૂર્ણ એન્ટ્રી હોઈ શકે છે જે સ્ટેક પર સ્થિત મૂલ્યનો અર્થ સમજાવે છે. કેટલીકવાર સ્ટેક પોઝિશન માટે બહુવિધ સંભવિત મૂલ્યો હોય છે. આ કિસ્સામાં, મૂલ્યોને સ્લેશ દ્વારા અલગ કરીને સૂચિબદ્ધ કરવામાં આવે છે.

અહીં ઓપરેન્ડ સ્ટેકની સ્થિતિને પ્રતિબિંબિત કરતી ટિપ્પણીનું ઉદાહરણ છે:

[પ્રારંભ સરનામું,N+1,1/0]

પ્રોગ્રામના બિંદુ પર જ્યાં આ ટિપ્પણી સ્થિત છે, ઓપરેન્ડ સ્ટેકમાં ઓછામાં ઓછા ત્રણ સ્થાનો હોવા જોઈએ, જેમાં ટોચ પર 1 અથવા 0, ઉપ-ટોચ પર N+1 જેટલું સંખ્યાત્મક મૂલ્ય અને તેની નીચે કેટલીક સંખ્યા હોવી જોઈએ. , પ્રારંભિક સરનામા તરીકે અર્થઘટન.

જરૂરી સ્ટેક પોઝિશન દર્શાવવાની સુવિધા માટે, અમે ઊંડાણના ખ્યાલનો ઉપયોગ કરીશું. અમે ધારીશું કે સ્ટેકની ટોચ ઊંડાઈ 1 પર છે, ઉપ-ટોચ ઊંડાઈ 2 પર છે, વગેરે. ખાસ કરીને, ઉદાહરણમાં "start.address" તરીકે દર્શાવવામાં આવેલ મૂલ્ય. 3 ની ઊંડાઈએ આવેલું છે.

અમે સ્ટેક પર મૂલ્યોને દબાણ કરવા માટેના આદેશો સાથે મૂળભૂત DSSP ભાષાનો અભ્યાસ શરૂ કરીશું. આ પ્રકારનો સૌથી સરળ (અને વારંવાર વપરાતો) આદેશ એ આંકડાકીય શાબ્દિક છે, એટલે કે, સ્ટેક પર ધકેલવા જોઈએ તે સ્થિરતાનો સ્પષ્ટ સંકેત. ચાલો, ઉદાહરણ તરીકે, આપણે 28, -5 અને 11 ને સ્ટેક પર દબાણ કરવા માંગીએ છીએ, આ કરવા માટે, આપણે કીબોર્ડમાંથી લાઇન દાખલ કરવાની જરૂર છે:

28 -5 11 અને કી દબાવો (વાહન પરત). પ્રોસેસર દાખલ કરેલા નંબરોને ઓળખશે અને તેમને સ્ટેક પર એક પછી એક દબાણ કરશે, જેથી ટોચ 11 હશે. આને ચકાસવા માટે, ડિસ્પ્લે સ્ક્રીન પર સ્ટેકની ટોચની કિંમત પ્રિન્ટ કરો. આ કરવા માટે, નામ સાથે DSSP આદેશનો ઉપયોગ કરો. (બિંદુ). કીબોર્ડ પર "પીરીયડ" અક્ષર લખીને દબાવીને , અમને સ્ક્રીન પર જવાબ મળે છે: 11, જે સ્ટેક પર દબાણ કરાયેલ છેલ્લા મૂલ્યને અનુરૂપ છે. "ડોટ" ને ફરીથી ચલાવવાથી સમાન પરિણામ મળે છે - આ આદેશ સ્ટેકની સ્થિતિ બદલ્યા વિના ફક્ત શિરોબિંદુને રેન્ડર કરે છે.

સ્ક્રીન પર સ્ટેકની સંપૂર્ણ સામગ્રી પ્રદર્શિત કરવા માટે, DSSP પાસે આદેશ છે .. (બે બિંદુઓ). તેને એક્ઝિક્યુટ કર્યા પછી, અમને સ્ક્રીન પર લાઇન મળે છે:

જેમ તમે જોઈ શકો છો, પ્રિન્ટઆઉટનું સ્વરૂપ સ્ટેક સ્ટેટને ટિપ્પણી કરવા માટેના નિયમોને અનુસરે છે (સિવાય કે અલ્પવિરામને બદલે સ્પેસનો ઉપયોગ કરવામાં આવે). .. આદેશ સ્ટેકની સામગ્રીને બદલતો નથી.

32-બીટ શબ્દ (4 બાઇટ્સ) નો ઉપયોગ મશીનની મેમરીમાં એક સ્ટેક પોઝિશનને રજૂ કરવા માટે થાય છે. તદનુસાર, DSSP પ્રોસેસર માત્ર -2147483648 થી 2147483647 સુધીની રેન્જમાં પડેલી પૂર્ણાંક સંખ્યાઓને યોગ્ય રીતે સમજી શકે છે. જો દાખલ કરેલ સંખ્યાને 32 બિટ્સ દ્વારા દર્શાવી શકાતી નથી (ચિહ્નને ધ્યાનમાં લેતા), તો સૌથી નોંધપાત્ર બિટ્સ કે જે ફિટ ન હોય તેને કાઢી નાખવામાં આવે છે. .

ધ્યાનમાં લેવાયેલા ઉદાહરણોમાં, એવું માનવામાં આવતું હતું કે DSSP પ્રોસેસર દશાંશ ઇનપુટ/આઉટપુટ મોડમાં છે. આ મોડને PARA ભાષામાં સેટ કરવા માટે B10 આદેશ છે.

ઘણા કાર્યોમાં, પ્રોસેસ્ડ ડેટાને નંબર તરીકે નહીં, પરંતુ બાઈનરી કોડ્સ તરીકે અર્થઘટન કરવું જરૂરી છે, એટલે કે, 32-કમ્પોનન્ટ બીટ વેક્ટર. DSSP પાસે બાઈનરી, ઓક્ટલ અથવા હેક્સાડેસિમલ નંબર સિસ્ટમ્સમાં પ્રસ્તુત કોડ્સ સાથે કામ કરવાની ક્ષમતા છે. ઇચ્છિત મોડ સેટ કરવા માટે, ત્રણ આદેશોમાંથી એક ચલાવવા માટે તે પૂરતું છે: B2, B8 અથવા B16, જેના પછી પ્રોસેસર ઉલ્લેખિત નંબર સિસ્ટમમાં દાખલ કરેલા બધા કોડ્સ સ્વીકારશે અને છાપશે.

આ સુવિધાનો ઉપયોગ દશાંશ નંબરોને બેઝ 2, 8 અને 16 સાથે નંબર સિસ્ટમ્સમાં કન્વર્ટ કરવા માટે થઈ શકે છે. ઉદાહરણ તરીકે, નંબર 29 ને કન્વર્ટ કરવા માટે તમારે નીચેની લાઇન દાખલ કરવાની અને એક્ઝિક્યુટ કરવાની જરૂર છે:

B10 29 B2. B8. B16. પરિણામે, પ્રોસેસર સ્ક્રીન પર સંખ્યાઓની શ્રેણી પ્રદર્શિત કરશે: 00000000035 0000001D જે ત્રણ નિર્દિષ્ટ નંબર સિસ્ટમ્સમાં દશાંશ નંબર 29 નું પ્રતિનિધિત્વ છે. નોંધ કરો કે કોડ્સ તેમના મશીન રજૂઆતમાં છાપવામાં આવે છે, એટલે કે આગળના શૂન્ય સાથે અને "+", "-" ચિહ્નો વગર. લાઇન B10 -2 B8 એક્ઝિક્યુટ કરતી વખતે. નંબર 377777777776 બનાવશે, જે બેના પૂરકમાં -2 ની અષ્ટાદિક રજૂઆત છે.

હેક્સાડેસિમલ કોડ્સ સાથે કામ કરતી વખતે, ન્યુમેરિક લિટરલ્સ અને DSSP પ્રોસેસર કમાન્ડ નામો વચ્ચે અથડામણ થઈ શકે છે. ઉદાહરણ તરીકે, હેક્સાડેસિમલ I/O મોડમાં શબ્દ B8 ને ઓક્ટલ મોડ આદેશ તરીકે અને હેક્સાડેસિમલ કોન્સ્ટન્ટ તરીકે અર્થઘટન કરી શકાય છે. અસ્પષ્ટતાને ટાળવા માટે, તમારે બિન-નોંધપાત્ર શૂન્ય સાથે આંકડાકીય શાબ્દિક શરૂઆત કરવી જોઈએ, ઉદાહરણ તરીકે 0B8.

DSSP પ્રોસેસરની કમાન્ડ સિસ્ટમનો આધાર સ્ટેક પર સ્થિત ડેટાને કન્વર્ટ કરવાની કામગીરી છે. આ ઑપરેશનના ઑપરેશનને સંચાલિત કરતો સામાન્ય નિયમ એ છે કે દરેક ઑપરેશન સ્ટેકમાંથી જરૂરી ઑપરેન્ડ્સ વાપરે છે (દૂર કરે છે) અને પરિણામ મૂલ્યો (જો કોઈ હોય તો) તેમની જગ્યાએ દબાણ કરે છે.

ચાલો પ્રોસેસર સૂચનાઓને ધ્યાનમાં લઈએ જે ચાર અંકગણિત ક્રિયાઓ અમલમાં મૂકે છે: સરવાળા, બાદબાકી, ગુણાકાર અને પૂર્ણાંકોનો ભાગાકાર. PARADISE ની ભાષામાં તેમને દર્શાવવા માટે શબ્દોનો ઉપયોગ થાય છે: +, -, * અને /, અનુક્રમે. સ્ટેક પર બે સંખ્યાઓનો સરવાળો મેળવવા માટે, ઉદાહરણ તરીકે 123 અને 45, તમારે આ સંખ્યાઓને સ્ટેક પર દબાણ કરવાની અને + આદેશ ચલાવવાની જરૂર છે. આ કરવા માટે, ફક્ત કીબોર્ડમાંથી નીચેની લીટી દાખલ કરો (ધારી રહ્યા છીએ કે દશાંશ ઇનપુટ/આઉટપુટ મોડ સેટ છે):

123 45 +

જો તમે હવે સ્ક્રીન પર સ્ટેકની સામગ્રીઓ પ્રદર્શિત કરો છો (.. આદેશનો ઉપયોગ કરીને), ઉમેરાનું પરિણામ દૃશ્યમાન થશે:

વિનિમયાત્મક ગુણાકાર કામગીરી સમાન રીતે કાર્ય કરે છે.

જ્યારે બાદબાકી અને વિભાજનની બિન-વિનિમયાત્મક ક્રિયાઓ કરતી વખતે, સ્ટેકના સબવર્ટેક્સને લઘુએન્ડ (વિભાજ્ય) તરીકે લેવામાં આવે છે, અને ટોચને સબટ્રેહેન્ડ (વિભાજક) તરીકે લેવામાં આવે છે. ઉદાહરણ તરીકે, તફાવત 151-68 ની ગણતરી કરવા માટે તમારે લાઇન ચલાવવાની જરૂર છે:

151 68 -

PARA ભાષામાં અંકગણિત ઑપરેશન કરવા માટેનો પ્રોગ્રામ એ હકીકત દ્વારા વર્ગીકૃત થયેલ છે કે ઑપરેશન તેના અનુરૂપ ઑપરેન્ડ્સ પછી સ્થિત છે. અંકગણિત અભિવ્યક્તિઓના આ સંકેતને પોસ્ટફિક્સ (અથવા પોલિશ વ્યસ્ત) સંકેત કહેવામાં આવે છે અને તેનો ઉપયોગ સ્ટેક માઇક્રોકેલ્ક્યુલેટરમાં વ્યાપકપણે થાય છે. ચાલો, ઉદાહરણ તરીકે, આપણે અંકગણિત અભિવ્યક્તિના મૂલ્યની ગણતરી કરવાની જરૂર છે ((127+81)*15-(31+117)*21)*3

પોસ્ટફિક્સ નોટેશનમાં, આ અભિવ્યક્તિ આના જેવી દેખાશે:

127 81 + 15 * 31 117 + 21 * - 3 *

આ લાઇન (જેમાં શબ્દોને એકબીજાથી સ્પેસ દ્વારા અલગ કરવામાં આવે છે) એ ડીએસએસપી પ્રોસેસર દ્વારા આપણી અભિવ્યક્તિની ગણતરી માટે તૈયાર પ્રોગ્રામ છે.

વિભાજન/કમાન્ડ અન્ય અંકગણિત ક્રિયાઓથી અલગ છે કારણ કે તેનું પરિણામ બે મૂલ્યો છે - ભાગ અને શેષ. ભાગાંક સ્ટેકના તળિયે અને બાકીનો ટોચ પર સમાપ્ત થાય છે. જો ડિવિડન્ડ અને વિભાજકમાં અલગ અલગ ચિહ્નો હોય તો ભાગાંક નકારાત્મક છે. બાકીનામાં હંમેશા ડિવિડન્ડની નિશાની હોય છે. અહીં ડિવિઝન આદેશનો ઉપયોગ કરવાના કેટલાક ઉદાહરણો છે.

125 7 / [-17,-6] / / /

ગણતરીઓ કરતી વખતે, ભૂલની પરિસ્થિતિઓ આવી શકે છે: ઓવરફ્લો અને શૂન્ય દ્વારા વિભાજન. ડીએસએસપી પ્રોસેસર તેમના પર કોઈપણ રીતે પ્રતિક્રિયા આપતું નથી (ખાસ કરીને, જ્યારે શૂન્યથી વિભાજીત થાય છે, ત્યારે સ્ટેકની સામગ્રી બદલાતી નથી), અને ઑપરેશનના યોગ્ય ઉપયોગ પર નિયંત્રણ પ્રોગ્રામર પર રહે છે.

પ્રોગ્રામિંગ કરતી વખતે, તમારે ઘણીવાર મૂલ્યના મૂલ્યમાં 1 અથવા 2 દ્વારા વધારો અથવા ઘટાડો કરવો પડે છે. PARA ભાષામાં વિશેષ આદેશો દાખલ કરવામાં આવ્યા છે જે સ્ટેકની ટોચ પર નિર્દિષ્ટ ક્રિયાઓ કરે છે. તેઓ શબ્દો દ્વારા નિયુક્ત કરવામાં આવે છે: 1+, 1-, 2+, 2-. આ આદેશોનો અમલ કરવો એ જરૂરી સ્થિરાંક (1 અથવા 2) ને સ્ટેક પર દબાણ કરવા અને પછી જરૂરી અંકગણિત કામગીરી (+ અથવા -) કરવા સમાન છે. ઉદાહરણ તરીકે, 2+ શબ્દ જોડી 2+ ની સમકક્ષ છે. ભાષામાં આ આદેશોનો પરિચય કાર્યક્ષમતાના વિચારણાઓ દ્વારા ચલાવવામાં આવ્યો હતો.

ઉપરાંત, કાર્યક્ષમતા વધારવા માટે, DSSP પ્રોસેસરની બેઝ લેંગ્વેજમાં T0 અને T1 આદેશો છે, જે સ્ટેકની ટોચ પરની કિંમતને અનુક્રમે 0 અને 1 સાથે બદલે છે, પછી ભલેને ઉલ્લેખિત આદેશ પહેલાં ટોચ પર કઈ કિંમત હતી. ઉદાહરણો:

NEG, ABS અને SGN આદેશો પણ સંખ્યાત્મક ડેટા સાથે કામ કરવા માટે બનાવાયેલ છે. NEG કમાન્ડ સ્ટેકની ટોચની ચિહ્નને ઉલટાવે છે, ABS સ્ટેકની ટોચની કિંમતને તેના મોડ્યુલસથી બદલે છે, SGN સ્ટેકની ટોચ પરથી સંખ્યાત્મક મૂલ્યનો ઉપયોગ કરે છે અને તેની જગ્યાએ એક્સટ્રેક્ટેડ નંબરની ચિહ્ન મૂકે છે: -1 - જો સંખ્યા ઋણ છે, 1 - જો સકારાત્મક, 0 - જો શૂન્ય બરાબર છે. ઉદાહરણ તરીકે:

5 NEG [-5] ABS SGN

બેઝ લેંગ્વેજ આદેશો MIN અને MAX તમને લઘુત્તમ અને મહત્તમ બે પૂર્ણાંકો શોધવા માટે પરવાનગી આપે છે. આ સૂચનાઓ માટેના ઓપરેન્ડ્સ સ્ટેકની ઉપર અને સબટોપ પર સ્થિત બે નંબરો છે. MIN આદેશ સ્ટેક પર પેરામીટર્સની ન્યૂનતમ સંખ્યા છોડી દે છે, MAX - તેમાંથી મહત્તમ. ઉદાહરણ તરીકે:

5 0 15 મિનિટ [-5.0] મહત્તમ

સ્ટેક પર ત્રણ નંબરોની ન્યૂનતમ (મહત્તમ) શોધવા માટે, ફક્ત MIN (MAX) આદેશનો બે વાર ઉપયોગ કરો:

MIN MIN [-2]

SEG કમાન્ડ તપાસે છે કે શું સ્ટેકની ટોચ પર સમાયેલ નંબર a થી b (સીમાઓ સહિત) ઉલ્લેખિત શ્રેણીમાં આવે છે અને પરિણામે સ્ટેક પર એક ચિહ્ન છોડી દે છે: 1 જો સંખ્યા શ્રેણીમાં હોય, અને 0 જો નથી:

SEG [સાઇન] ઉદાહરણ તરીકે:

સંખ્યાત્મક ડેટા સાથે કામ કરવા પર કેન્દ્રિત આદેશો ઉપરાંત, DSSP પ્રોસેસરના આદેશ સમૂહમાં 32-બીટ કોડને કન્વર્ટ કરવા માટે રચાયેલ સંખ્યાબંધ કામગીરીનો સમાવેશ થાય છે. આ ઑપરેશન્સ સ્ટેક એલિમેન્ટને 32-કમ્પોનન્ટ બીટ વેક્ટર તરીકે ગણે છે, જેનાં ઘટકોને જમણેથી ડાબે ક્રમાંકિત કરવામાં આવે છે જેથી ડાબી બાજુના બીટને 31 નંબર આપવામાં આવે અને સૌથી જમણી બાજુના બીટને 0 ક્રમાંકિત કરવામાં આવે. ઘટકોની ઉતરતી ક્રમાંકન સંખ્યાને અનુસરે છે. ઘણા માઇક્રોપ્રોસેસરો માટે અપનાવવામાં આવેલ મશીન વર્ડ બિટ્સ.

બીટ વેક્ટર પર કરવામાં આવતા આદેશોમાં મુખ્યત્વે બીટવાઇઝ બુલિયન બીજગણિત કામગીરીનો સમાવેશ થાય છે:

    INV સ્ટેકની ટોચનું બિટવાઇઝ વ્યુત્ક્રમ, ટોચના દરેક બીટનું મૂલ્ય બદલીને, એટલે કે, 0 ને 1 સાથે અને 1 ને 0 સાથે બદલીને;

    સ્ટેકના ટોપ અને સબવર્ટેક્સનું બિટવાઇઝ જોડાણ &, પરિણામના i-th બીટને, i=31,30,...,0, મૂલ્ય 1 પર સેટ કરીને જો બંને ઓપરેન્ડના i-th બિટ્સ સમાન હોય 1, અને અન્ય કિસ્સાઓમાં i-th બીટને 0 ની બરાબર સેટ કરો;

    સ્ટેક &0 ના ટોપ અને સબવર્ટેક્સનું બિટવાઇઝ ડિસજેક્શન, પરિણામના i-th બીટને i=31,30,...,0, મૂલ્ય 0 પર સેટ કરો જો બંને ઓપરેન્ડના i-th બિટ્સ સમાન હોય 0, અને અન્ય કિસ્સાઓમાં i-th બીટને 1 ની બરાબર સેટ કરો;

    શિરોબિંદુ અને સબવર્ટેક્સનો બીટવાઇઝ ઉમેરો (બિન-સમતુલ્ય) "+", પરિણામના i-th બીટને 0 પર સેટ કરો જો બંને ઓપરેન્ડના i-th બિટ્સ સમાન મૂલ્યો ધરાવતા હોય, અને i-th બીટને સેટ કરો જો ઓપરેન્ડના i-th બિટ્સની કિંમતો અલગ હોય તો પરિણામ 1.

525 INV 722 અને 136 અને 0 325 "+"

bitwise જોડાણનો ઉપયોગ શબ્દના બિટ્સને ફરીથી સેટ કરવા (સાફ) કરવા માટે થાય છે. આ કરવા માટે, તેઓ મૂળ શબ્દનું જોડાણ એક માસ્ક સાથે કરે છે જેમાં તે બીટ્સમાં શૂન્ય હોય છે જેને સાફ કરવાની જરૂર હોય છે અને બાકીના બિટ્સમાં હોય છે. ઉદાહરણ તરીકે, જો તમારે અમુક શબ્દ X માં બિટ્સ 3 થી 5 રીસેટ કરવાની જરૂર હોય, તો તમારે માસ્ક 37777777707 સાથે તેનું બિટવાઇઝ જોડાણ કરવું પડશે. X=235 માટે અમને મળે છે:

બિટવાઇઝ ડિસજેક્શનનો ઉપયોગ બિટ્સના ઇચ્છિત સંયોજનને અગાઉ સાફ કરેલા શબ્દ બિટ્સના જૂથમાં મૂકવા માટે કરી શકાય છે. ચાલો, ઉદાહરણ તરીકે, તમારે છેલ્લા ઉદાહરણના પરિણામે સ્ટેક પર બાકી રહેલા શબ્દના 3 થી 5 બિટ્સમાં દ્વિસંગી સંયોજન 010 મૂકવાની જરૂર છે. આ આ રીતે કરી શકાય છે:

બીટ મેનીપ્યુલેશન કામગીરીમાં લોજિકલ શિફ્ટ કમાન્ડનો પણ સમાવેશ થાય છે:

    ડાબી પાળી SHL - સ્ટેકની ટોચની દરેક બીટ, 31મીથી શરૂ કરીને, ઉતરતા ક્રમમાં આગામી એકનું મૂલ્ય લે છે, અને છેલ્લું, શૂન્ય બીટ મૂલ્ય 0 લે છે;

    જમણી પાળી SHR - સ્ટેકની ટોચની દરેક બીટ, 0 થી શરૂ થાય છે, આગળના એકનું મૂલ્ય ચડતા ક્રમમાં લે છે, અને 31મો બીટ મૂલ્ય 0 લે છે;

    ટોચની SHT પર શિફ્ટ - ટોચનું તત્વ સ્ટેકમાંથી દૂર કરવામાં આવે છે અને તેને પૂર્ણાંક N તરીકે ગણવામાં આવે છે, જે દર્શાવે છે કે સ્ટેકની ટોચ પર કેટલી પાળી અને કઈ દિશામાં થવી જોઈએ: N>0 માટે ડાબી બાજુએ શિફ્ટ કરવામાં આવે છે. , એન માટે<0 - вправо.

B8 125 SHR SHL -2 SHT

લેફ્ટ શિફ્ટ ઑપરેશન્સનો ઉપયોગ N ની શક્તિ સાથે સંખ્યાઓને 2 વડે ગુણાકાર કરવા માટે થઈ શકે છે, જ્યાં N એ કુદરતી સંખ્યા છે જે શિફ્ટની સંખ્યા નક્કી કરે છે. ઉદાહરણ તરીકે, નંબર -5 નો 8 વડે ગુણાકાર નંબર 3 સ્થાનોને ડાબી તરફ ખસેડીને કરી શકાય છે:

B10 -5 3 SHT [-40]

ઓવરફ્લોની શક્યતા ધ્યાનમાં લેવી આવશ્યક છે.

જમણી પાળીનો ઉપયોગ માત્ર ધન સંખ્યાઓ માટે N ની ઘાતના 2 દ્વારા ભાગાકાર તરીકે થઈ શકે છે, કારણ કે જમણી પાળી દરમિયાન સૌથી નોંધપાત્ર (ચિહ્ન) બીટ શૂન્ય પર સેટ કરેલ છે. ઉદાહરણ તરીકે:

જ્યારે

સ્ટેક 1 બીટના ઉપરના ભાગને ચક્રીય રીતે જમણી ROR અને ડાબી ROL તરફ શિફ્ટ કરવાના આદેશો લોજિકલ શિફ્ટ કમાન્ડ્સ જેવા જ છે, સિવાય કે પુશ કરેલ આઉટમોસ્ટ બીટ અદૃશ્ય થઈ જતું નથી, પરંતુ તેને વિરુદ્ધ છેડે ખાલી કરેલી જગ્યામાં ધકેલવામાં આવે છે. 32-બીટ લાંબો શબ્દ. ઉદાહરણ તરીકે (હેક્ઝાડેસિમલ સંખ્યાઓ):

DSSP પ્રોસેસર આદેશો SWB અને SWW પણ બાઈનરી કોડની પ્રક્રિયા માટે બનાવાયેલ છે. SWB ફંક્શન સ્ટેકની ટોચના અડધા ભાગના લો-ઓર્ડરના બાઈટને સ્વેપ કરવાનું છે, અને SWW ફંક્શન સ્ટેકની ટોચના અડધા ભાગને સ્વેપ કરવાનું છે. ચાલો સમજાવીએ કે આ આદેશો હેક્સાડેસિમલ I/O મોડનો ઉપયોગ કરીને કેવી રીતે કાર્ય કરે છે (આ મોડમાં, દરેક બાઈટને બે હેક્સાડેસિમલ અંકો દ્વારા દર્શાવવામાં આવે છે):

B16 0ABCD SWB SWB

0ABCDEF12 SWW SWB

સ્ટેક મેનિપ્યુલેશન આદેશો PARA ભાષામાં મહત્વપૂર્ણ ભૂમિકા ભજવે છે. તેઓ સ્ટેક પર સ્થિત ડેટાના મૂલ્યોને બદલતા નથી, પરંતુ માત્ર તેમના સ્થાનને બદલે છે, જે સ્ટેકમાં ઊંડા સ્થિત ઓપરેન્ડ્સને ઍક્સેસ કરવાનું સરળ બનાવે છે.

સ્ટેક તત્વોને કાઢી નાખવા માટે ત્રણ આદેશો છે: D, DD, DS (ડ્રોપ). ડી કમાન્ડ સ્ટેકમાંથી એક (ટોચ) ઘટકને દૂર કરે છે, ડીડી બે ઘટકોને દૂર કરે છે, ઉદાહરણ તરીકે:

D DD D DS સ્ટેકમાંથી તમામ ઘટકોને દૂર કરે છે (સ્ટેક સાફ કરે છે):

સ્ટેક C (Copy) ની ટોચની નકલ કરવાનો આદેશ તેના ટોચના વર્તમાન મૂલ્યની નકલને સ્ટેક પર દબાણ કરે છે. આ સ્ટેકના ટોચના તત્વને ડુપ્લિકેટ કરવા સમાન છે: જૂનું ટોચ સબવર્ટેક્સ બને છે, અને તેની નકલ નવી ટોચ બને છે. ઉદાહરણ:

ચાલો આ આદેશનો ઉપયોગ બતાવીએ 5. અમે ધારીએ છીએ કે મૂલ્ય x સ્ટેકની ટોચ પર સમાયેલ છે.

[x] C 3 * 4 + * 5 -

સ્ટેકની ટોચની નકલ કરવાના આદેશ સાથે, PARA ભાષામાં C2, C3, C4 આદેશો પણ છે, જે 2, 3, 4 ઊંડાણો પર સ્થિત ઘટકોની નકલ કરે છે. તેમના કાર્યને નીચેના ઉદાહરણો દ્વારા સમજાવી શકાય છે:

C2 C4

સ્ટેકની ટોચ પર ઉલ્લેખિત ઊંડાઈ પર સ્થિત તત્વની નકલ કરવા માટે CT આદેશ પણ છે. સીટી કરતી વખતે, પ્રોસેસર સ્ટેકમાંથી ટોચના ઘટકને દૂર કરે છે, તેના મૂલ્યનો ઉપયોગ કોપી કરેલ તત્વની ઊંડાઈના સૂચક તરીકે કરે છે અને બાદમાંની એક નકલને સ્ટેક પર ધકેલે છે. આમ, ઊંડાઈ 5 પર સ્થિત તત્વની નકલ કરવી એ 5 CT સૂચનાઓની જોડી દ્વારા નિર્દિષ્ટ કરવામાં આવે છે, જેને અમલમાં મૂકીને પ્રોસેસર 5 નંબરને સ્ટેક પર દબાણ કરશે અને પછી CT સૂચનાનો અમલ કરશે. પરિમાણો 1, 2, 3, 4 સાથે સીટીનું અમલીકરણ અનુક્રમે C, C2, C3, C4 આદેશોની સમકક્ષ છે.

એક્સચેન્જ આદેશો E2, E3, E4 (એક્સચેન્જ) સ્ટેકના પ્રથમ (ટોચના) તત્વને અનુક્રમે 2જી, 3જી, 4મી, એટલે કે 2, 3, 4 ની ઊંડાઈ પર સ્થિત તત્વ સાથે ફરીથી ગોઠવે છે. ઉદાહરણ તરીકે:

E3 E2

વધુ ઊંડાણમાં વિનિમય કરવા માટે, ET આદેશનો ઉપયોગ કરો, જે, CTની જેમ, સ્ટેકની ટોચની કિંમતનો ઉપયોગ પ્રથમ તત્વ સાથે વિનિમય કરેલ તત્વની ઊંડાઈના સૂચક તરીકે કરે છે. ઉદાહરણ તરીકે:

5 ઇટી

પરિમાણો 2, 3, 4 સાથેનો ET આદેશ E2, E3, E4 આદેશોની સમકક્ષ છે.

કૉપિ અને શેર કમાન્ડનો ઉપયોગ સમજાવવા માટે, શીખવાના કાર્યનો વિચાર કરો. સ્ટેક પર ત્રણ નંબરો આપવામાં આવ્યા છે. સ્ટેક પર પ્રાપ્ત કરવા માટે જરૂરી છે: . તમે નીચેનો પ્રોગ્રામ સૂચવી શકો છો, જેનો અર્થ ટિપ્પણીઓથી સ્પષ્ટ છે.

C3 C3 C3+

E4+E4

આ ઉદાહરણ સારી રીતે બતાવે છે કે ટિપ્પણીઓની ભૂમિકા કેટલી મહત્વપૂર્ણ છે, જે ઓપરેન્ડ સ્ટેકની સ્થિતિને પ્રતિબિંબિત કરે છે.

પ્રોગ્રામ્સમાં, સંખ્યાત્મક મૂલ્યોની એકબીજા સાથે તુલના કરવી અને સરખામણીના પરિણામોના આધારે વિવિધ પ્રક્રિયાઓ કરવી જરૂરી છે. RAYA ભાષામાં સરખામણી આદેશો છે<, =, >. તેઓ સંખ્યાઓ પર વ્યાખ્યાયિત થાય છે અને પરિણામે 0 અને 1 સંખ્યાત્મક મૂલ્યો ઉત્પન્ન કરે છે< потребляет из стека два элемента и засылает в стек число 1, если значение нижнего элемента оказалось меньше значения верхнего, а в противном случае засылает 0. Например, в результате выполнения последовательности 5 -20 < в стек будет заслан 0. Команда = засылает 1 в случае равенства потребленных ею элементов. Команда >જ્યારે નીચેનું તત્વ ટોચના તત્વ કરતાં મોટું હોય ત્યારે 1 મોકલે છે. બિન-કડક સરખામણીઓને પ્રોગ્રામ કરવા માટે (ઓછી અથવા સમાન, કરતાં વધુ અથવા સમાન), NOT સૂચનાનો ઉપયોગ કરવામાં આવે છે, જે સ્ટેકની ટોચ પરના મૂલ્યને બદલે છે, નહીં શૂન્ય બરાબર, શૂન્ય, અને શૂન્ય સમાન - એક. ઉદાહરણ તરીકે, ગણતરી તાર્કિક અભિવ્યક્તિ x>=5, જ્યાં x એ સ્ટેકની ટોચ પર સ્થિત અમુક સંખ્યા છે, તેને નીચે પ્રમાણે સેટ કરી શકાય છે:

[x] 5< NOT

પ્રોગ્રામિંગ શરતો માટેની શક્યતાઓનું વધુ વિસ્તરણ સરખામણી આદેશો સાથે ઉપયોગ દ્વારા પ્રદાન કરવામાં આવે છે, લોજિકલ કામગીરીજોડાણ & (લોજિકલ AND) અને ડિસજેક્શન &0 (લોજિકલ OR). ચાલો, ઉદાહરણ તરીકે, તમે સ્ટેક પર 1 મેળવવા માંગો છો જો શિરોબિંદુ પરની સંખ્યા x અર્ધ-સેગમેન્ટ C 5 ની હોય.< NOT C2 10 <

&E2 2 = &0

સરખામણી પરિણામો પર આધાર રાખીને પ્રોગ્રામ નિયંત્રણો પછીથી ચર્ચા કરવામાં આવશે.

વ્યાખ્યાયિત પ્રક્રિયાઓ

મૂળભૂત પ્રોગ્રામિંગ ટેકનિક તરીકે, DSSP વપરાશકર્તાને પ્રક્રિયાઓ તરીકે ઓળખાતી કામગીરીના નામાંકિત સિક્વન્સને વ્યાખ્યાયિત કરવાની ક્ષમતા પ્રદાન કરે છે. ચાલો, ઉદાહરણ તરીકે, તમારે મૂલ્યોની ગણતરી કરવાની જરૂર છે ચતુર્ભુજ ત્રિપદીઉલ્લેખિત x મૂલ્યો માટે 3*x**2-4*x+9. આ કિસ્સામાં, તમારે એવી પ્રક્રિયાને વ્યાખ્યાયિત કરવી જોઈએ કે જે ત્રિકોણીય સૂત્રનો અમલ કરે અને પરિણામને ટર્મિનલ પર આઉટપુટ કરે, અને પછી આ પ્રક્રિયાને લાગુ કરો ચોક્કસ મૂલ્યો x જરૂરી પ્રક્રિયા, ચાલો તેને PX કહીએ, નીચે પ્રમાણે વ્યાખ્યાયિત થયેલ છે: PX [x] C 3 * 4 - * 9 + . ડી; કોલોન "પ્રક્રિયા વ્યાખ્યાયિત કરો" ઓપરેશન સૂચવે છે, પ્રક્રિયાના નામ સાથે અલગ જગ્યા પછી કોલોન આવે છે. આદેશોનો નિર્ધારિત ક્રમ (પ્રક્રિયાનો મુખ્ય ભાગ) પ્રક્રિયાના નામ પછી સ્થિત છે અને અર્ધવિરામ સાથે સમાપ્ત થાય છે. ટૂંકમાં, પ્રક્રિયા ફોર્મમાં વ્યાખ્યાયિત થયેલ છે:

: <имя процедуры> <тело процедуры> ;

RAYA ભાષાને પ્રક્રિયાની શરૂઆતમાં અને અંતે ઓપરેન્ડ સ્ટેકની સ્થિતિ પર ટિપ્પણી કરવાની જરૂર છે. પ્રક્રિયાના મુખ્ય ભાગમાં, ટિપ્પણીઓ પ્રોગ્રામરના વિવેકબુદ્ધિથી એવા સ્થળોએ મૂકવામાં આવે છે જે સમજવામાં મુશ્કેલ છે.

ટિપ્પણીઓ માનવોને પ્રક્રિયાને સમજવામાં અને તેનો ઉપયોગ કરવામાં મદદ કરે છે; તેથી, ટર્મિનલમાંથી વ્યક્તિગત પ્રક્રિયાની વ્યાખ્યા દાખલ કરતી વખતે, ટિપ્પણીઓ અવગણી શકાય છે.

પ્રક્રિયાની વ્યાખ્યા દાખલ કર્યા પછી અને કી દબાવવામાં આવે છે પ્રોસેસરને ઇનપુટના અંત વિશે જાણ કરવામાં આવે છે, ટર્મિનલ સ્ક્રીન પર એક ફૂદડી દેખાય છે, જે "વ્યાખ્યાયિત પ્રક્રિયા" આદેશના અમલ અને સંવાદ ચાલુ રાખવા માટે પ્રોસેસરની તૈયારીનો સંકેત આપે છે. હવે તમે કીબોર્ડમાંથી ઉલ્લેખિત x મૂલ્યો પર PX પ્રક્રિયા લાગુ કરી શકો છો, ઉદાહરણ તરીકે 2, 3, 4 (પ્રોસેસરમાંથી આઉટપુટ રેખાંકિત છે):

* 2 PX 13

*3 PX 24

* 4 PX 41

ચાલો a2*x**2+a1*x+a0 ફોર્મની ત્રિનોમીની ગણતરી કરવા માટે વધુ સામાન્ય પ્રક્રિયાને વ્યાખ્યાયિત કરીએ, જે તમને x અને a0, a1, a2 બંનેના મૂલ્યોને સ્પષ્ટ કરવા દે છે. ચાલો તેને PXA કહીએ:

: PXA C E4 E3 * + * + ;

PXA નો ઉપયોગ કરતી વખતે, મૂલ્યો a0, a1, a2, x સ્ટેક પર જરૂરી અનુક્રમમાં હોવા જોઈએ. ઉદાહરણ તરીકે: a0=1, a1=2, a2=-3, x=4

* 1 2 -3 4 PXA . ડી -39

પ્રક્રિયાના મુખ્ય ભાગમાં, મૂળભૂત પ્રોસેસર કામગીરી સાથે, વપરાશકર્તા દ્વારા નિર્ધારિત પ્રક્રિયાઓ સમાવી શકે છે. ઉદાહરણ તરીકે, તમે એક પ્રક્રિયા P ને વ્યાખ્યાયિત કરી શકો છો જે, PXA દ્વારા કરવામાં આવતી ગણતરીઓ ઉપરાંત, પરિણામની નકલ ટર્મિનલ પર છાપશે અને પરિણામને સ્ટેકમાંથી દૂર કરશે.

:PXA. ડી;

ખાસ કરીને, પ્રક્રિયાના મુખ્ય ભાગમાં પ્રક્રિયાનું નામ શામેલ હોઈ શકે છે જે પોતે વ્યાખ્યાયિત કરવામાં આવી રહી છે, એટલે કે, પ્રક્રિયા પુનરાવર્તિત હોઈ શકે છે. ઉદાહરણ તરીકે:

: TIME [t] 1- TIME ;

આ પ્રક્રિયા સ્ટેકની ટોચની કિંમતમાં 1 થી ઘટાડો કરે છે અને ફરીથી તેનો ઉલ્લેખ કરે છે, એટલે કે તે સમય કાઉન્ટર તરીકે કામ કરે છે.

TIME કાઉન્ટર, સૈદ્ધાંતિક રીતે, રોકી શકતું નથી: જ્યારે પ્રોસેસર ચાલુ હોય ત્યારે એક બાદબાકી કરવાની પ્રક્રિયા વારંવાર કરવામાં આવશે. પરંતુ DSSP માં એવા સાધનો છે જે તમને પ્રાપ્ત પરિણામોના આધારે પ્રક્રિયાની પ્રગતિને નિયંત્રિત કરવાની મંજૂરી આપે છે - પ્રોગ્રામની પ્રગતિને નિયંત્રિત કરવાની કામગીરી.

શરતી અમલ અને પુનરાવર્તન

એક પ્રોગ્રામ કે જે તેના સંકેતમાં એક પછી એક દેખાય તેવા ક્રમમાં એક્ઝિક્યુટ કરાયેલ આદેશોનો ક્રમ છે તેને રેખીય કહેવામાં આવે છે. પ્રોગ્રામને સહેલાઈથી દૃશ્યક્ષમ (વાંચી શકાય તેવો) અને સમજી શકાય તેવો બનાવવા માટે, તેને નામના ભાગોમાં વિભાજિત કરવામાં આવે છે જેનો ચોક્કસ અર્થ હોય છે - પ્રક્રિયાઓ, દરેક પ્રક્રિયાના તેના પોતાના ક્રમ દ્વારા વ્યાખ્યાયિત કરવામાં આવે છે, જે બદલામાં નાની પ્રક્રિયાઓના ક્રમ વગેરે દ્વારા વ્યાખ્યાયિત કરવામાં આવે છે. ડીએસએસપી આદેશોના ક્રમ દ્વારા સીધી રીતે નિર્ધારિત પ્રક્રિયાઓ માટે. પ્રક્રિયા વ્યાખ્યાઓના વંશવેલો તરીકે લખાયેલ આવા પ્રોગ્રામને સ્ટ્રક્ચર્ડ કહેવામાં આવે છે. સ્ટ્રક્ચર્ડ પ્રોગ્રામ બનાવવાની પદ્ધતિ, જેમાં ધીમે ધીમે સમસ્યાને નાના અને નાના પેટા-ટાસ્કમાં હલ કરવાની હોય છે, તેને સ્ટ્રક્ચર્ડ પ્રોગ્રામિંગ કહેવામાં આવે છે.

જો કોઈ શરત અનુસાર પ્રક્રિયા ચલાવવાની, પ્રક્રિયાને પુનરાવર્તિત કરવાની અને પુનરાવર્તિત પ્રક્રિયામાંથી બહાર નીકળવાની કામગીરી હોય તો માત્ર રેખીય જ નહીં, પણ સ્ટ્રક્ચર્ડ પ્રોગ્રામિંગ પદ્ધતિનો ઉપયોગ કરીને કોઈપણ પ્રોગ્રામ્સ બનાવવા શક્ય છે. DSSP માં ઉપલબ્ધ આ પ્રકારના આદેશોનો સમૂહ મનસ્વી કાર્યક્રમના માળખાગત બાંધકામની શક્યતા પૂરી પાડે છે.

પ્રક્રિયા કરવા અથવા ન કરવા માટેની શરતો સંખ્યાના ચિહ્નને સંબંધિત ઘડવામાં આવે છે, વધુ સ્પષ્ટ રીતે, મૂલ્યના સંકેતને સંબંધિત વર્તમાન ક્ષણસ્ટેકની ટોચ. મુખ્ય શરતી પ્રક્રિયા એક્ઝેક્યુશન કમાન્ડ - BRS (બ્રાન્ચ ઓન સાઇન) સ્ટેકની ટોચની વર્તમાન કિંમતની નિશાની પર આધાર રાખીને બીઆરએસના નામવાળી ત્રણ પ્રક્રિયાઓમાંથી એકને ચલાવવાની સૂચના આપે છે. બીઆરએસ ચલાવતી વખતે, પ્રોસેસર સ્ટેકમાંથી ટોચના તત્વને દૂર કરે છે, તેનું મૂલ્ય પરીક્ષણ કરે છે, અને જો તે નકારાત્મક હોય, તો તે આમાંથી પ્રથમ પ્રક્રિયા કરે છે, જો તે શૂન્ય હોય, તો બીજી, અને જો તે હકારાત્મક હોય, તો પછી ત્રીજું તો ટીમ

સ્ટેકમાંથી એક ઘટકને દૂર કરવાનું કારણ બનશે અને જો દૂર કરેલ મૂલ્ય નકારાત્મક હોય તો પ્રક્રિયા N ચલાવવામાં આવશે, જો પોઝિટિવ હોય તો પ્રક્રિયા P ચલાવવામાં આવશે અને જો શૂન્ય હોય તો Z પ્રક્રિયાને ચલાવવામાં આવશે.

BRS આદેશના ઉપયોગનું ઉદાહરણ છે નીચેની વ્યાખ્યા SGN પ્રક્રિયાઓ

: SGN [X] BRS -1 0 1 ;

આ પ્રક્રિયા સ્ટેકની ટોચ પરના મૂલ્ય X ને નંબર -1 જો X સાથે બદલે છે<0, числом 0, если X=0, и числом 1, если X>0. એસજીએન પ્રક્રિયા ડીએસએસપીમાં ઉપલબ્ધ છે મૂળભૂત કામગીરીપ્રોસેસર

BRS આદેશ, ત્રણ ડેટામાંથી એક પ્રક્રિયા પસંદ કરવા સાથે, IF-THEN અને IF-THEN-ELSE ફોર્મના બે-મૂલ્યવાળું નિવેદનોને અમલમાં મૂકવાની ક્ષમતા પ્રદાન કરે છે. ઉદાહરણ તરીકે, વાક્ય જો x>0 પછી P1 else P0 આદેશ BRS P0 P0 P1 ને અનુરૂપ છે અને વાક્ય જો x<>0 પછી P - આદેશ BRS P NOP P, જેમાં NOP એ ખાલી કામગીરીનું નામ છે. પરંતુ DSSP માં બે-મૂલ્યવાળી શરતોનું વધુ કાર્યક્ષમ અમલીકરણ છે - આદેશો IF-, IF0, IF+, BR-, BR0, BR+.

જો જૂથ આદેશો અનુરૂપ છે IF-THEN સ્ટેટમેન્ટ માટે. ઉદાહરણ તરીકે, IF-P આદેશ સ્ટેકમાંથી ટોચના તત્વને દૂર કરવા અને તેના ચિહ્નને ચકાસવા માટે સૂચના આપે છે, અને જો આ ઘટકમાં બાદબાકીનું ચિહ્ન હોય, તો પ્રક્રિયા P ચલાવો. IF0 P અને IF+ P આદેશો અનુક્રમે P પ્રક્રિયાને ચલાવવા માટે આદેશ આપે છે. , તે કિસ્સામાં જ્યારે દૂર કરેલ ઘટક શૂન્યની બરાબર હોય, અને તે કિસ્સામાં જ્યારે તેનું મૂલ્ય હકારાત્મક હોય.

IF જૂથ આદેશોના ઉપયોગને સમજાવતા ઉદાહરણ તરીકે, અમે ABS બેઝ લેંગ્વેજમાં આદેશની વ્યાખ્યા આપીએ છીએ જે સ્ટેકની ટોચના મોડ્યુલસની ગણતરી કરે છે.

: ABS [X] C IF-NEG [|X|] ;

BR-, BR0 અને BR+ આદેશો IF-THEN-ELSE સ્ટેટમેન્ટને અનુરૂપ છે, જે તેમના નામવાળી બે પ્રક્રિયાઓમાંથી એકની પસંદગીની સૂચના આપે છે. જો સ્ટેકમાંથી દૂર કરાયેલા તત્વની નિશાની આદેશના હોદ્દા સાથે મેળ ખાય છે, તો પ્રથમ નામની પ્રક્રિયા ચલાવવામાં આવે છે, અને જો તે મેળ ખાતી નથી, તો બીજી પ્રક્રિયા ચલાવવામાં આવે છે. ઉદાહરણ તરીકે, આદેશ BR0 P0 P1 એ કિસ્સામાં પ્રક્રિયા P0 ચલાવવાની સૂચના આપે છે જ્યારે સ્ટેકમાંથી દૂર કરેલ તત્વ શૂન્યની બરાબર હોય, અને જો આ સ્થિતિ સંતોષાતી નથી, તો પ્રક્રિયા P1 ચલાવો.

ધ્યાનમાં લેવામાં આવેલ આદેશો તમને આ શરતોના આધારે પ્રક્રિયાના અમલને આર્થિક રીતે પ્રોગ્રામ કરવાની મંજૂરી આપે છે. ફોર્મ xની સૌથી સામાન્ય શરતો<0, x=0, x>0 સીધા IF જૂથ સૂચનાઓ દ્વારા લાગુ કરવામાં આવે છે. શરતો x<=0, x<>0, x>=0 ને પ્રથમ પ્રક્રિયા તરીકે ખાલી NOP ઓપરેશનનો ઉપયોગ કરીને BR-, BR0, BR+ સૂચનાઓનો ઉપયોગ કરીને પ્રોગ્રામ કરવામાં આવે છે. ઉદાહરણ તરીકે, if x કલમ<=0 then P соответствует команда BR+ NOP P. Примером использования команд группы BR может служить следующая реализация команды базового языка NOT, заменяющей нулевое значение вершины стека единицей, а ненулевое - нулем.

: નથી [x] BR0 1 0 ;

પ્રોગ્રામ બ્રાન્ચિંગ ઘણીવાર સરખામણી આદેશો પછી કરવામાં આવે છે (<, =, >), બે સંખ્યાઓની સરખામણી કરવાના પરિણામના આધારે 1 અથવા 0 નું તાર્કિક મૂલ્ય ઉત્પન્ન કરે છે. MAX આધાર ભાષા આદેશ, ઉદાહરણ તરીકે, નીચે પ્રમાણે પ્રોગ્રામ કરી શકાય છે:

: MAX C2 C2< IF+ E2 D ;

બ્રાન્ચિંગ આદેશોના જૂથમાં ફોર્મમાં લખાયેલ BR પસંદગી આદેશનો પણ સમાવેશ થાય છે:

BR A1 P1 A2 P2... AK PK... AN PN ELSE P0

આ સૂચનાને અમલમાં મૂકતી વખતે, પ્રોસેસર પ્રથમ પોઇન્ટર પ્રક્રિયા A1 ને એક્ઝિક્યુટ કરે છે અને સ્ટેક પર દબાણ કરાયેલ મૂલ્યની તુલના સ્ટેકના પાછલા ટોચ પરથી તેની નીચેની કિંમત સાથે કરે છે. જો મૂલ્યો એકરૂપ થાય છે, તો પછી ટોચના બે ઘટકોને સ્ટેકમાંથી દૂર કરવામાં આવે છે અને પોઇન્ટર A1 સાથે સંકળાયેલ પ્રક્રિયા P1 ચલાવવામાં આવે છે, જે પછી BR સૂચનાને અનુસરીને સૂચનામાં સંક્રમણ કરવામાં આવે છે (એટલે ​​​​કે, ઉપરોક્ત સંકેતમાં, પ્રોગ્રામ ટેક્સ્ટમાં P0 શબ્દને અનુસરે છે). જો તુલનાત્મક મૂલ્યો મેળ ખાતા નથી, તો પછી ટોચનું એક તત્વ સ્ટેકમાંથી દૂર કરવામાં આવે છે (એટલે ​​​​કે, A1 નું પરિણામ) અને સમાન ક્રિયાઓ A2 P2 જોડી સાથે કરવામાં આવે છે, પછી, જો ત્યાં કોઈ મેળ ન હોય, તો સાથે જોડી A3 P3, વગેરે. AN PN સહિત સુધી. જો કોઈપણ પ્રયાસોથી મેળ ન મળે, તો ELSE શબ્દના નામ પરથી P0 પ્રક્રિયા ચલાવવામાં આવે છે. સામાન્ય રીતે, આંકડાકીય સ્થિરાંકો નિર્દેશક પ્રક્રિયાઓ તરીકે કાર્ય કરે છે, ઉદાહરણ તરીકે:

[x] C BR 5 NEG -3 ABS 0 બીજું નહીં T0 [y]

આ લાઇનને એક્ઝિક્યુટ કરવાના પરિણામે, સ્ટેકની ટોચ પર મૂલ્ય y=-5 પ્રાપ્ત થશે જો x=5; y=3 જો x=-3; y=1 જો x=0 અને y=0 અન્ય તમામ કેસોમાં.

સામાન્ય રીતે, પોઇન્ટર પ્રક્રિયા માત્ર આંકડાકીય સ્થિરતા જ નહીં, પણ ચલ અથવા અન્ય કોઈપણ પ્રક્રિયા પણ હોઈ શકે છે જે સરળ જરૂરિયાતને સંતોષે છે કે તે સ્ટેકમાંથી કંઈપણ પૉપ કરતું નથી અને સ્ટેક પર એક મૂલ્યને દબાણ કરે છે.

શરતી પ્રક્રિયા એક્ઝેક્યુશન ઑપરેશન્સનો ઉપયોગ કેવી રીતે થાય છે તે સમજાવવા માટે, ચાલો અગાઉના વિભાગમાં TIME પ્રક્રિયાને સંશોધિત કરીએ જેથી જ્યારે આપેલ સ્થિતિ આવે ત્યારે કાઉન્ટર અટકી જાય:

: TIME [t] 1- C IF+ TIME ;

હવે આ TIME પ્રક્રિયા ત્યારે જ પોતાને કૉલ કરે છે જ્યારે સ્ટેકની ટોચ હકારાત્મક હોય. કાઉન્ટર બરાબર N વખત કામ કરશે જો TIME ના પ્રથમ એક્ઝેક્યુશનની શરૂઆતમાં શિરોબિંદુમાં ધન નંબર N હોય. ઉદાહરણ તરીકે, 7 ઑપરેશન મેળવવા માટે, તમારે સેટ કરવાની જરૂર છે

7 સમય<ВК>

TIME ની વ્યાખ્યામાં IF+, કોઈપણ શરતી કામગીરીની જેમ, સ્ટેકમાંથી પરીક્ષણ હેઠળના ઘટકને દૂર કરે છે, અને આ તત્વ અનુગામી કામગીરી માટે જરૂરી છે, તેથી તેને IF+ પહેલાં C (કૉપિ) ઑપરેશન મૂકીને ડુપ્લિકેટ કરવું પડશે.

પુનરાવર્તન એ એક પ્રક્રિયાને ઘણી વખત ચલાવવાનું પ્રાથમિક માધ્યમ નથી. PARA ભાષામાં સાયકલ પ્રોગ્રામ કરવા માટે RP (પુનરાવર્તિત - પુનરાવર્તિત) અને DO (Do - do, execute) આદેશો છે.

RP W આદેશ તમને અમર્યાદિત સંખ્યામાં વારંવાર W પ્રક્રિયા કરવા માટે સૂચના આપે છે. પુનરાવર્તનો રોકવા માટે, પ્રક્રિયા W ના મુખ્ય ભાગમાં EX (એક્ઝિટ) ઑપરેશન હોવું આવશ્યક છે જે આપેલ શરત હેઠળ ચલાવવામાં આવે છે. EX ઑપરેશન એ પ્રક્રિયાના અમલ માટે સંક્રમણ કરે છે જે પ્રોગ્રામ ટેક્સ્ટમાં આ EX ઑપરેશન ધરાવતી પુનરાવર્તિત પ્રક્રિયાને અનુસરે છે. આમ, પુનરાવર્તિત પ્રક્રિયા TIME તરીકે ઉપર અમલમાં મૂકાયેલ કાઉન્ટરને W પ્રક્રિયાને પુનરાવર્તિત કરવા માટે પ્રોગ્રામ કરી શકાય છે, જે નીચે પ્રમાણે વ્યાખ્યાયિત થયેલ છે:

: W [t] 1- C IF0 EX ;

કાઉન્ટર 25 વખત કામ કરવા માટે, તમારે લાઇન ચલાવવાની જરૂર છે

EX ઓપરેશનની સાથે, જેનો ઉપયોગ શરતી એક્ઝેક્યુશન આદેશોમાં થાય છે, ત્યાં શરતી એક્ઝિટ ઓપરેશન્સ EX-, EX0, EX+ છે, જે IF- EX, IF0 EX, IF+ EX આદેશો જેવી જ અસર પેદા કરે છે, એટલે કે, ટોચના તત્વનો વપરાશ કરે છે. , તેના ચિહ્નનું પરીક્ષણ કરવું અને જો ચિહ્ન ઓપરેશન હોદ્દામાં ઉલ્લેખિત હોય તો તે મેળ ખાય છે. ઑપરેશન્સ EX, EX-, EX0, EX+ નો ઉપયોગ પુનરાવર્તિત પ્રક્રિયાના જ મુખ્ય ભાગમાં (અમારા કિસ્સામાં W માં) જ જરૂરી નથી, પણ તે પ્રક્રિયામાં પણ થઈ શકે છે જેનો તે ઉલ્લેખ કરે છે.

ઉદાહરણ તરીકે, યુક્લિડ પદ્ધતિનો ઉપયોગ કરીને બે કુદરતી સંખ્યાઓના સૌથી મોટા સામાન્ય વિભાજકને શોધવાની સમસ્યાને ધ્યાનમાં લો. પદ્ધતિનો સાર એ છે કે જ્યાં સુધી સંખ્યાઓ એકબીજાની સમાન ન થાય ત્યાં સુધી તમારે મોટી સંખ્યામાંથી નાની સંખ્યાને બાદ કરવાની જરૂર છે. એકવાર સમાનતા પ્રાપ્ત થઈ જાય, સૌથી મોટો સામાન્ય વિભાજક મળશે.

ટોપ-ડાઉન ડેવલપમેન્ટ પદ્ધતિનો ઉપયોગ કરીને પ્રોગ્રામિંગ હાથ ધરવામાં આવશે. પ્રથમ, અમે GCD પ્રક્રિયાને વ્યાખ્યાયિત કરીએ છીએ જે અલ્ગોરિધમની સામાન્ય યોજનાને મેળવે છે. આ પ્રક્રિયાના પરિમાણો સ્ટેક પરની બે સંખ્યાઓ M અને N છે, જેના માટે સૌથી સામાન્ય વિભાજક જોવા મળે છે. GCD પ્રક્રિયાના મુખ્ય ભાગમાં સ્ટેક પરના મૂલ્યોને કન્વર્ટ કરવા માટે ચક્રીય પ્રક્રિયાનો ઉલ્લેખ કરવો આવશ્યક છે. આ પ્રક્રિયાના પરિણામે, સ્ટેક પર બે સમાન સંખ્યાઓ રહેવી જોઈએ - તેમાંથી કોઈપણને સૌથી મોટા સામાન્ય ભાજક તરીકે લઈ શકાય છે. આ બાબતોને ધ્યાનમાં રાખીને, GCD પ્રક્રિયાને નીચે પ્રમાણે વ્યાખ્યાયિત કરી શકાય છે.

: GCD RP STEP [nod(M,N), nod(M,N)] D [nod(M,N)] ;

હવે પુનરાવર્તિત પ્રક્રિયાના એક પગલાને પ્રોગ્રામ કરવું જરૂરી છે, એટલે કે. STEP પ્રક્રિયા વ્યાખ્યાયિત કરો. તેના માટેના પરિમાણો સ્ટેક પરની બે સંખ્યાઓ છે. તમારે આ સંખ્યાઓની તુલના કરવાની જરૂર છે અને જો તે સમાન હોય તો લૂપમાંથી બહાર નીકળો, અન્યથા, મોટામાંથી નાનાને બાદ કરો. આ કરી શકાય છે, ઉદાહરણ તરીકે, આની જેમ:

: STEP C2 C2 - BRS NOP EX E2 C2 - ;

હવે પ્રોગ્રામમાં કોઈ અવ્યાખ્યાયિત પ્રક્રિયાઓ બાકી નથી અને તમે તેને તપાસવાનું શરૂ કરી શકો છો. તપાસ નીચેથી ઉપરથી હાથ ધરવામાં આવવી જોઈએ, એટલે કે પ્રથમ તમારે ખાતરી કરવાની જરૂર છે કે STEP પ્રક્રિયા યોગ્ય રીતે કાર્ય કરી રહી છે અને તે પછી જ - GCD.

બેઝ લેંગ્વેજ ડીઓ ઓપરેશન તેના નામની પ્રક્રિયાને N વખત પુનરાવર્તિત કરવા માટેનું કારણ બને છે, જ્યાં DO એક્ઝિક્યુટ કરવામાં આવે ત્યારે સ્ટેકની ટોચ પર N એ નંબર છે. ઉદાહરણ તરીકે, પ્રક્રિયા P ને 8 વખત ચલાવવા માટે, તમારે સેટ કરવાની જરૂર છે

8 ડીઓ પી

જો પ્રક્રિયા P ના મુખ્ય ભાગમાં ઓછામાં ઓછું એક એક્ઝિટ ઑપરેશન હોય અને તેની એક્ઝિક્યુશનની સ્થિતિ નિર્દિષ્ટ સંખ્યામાં પુનરાવર્તનો થાય તે પહેલાં સંતુષ્ટ થઈ જાય, તો પ્રક્રિયામાંથી બહાર નીકળીને પુનરાવર્તનો તે જ રીતે સમાપ્ત કરવામાં આવશે જેવી રીતે કિસ્સામાં કરવામાં આવે છે. ઓપરેશન આર.પી. ઉદાહરણ તરીકે, જ્યારે DO ઉપરોક્ત W પ્રક્રિયાનું પુનરાવર્તન કરે છે જેની વ્યાખ્યામાં IF0 EX છે, ત્યારે [T] 30 DO W લખવાથી W ની 30 પુનરાવર્તનો થશે જો T>=30 નું મૂલ્ય હશે. જો 0

જો DO ઑપરેશન એક્ઝિક્યુટ થાય ત્યાં સુધીમાં સ્ટેકની ટોચ પર શૂન્ય અથવા ઋણ મૂલ્ય હોય, તો DO ને અનુસરતી પ્રક્રિયા એકવાર પણ ચલાવવામાં આવશે નહીં.

DO ઑપરેશનના ઉપયોગને સમજાવવા માટે, અમે એક પ્રક્રિયા NUM ને વ્યાખ્યાયિત કરીએ છીએ જે સ્ટેકની ટોચ પર આપેલ 32-બીટ શબ્દ xમાં બિન-શૂન્ય બિટ્સની સંખ્યાની ગણતરી કરે છે.

અમે સ્ટેકના સબવર્ટેક્સ પર એકમોની સંખ્યા માટે કાઉન્ટર મૂકીશું. ગણતરીના એકમોમાં NUMI પ્રક્રિયાને 32 વખત પુનરાવર્તિત કરવામાં આવશે, જેમાં આપણે x શબ્દના એક ભાગની તપાસ કરીશું. લૂપમાંથી બહાર નીકળવા પર, જરૂરી સંખ્યા સ્ટેકની ટોચ પર હોવી જોઈએ.

: NUM [x] 0 E2 32 DO NUMI D [N] ;

બિન-શૂન્ય બિટ્સની ગણતરી કરવા માટે, અમે એ હકીકતનો ઉપયોગ કરીએ છીએ કે શબ્દના સૌથી નોંધપાત્ર (31મા) બીટમાંનો એક નકારાત્મક સંખ્યાના સંકેત તરીકે કામ કરે છે. જો અભ્યાસ કરવામાં આવે છે તે શબ્દ નકારાત્મક છે, તો પછી એક N માં ઉમેરવો આવશ્યક છે. NUMI પ્રક્રિયાના અંતે, તમારે અભ્યાસ હેઠળના શબ્દને એક જગ્યાએ ડાબી બાજુએ ખસેડવાની જરૂર છે.

: NUMI C IF- N+ SHL ;

N+ પ્રક્રિયાનો અમલ એકદમ સરળ છે: તમારે ટોપને બદલ્યા વિના સ્ટેકના સબટોપમાં એક ઉમેરવાની જરૂર છે.

: N+ E2 1+ E2 ;

પુનરાવર્તિત પ્રક્રિયાઓ તેમના શરીરમાં આરપી અને ડીઓ કામગીરી સમાવી શકે છે, જે નેસ્ટેડ લૂપ્સ તરફ દોરી જાય છે, અને માળખાના કોઈપણ ઊંડાણને મંજૂરી છે. આ કિસ્સામાં, નેસ્ટેડ લૂપમાંથી બહાર નીકળવા માટે એક EXT ઑપરેશન છે જે સ્ટેકની ટોચ પર નેસ્ટિંગની ઊંડાઈ દર્શાવે છે. ઉદાહરણ તરીકે, બે નેસ્ટેડ લૂપમાંથી બહાર નીકળવાનું આ રીતે સ્પષ્ટ કરી શકાય છે:

તે ધ્યાનમાં રાખવું જોઈએ કે EXT આદેશનો ઉપયોગ કરવા માટે વધુ કાળજીની જરૂર છે, કારણ કે પ્રોગ્રામમાં ફેરફાર કરતી વખતે, લૂપ્સની માળખાની ઊંડાઈ બદલાઈ શકે છે અને EXT પહેલાંના અનુરૂપ સ્થિરાંકને બદલવાની જરૂર પડશે.

નામાંકિત ડેટા

ઓપરેન્ડ સ્ટેક મુખ્ય છે, પરંતુ DSSP માં ડેટાની હેરફેર કરવા માટેની એકમાત્ર પદ્ધતિ નથી. પ્રક્રિયાની વ્યાખ્યાઓ સાથે, તત્વો અને ડેટાના તત્વોના પ્રમાણભૂત રીતે સંગઠિત સંગ્રહ (કહેવાતા બંધારણો) જાહેર કરવા પણ શક્ય છે, જે પછી તેમના નામો દ્વારા ઉપયોગ માટે ઉપલબ્ધ છે. ડેટા ઘોષણાઓનો અમલ કરીને, પ્રોસેસર તેમને સંગ્રહિત કરવા માટે જરૂરી મેમરીને અનામત રાખે છે અને આ મેમરીને એક્સેસ કરવા માટે જરૂરી મિકેનિઝમ્સ પ્રદાન કરે છે.

મૂળભૂત DSSP ભાષામાં ચલ અને એરેની ઘોષણા કરવા માટે નીચે ચર્ચા કરાયેલ સંખ્યાબંધ નિર્દેશક શબ્દોનો સમાવેશ થાય છે. સિસ્ટમ ભાષાને વિસ્તૃત કરવા માટે, આ પ્રકારના અન્ય શબ્દો અને તે મુજબ, અન્ય ઘટકો અને ડેટા સ્ટ્રક્ચર્સ તેમાં દાખલ કરી શકાય છે.

VAR શબ્દ 16-બીટ ન્યુમેરિક ચલ જાહેર કરે છે. ઉદાહરણ તરીકે, રેકોર્ડ કરો

ચલ X જાહેર કરે છે, એટલે કે, તે પ્રોસેસરને કહે છે કે X એ ચલનું નામ છે. પ્રોસેસર આ નામ સાથે 16-બીટ મેમરી સેલને સાંકળે છે જેમાં આ ચલનું મૂલ્ય સંગ્રહિત થશે. ઓપરેન્ડ સ્ટેકની ટોચ પર સમાયેલ મૂલ્યને ચલ X સોંપવા માટેની સૂચના ફોર્મ ધરાવે છે

આ આદેશનો અમલ કરીને, પ્રોસેસર સ્ટેકમાંથી ટોચના તત્વને દૂર કરે છે અને તેની કિંમત X ચલ માટે ફાળવેલ સેલ પર લખે છે.

વેરીએબલ નામનો આદેશ, તેની સામે અક્ષર વિના, આ વેરીએબલની કિંમતને સ્ટેક પર ધકેલવાનું કારણ બને છે, અને પુશિંગ સંબંધિત મેમરી સેલની સામગ્રીની નકલ કરીને કરવામાં આવે છે, એટલે કે મૂલ્ય ચલ યથાવત રહે છે. આમ, પ્રોગ્રામમાં ચલ નામ X ની કોઈપણ ઘટના, સિવાય કે તરત જ કોઈ અલગ ક્રિયાનો ઉલ્લેખ કરતા શબ્દ દ્વારા, આ વેરીએબલના વર્તમાન મૂલ્યને સ્ટેક પર ધકેલી દેશે, જેમ સીધી આપેલ સંખ્યાઓ (સંખ્યાત્મક શાબ્દિક) સ્ટેક પર દબાણ કરવામાં આવે છે. .

ઉદાહરણ તરીકે, અમે ઉપર ચર્ચા કરેલ GCD પ્રક્રિયાનું બીજું સંસ્કરણ આપીએ છીએ જેમાં બે કાર્યકારી ચલોનો ઉપયોગ કરવામાં આવે છે.

: NOD! એક્સ! Y RP સ્ટેપ X [GCD] ;

: પગલું X Y = EX+ X Y BR+ X-Y Y-X ;

: X-Y X Y - ! એક્સ;

: Y-X Y X - ! વાય;

જેમ તમે જોઈ શકો છો, પ્રોગ્રામ થોડો લાંબો થઈ ગયો છે, પરંતુ તેની દૃશ્યતા વધી છે.

VCTR શબ્દ 16-બીટ કોષોનો એક-પરિમાણીય એરે (વેક્ટર) જાહેર કરે છે, જેમાં શિરોબિંદુના મૂલ્ય દ્વારા આપવામાં આવેલ આ એરેના ઉચ્ચતમ તત્વની સંખ્યા છે. ઉદાહરણ તરીકે, રેકોર્ડિંગના પરિણામે

9 VCTR ROW, પ્રોસેસર ROW(0:9) વેક્ટર બનાવે છે. પ્રથમ, નંબર 9ને સ્ટેક પર ધકેલવામાં આવે છે, અને પછી VCTR પ્રક્રિયા ચલાવવામાં આવે છે, સ્ટેકના ટોચના તત્વનો ઉપયોગ કરીને ROW વેક્ટરની લંબાઈ નક્કી કરવામાં આવે છે.

ROW વેક્ટરના j-th એલિમેન્ટના મૂલ્યને સ્ટેક પર દબાણ કરવું, 0<=j<=9, задается командой

[j]પંક્તિ

પેરામીટર તરીકે સ્ટેક પર એલિમેન્ટ નંબરનો ઉપયોગ કરીને, ROW વેક્ટર નામ તે નંબરને સંબંધિત ઘટકના મૂલ્ય દ્વારા બદલવાનું કારણ બને છે. જો શબ્દ ROW વેક્ટરના નામની પહેલા હોય, તો શિરોબિંદુ દ્વારા દર્શાવેલ આ વેક્ટરના તત્વને સબવર્ટેક્સનું મૂલ્ય સોંપવામાં આવે છે, અને સ્ટેકની ઊંડાઈ 2 થી ઓછી થાય છે. ઉદાહરણ તરીકે, તમે ફરીથી સેટ કરી શકો છો. ROW વેક્ટરનું 5મું તત્વ આના જેવું:

સતત વેક્ટરને જોડવાનું પણ શક્ય છે, એટલે કે. 16-બીટ નંબરોના વેક્ટર, જેનાં મૂલ્યો જ્યારે તે જાહેર કરવામાં આવે ત્યારે નક્કી કરવામાં આવે છે અને તે પછીથી બદલાતા નથી. આમ, CNST શબ્દનો ઉપયોગ કરીને L+1 લંબાઈના 16-બીટ સ્થિરાંકો VC ના વેક્ટરને ફોર્મમાં જાહેર કરવામાં આવે છે:

CNST VC k0 k1 ... kL ;

જ્યાં k0, k1, ... kL એ આદેશો છે જે સ્ટેક પર એક મૂલ્યને દબાણ કરે છે. મોટેભાગે આ ફક્ત સંખ્યાત્મક શાબ્દિક હોય છે, પરંતુ તે ચલોના નામો, પ્રક્રિયાઓ, તેમજ શબ્દોની જોડી ધરાવતા આદેશો પણ હોઈ શકે છે, જેમ કે, ઉદાહરણ તરીકે, નીચે ચર્ચા કરેલ ચલ "X" નું સરનામું મોકલવા માટેનો આદેશ. સ્થિર વેક્ટરના ઘટકોને ઍક્સેસ કરવું એ સામાન્ય વેક્ટરના ઘટકોની જેમ જ કરવામાં આવે છે:

ARR શબ્દનો ઉપયોગ કરીને 16-બીટ શબ્દોનો બહુપરીમાણીય એરે જાહેર કરવામાં આવે છે, જે દરેક પરિમાણ અને પરિમાણોની સંખ્યા માટે મહત્તમ અનુક્રમણિકા મૂલ્યોથી આગળ હોય છે. ઉદાહરણ તરીકે, ત્રિ-પરિમાણીય એરે TIR(0:8,0:2,0:24) આ રીતે જાહેર કરવામાં આવે છે:

ARR પહેલાં તરત જ નંબર 3 જાહેર કરેલ એરેનું કદ સૂચવે છે.

એરે એલિમેન્ટને સ્ટેક પર ધકેલવું એ એલિમેન્ટના ઇન્ડેક્સને સ્પષ્ટ કરીને એરે નામને અનુસરીને પ્રાપ્ત થાય છે. ઉદાહરણ તરીકે, તત્વ TIR(0,2,2) ને સ્ટેક પર દબાણ કરવાનો આદેશ આ રીતે વ્યક્ત કરવામાં આવ્યો છે.

તદનુસાર, આ ઘટકને સોંપીને સ્ટેકની ટોચની વર્તમાન કિંમત આદેશ દ્વારા નિર્દિષ્ટ કરવામાં આવે છે

બધા ગણવામાં આવતા ઉદાહરણો 16-બીટ શબ્દોમાંથી રચનાઓનું સર્જન કરે છે. જો કે, ભાષા તમને 32-બીટ શબ્દ અને 8-બીટ બાઇટ સ્ટ્રક્ચર્સને વ્યાખ્યાયિત કરવાની પણ મંજૂરી આપે છે. આ કરવા માટે, અનુક્રમે માળખું વ્યાખ્યાયિત કરતા શબ્દ પહેલાં ઉપસર્ગ LONG અથવા BYTE મૂકવામાં આવે છે. ઉદાહરણ તરીકે,

5 BYTE VCTR X - 6-ઘટક બાઈટ વેક્ટર X ની વ્યાખ્યા;

BYTE CNST Y 65 66 67 ; - 3-ઘટક બાઈટ વેક્ટર સતત Y ની વ્યાખ્યા;

10 20 2 LONG ARR MTRX - લાંબા શબ્દો MTRX(0:10,0:20) ના મેટ્રિક્સની વ્યાખ્યા.

વર્ડ અને બાઈટ સ્ટ્રક્ચર્સના તત્વોનું વાંચન એ જ રીતે કરવામાં આવે છે જેમ કે 16-બીટ વર્ડ સ્ટ્રક્ચર્સના કિસ્સામાં. જ્યારે તત્વની લંબાઈ 32 બિટ્સ કરતાં ઓછી હોય, ત્યારે પુનઃપ્રાપ્ત મૂલ્ય સ્ટેકની ટોચના નીચા શબ્દ અથવા બાઈટમાં મૂકવામાં આવે છે, અને ટોચનો ઉચ્ચ ભાગ શૂન્ય પર સેટ થાય છે. શબ્દ અથવા બાઇટ સ્ટ્રક્ચરના ઘટકને અસાઇન કરાયેલ મૂલ્ય એ સ્ટેક પરના 32-બીટ લાંબા શબ્દનો નીચો શબ્દ અથવા બાઇટ પણ છે.

જો કે 16-બીટ શબ્દ ફોર્મેટનો ઉપયોગ મૂળભૂત રીતે ડેટાને વ્યાખ્યાયિત કરતી વખતે કરવામાં આવે છે, તે પણ WORD સંકેત ધરાવે છે. જ્યારે પ્રોગ્રામ અન્ય મશીનોમાં ટ્રાન્સફર કરવાનો હોય ત્યારે આ ઉપસર્ગનો ઉપયોગ કરવાની સલાહ આપવામાં આવે છે, જ્યાં DSSP પણ લાગુ કરવામાં આવે છે અને ડિફોલ્ટ અલગ હોઈ શકે છે.

બાઈટ ડેટા સ્ટ્રક્ચરનો ઉપયોગ મોટાભાગે ટેક્સ્ટ માહિતીને સ્ટોર કરવા અને પ્રક્રિયા કરવા માટે થાય છે. આ હકીકત દ્વારા સમજાવવામાં આવે છે કે એક અક્ષરને એન્કોડ કરવા માટે કમ્પ્યુટર મેમરીમાં એક બાઈટ ફાળવવામાં આવે છે. RAYA ભાષામાં અક્ષર કોડનો ઉલ્લેખ કરવા માટે એક બાંધકામ #l છે, જ્યાં l એ કમ્પ્યુટર કીબોર્ડ પર ઉપલબ્ધ કોઈપણ અક્ષર છે. DSSP પ્રોસેસર આ બાંધકામને સ્ટેક પર l અક્ષરના કોડને દબાણ કરવા માટેના આદેશ તરીકે સમજે છે. ઉદાહરણ તરીકે:

આ બાંધકામ ઉલ્લેખિત અક્ષરના કોડની સમાન સંખ્યાત્મક શાબ્દિક સમાન ક્રિયાઓ કરે છે, પરંતુ તેનો ઉપયોગ વધુ પ્રાધાન્યક્ષમ છે, કારણ કે, પ્રથમ, તે તમને કોડ્સ યાદ રાખવાની જરૂરિયાતથી મુક્ત કરે છે અને બીજું, તે પ્રોગ્રામ્સને વધુ સમજી શકાય તેવું બનાવે છે. ખાસ કરીને, અમે સ્થિર વેક્ટર Y ની નીચેની વ્યાખ્યા આપી શકીએ છીએ:

BYTE CNST Y #A #B #C ;

પ્રોગ્રામમાં સંખ્યાત્મક સ્થિરાંક માટે સાંકેતિક સંકેતનો ઉપયોગ કરવો ઘણીવાર અનુકૂળ હોય છે. આ ક્ષમતા પ્રદાન કરવા માટે, એક ક્વોલિફાયર VALUE છે:

આ આદેશ સ્ટેકમાંથી ટોચના તત્વને પૉપ કરે છે અને VALUE પછી તરત જ નામ સાથે એક શબ્દ બનાવે છે. આ શબ્દનો ઉપયોગ સંખ્યાત્મક સ્થિરાંકના ઉપયોગની સમકક્ષ છે. ઉદાહરણ તરીકે:

ભૌતિક સરનામાંઓ દ્વારા મેમરી સાથે કામ કરવું

ધ્યાનમાં લેવાયેલા સાધનો કોમ્પ્યુટરની એડ્રેસ સિસ્ટમને ધ્યાનમાં લીધા વિના ડેટાને નામ આપવાની અને ડેટાની હેરફેર કરવાની ક્ષમતા પ્રદાન કરે છે. પરંતુ બેઝ લેંગ્વેજમાં એવા ટૂલ્સનો પણ સમાવેશ થાય છે જે તમને મેમરી એલિમેન્ટ્સના એડ્રેસને હેરફેર કરવાની મંજૂરી આપે છે. ચલ અથવા એરે એલિમેન્ટ Xનું સરનામું આદેશ સાથે સ્ટેક પર દબાણ કરવામાં આવે છે

એરે એલિમેન્ટના કિસ્સામાં, આ આદેશ અનુક્રમણિકા(es) ની કિંમતથી આગળ આવે છે.

બેઝ લેંગ્વેજ @ કમાન્ડ લાંબા મેમરી શબ્દના ટોપ-ઓફ-સ્ટૅક એડ્રેસને તે શબ્દ ધરાવતી કિંમત સાથે બદલે છે. ઉદાહરણ તરીકે, ચલ Y ની કિંમત નીચેની લીટી ચલાવીને સ્ટેક પર દબાણ કરી શકાય છે:

@B સૂચના સરનામાને અનુરૂપ બાઈટના મૂલ્ય સાથે બદલે છે, સ્ટેકની ટોચ પરના સૌથી નોંધપાત્ર બાઈટ્સને શૂન્ય પર સેટ કરે છે, અને @L સૂચના 32-બીટ શબ્દ સાથે સરનામાંને બદલે છે.

મેમરીમાં મૂલ્યો લખવા માટેના આદેશો પણ છે. આ!T સૂચના સ્ટેકની ટોચ પરથી દૂર કરેલા સરનામા પર સબટોપની 16-બીટ કિંમત લખે છે. The!TB આદેશ શિરોબિંદુ દ્વારા સંબોધિત બાઈટ સાથે સબવર્ટેક્સના નીચા બાઈટને સમાન લખવાનું કારણ બને છે, અને!TL સબવર્ટેક્સના 32-બીટ શબ્દને શિરોબિંદુ દ્વારા સંબોધિત શબ્દ પર લખે છે. ઉદાહરણ તરીકે, તમે નીચેના આદેશો સાથે બાઈટ વેક્ટર BV(0:5) ના પાંચમા ઘટકને મૂલ્ય 15 સોંપી શકો છો:

15 5" BV!TB

ભૌતિક સરનામાંઓ પર મેમરી સાથે કામ કરવાની જરૂરિયાત સામાન્ય રીતે એવા પ્રોગ્રામ્સ બનાવતી વખતે ઊભી થાય છે જે ચોક્કસ કમ્પ્યુટરના આર્કિટેક્ચર પર આધાર રાખે છે, ઉદાહરણ તરીકે, I/O ડ્રાઇવરો બનાવતી વખતે.

ડેટા અને મેમરી સાથે કામ કરવા માટે વધારાની કામગીરી

પ્રોગ્રામ્સની વધુ કાર્યક્ષમતા અને કોમ્પેક્ટનેસ હાંસલ કરવા માટે, નીચેની કામગીરી PARA ભાષામાં દાખલ કરવામાં આવી છે:

0 <имя переменной>- ચલ રીસેટ કરો;

1 <имя переменной>- ચલને એકમ સોંપો;

1- <имя переменной>- ચલનું મૂલ્ય એક વડે ઘટાડવું;

1+ <имя переменной>- ચલનું મૂલ્ય એક વડે વધારવું;

!- <имя переменной>- ચલમાંથી સ્ટેકની ટોચની કિંમત બાદ કરો;

!+ <имя переменной>- વેરીએબલમાં સ્ટેકની ટોચની કિંમત ઉમેરો.

આમાંની દરેક કામગીરી વેરીએબલ રીડ એન્ડ રાઈટ કમાન્ડનો ઉપયોગ કરીને સરળતાથી પ્રોગ્રામ કરેલ છે. ઉદાહરણ તરીકે,

0 X એ 0 ની સમકક્ષ છે! એક્સ

1+ X એ X 1+ ની સમકક્ષ છે! એક્સ

X એ X E2 ની સમકક્ષ છે - ! એક્સ

આ ઑપરેશન્સનો ઉપયોગ કરવાથી પ્રોગ્રામ્સની કાર્યક્ષમતા અને દૃશ્યતા વધે છે.

વ્યવહારમાં, તમારે ઘણીવાર એરેના તમામ ઘટકોને એક મૂલ્ય સોંપવાની જરૂર છે. આ હેતુ માટે, PARADISE ની ભાષામાં ઓપરેશન છે!!!<имя массива>. તેની અસર સ્પષ્ટ કરેલ એરેના તમામ ઘટકોને સ્ટેકની ટોચની કિંમત અસાઇન કરવાની છે. ઓપરેશન !!! કોઈપણ ફોર્મેટના ઘટકો સાથે એરેને લાગુ.

ઉપયોગનું ઉદાહરણ:

સ્પેસ કોડ BUF બાઈટ એરેના તમામ ઘટકો પર લખાયેલ છે.

નામ પાછળના ડેટા સ્ટ્રક્ચર વિશે પ્રોગ્રામમાંથી માહિતી મેળવવી ઘણીવાર જરૂરી હોય છે. આ માટે કેટલાક SIZE આદેશો છે? - ડેટા એલિમેન્ટ ફોર્મેટ દર્શાવો: 1, 2 અથવા 4 બાઇટ્સ, અને DIM? - માળખામાં ડેટા ઘટકોની સંખ્યા દર્શાવો. ઉદાહરણ તરીકે, જો ડેટા જાહેર કરવામાં આવે છે

3 4 2 LONG ARR Z

પછી, જ્યારે તેમને લાગુ કરવામાં આવશે, ત્યારે આ આદેશો નીચેનું પરિણામ આપશે (દશાંશ સંખ્યાઓ):

SIZE? X SIZE? Y SIZE? ઝેડ

DIM? X DIM? Y DIM? ઝેડ

DSSP પ્રોસેસરના કમાન્ડ સેટમાં, વધારા તરીકે, ચાર આદેશો શામેલ છે જે તમને કમ્પ્યુટર મેમરી કોષોના વ્યક્તિગત બિટ્સ વાંચવા અને લખવાની મંજૂરી આપે છે. આ આદેશો છે @BI, !BI, !BI0, !BI1. તેમાંના દરેક માટેના પરિમાણો સ્ટેક પરના મેમરી શબ્દનું સરનામું અને આ શબ્દમાં બીટની સંખ્યા છે (યાદ રાખો કે બીટ્સ શૂન્યથી શરૂ કરીને જમણેથી ડાબે ક્રમાંકિત છે). BI આદેશ પણ ધારે છે કે સ્ટેક પર થોડી કિંમત છે જે લખવાની જરૂર છે. @BI આદેશ પસંદ કરેલ બીટ (0 અથવા 1) ની કિંમત સાથે ઉલ્લેખિત પરિમાણોને બદલે છે, !BI0 અને!BI1 આદેશો પસંદ કરેલ બીટને અનુક્રમે 0 અને 1 પર સેટ કરે છે, સ્ટેકમાંથી તેમના પરિમાણો દૂર કરે છે અને!BI આદેશ પસંદ કરેલ બીટને સ્ટેકના ત્રીજા ઘટકના ઓછામાં ઓછા નોંધપાત્ર બીટના મૂલ્ય પર સેટ કરે છે અને સ્ટેકમાંથી તેના ત્રણેય પરિમાણો દૂર કરે છે. ઉદાહરણ તરીકે, જો ચલ X નું મૂલ્ય દ્વિસંગી નંબર 101101 છે, તો સૂચિબદ્ધ કામગીરીના પરિણામો નીચે મુજબ હશે:

" X [add.X] 3 @BI - X નો ત્રીજો બિટ, 0 " X 3 !BI - X 100101 છે,

" X [add.X] 0 !BI0 - X એ 100100 છે,

" X [add.X] 1 !BI1 - X 100110 છે.

PARA ભાષામાં મેમરીમાં સ્થિત બાઈટ સ્ટ્રિંગ્સ સાથે કામ કરવા માટેના સાધનો પણ છે. બાઈટ સ્ટ્રિંગનો ઉલ્લેખ કરવા માટે, બે પરિમાણો સ્ટેક પર દબાણ કરવામાં આવે છે: સ્ટ્રિંગનું પ્રારંભિક સરનામું (એટલે ​​​​કે, તેના પ્રથમ બાઈટનું સરનામું) અને સ્ટ્રિંગની લંબાઈ (તેમાં બાઈટ્સની સંખ્યા).

!!!MB આદેશનો ઉપયોગ સ્ટ્રિંગના તમામ બાઈટને એક મૂલ્ય (સ્ટેક પર ઉલ્લેખિત) સોંપવા માટે થાય છે. તે સ્ટેકમાંથી ત્રણ પરિમાણો વાપરે છે: , જ્યાં b એ સોંપેલ મૂલ્ય છે, a અને l એ અનુક્રમે પ્રારંભિક સરનામું અને બાઈટ સ્ટ્રિંગની લંબાઈ છે. ચાલો, ઉદાહરણ તરીકે, તમારે 3જી થી 10મી બાઈટ એરે TXT(0:20) ના ઘટકોને રીસેટ કરવાની જરૂર છે. આ કરવા માટે તમે નીચેની લીટી ચલાવી શકો છો:

0 3 "TXT 8!!!MB

પરિણામ સ્વરૂપે, 3જી થી શરૂ થતા, ઉલ્લેખિત એરેના સળંગ આઠ ઘટકો, મૂલ્ય 0 પ્રાપ્ત કરશે. સમાન આદેશ!!!MW એ સમાન મૂલ્ય (શબ્દોની સંખ્યા) સાથે 16-બીટ શબ્દોનો ક્રમ ભરવા માટે રચાયેલ છે. સ્ટેકની ટોચ પર દર્શાવેલ છે), અને આદેશ !!M - લાંબા શબ્દોનો ક્રમ ભરવા માટે.

SB આદેશ બાઈટ સ્ટ્રિંગ ટ્રાન્સફર કરે છે. તેના પરિમાણો છે: , જ્યાં a1 અને l એ ફોરવર્ડ કરેલ સ્ટ્રિંગનું પ્રારંભિક સરનામું અને લંબાઈ છે, a2 એ સ્ટ્રિંગનું પ્રારંભિક સરનામું છે કે જેના પર ફોરવર્ડિંગ કરવામાં આવે છે. !SB આદેશને એક્ઝિક્યુટ કરવાના પરિણામે, l લંબાઈની બાઈટ સ્ટ્રિંગ સરનામા a2 ની મેમરીમાં સ્થિત થશે, જે સ્ટ્રિંગની ચોક્કસ નકલ છે જે ટ્રાન્સફર કરવામાં આવે તે પહેલાં સરનામા a1 પર સ્થિત હતી. સ્ત્રોત સ્ટ્રિંગ અને ગંતવ્ય સ્ટ્રિંગ ઓવરલેપ થઈ શકે છે. ચાલો, ઉદાહરણ તરીકે, તમે બાઈટ એરે M(0:10) ના તત્વોને નીચે પ્રમાણે ખસેડવા માંગો છો: M(10):=M(9), M(9):=M(8), ..., M(1):= M(0). આ કરવા માટે, તમે !SB આદેશનો ઉપયોગ કરી શકો છો:

0 " M 10 C2 1+ !SB

પરિણામે, 10 બાઇટ્સની સ્ટ્રિંગ એક બાઇટ દ્વારા મેમરી એડ્રેસને વધારવા તરફ ખસેડવામાં આવશે.

આ!SB આદેશ અક્ષરોના સ્ટેક્સ સાથે કામ કરવા માટે અનુકૂળ છે (યાદ રાખો કે દરેક અક્ષર એક બાઈટ દ્વારા એન્કોડ થયેલ છે). તે પરવાનગી આપે છે, ઉદાહરણ તરીકે, બાઈટ એરેને સ્પષ્ટ રીતે ઉલ્લેખિત શાબ્દિક શબ્દમાળાનું મૂલ્ય સોંપવા માટે. આવી સ્ટ્રિંગનો ઉલ્લેખ કરવા માટે, ટેક્સ્ટ શાબ્દિકનો ઉપયોગ કરો, એટલે કે. અવતરણ ચિહ્નોમાં બંધ અક્ષરોનો ક્રમ, ઉદાહરણ તરીકે "TEXT LITERAL". આ રચના, જ્યારે કોઈ પ્રોગ્રામમાં આવે છે, ત્યારે ક્વોટ કરેલ ટેક્સ્ટ ધરાવતી બાઈટ સ્ટ્રિંગની શરૂઆતનું સરનામું અને લંબાઈને સ્ટેક પર ધકેલવાનું કારણ બને છે. આ પરિમાણો પછી!SB આદેશ દ્વારા વાપરી શકાય છે. ઉદાહરણ તરીકે, ટુકડો "TABLE" 0 " TN !SB શાબ્દિક "TABLE" ને TN એરેમાં ફોરવર્ડ કરવાનું કારણ બનશે.

SRCHB આદેશ સ્ટ્રિંગમાં ઉલ્લેખિત બાઈટ માટે શોધ કરે છે. પરિમાણો: , જ્યાં b એ બાઈટ છે જેની પ્રથમ ઘટના શોધવી આવશ્યક છે, a અને n અનુક્રમે શરૂઆતનું સરનામું અને સ્ટ્રિંગની લંબાઈનો ઉલ્લેખ કરે છે જેમાં શોધ હાથ ધરવામાં આવી રહી છે. જો n>0, તો શોધ એ એડ્રેસ a થી એડ્રેસ a+n-1 સુધી હાથ ધરવામાં આવે છે (એડ્રેસ વધારવાની દિશામાં), જો n<0, то поиск ведется с адреса a до адреса a+n+1 (в сторону убывания адресов). В результате выполнения этой команды в стеке оказывается значение d, равное смещению относительно адреса a до первого вхождения байта b. Если такое вхождение не обнаружено, то d=n. Примеры:

#T "TEXT" SRCHB

#A "TEXT" SRCHB

#E "TEXT" [#E,a,4] 1- + -4 [#E,a+3,-4] SRCHB [-2]

ડેટા સાથે કામ કરવા માટેના સાધનોની અમારી વિચારણાને સમાપ્ત કરીને, ચાલો આપણે કમ્પ્યુટરની બાહ્ય મેમરીમાં ડેટા સ્ટોર કરવા સંબંધિત મુદ્દા પર ધ્યાન આપીએ, એટલે કે. ચુંબકીય ડિસ્ક પર. PARA ભાષામાં સેવ કમાન્ડ છે<имя файла>, જે સિસ્ટમની મુખ્ય મેમરીની નકલને વપરાશકર્તા-વ્યાખ્યાયિત ઑબ્જેક્ટ્સ સાથે ડિસ્કમાં સાચવવા માટે સૂચના આપે છે. આ કિસ્સામાં, VAR, VCTR, ARR ઓપરેશન્સ દ્વારા ડેટા માટે ફાળવેલ મેમરી વિસ્તારો ડિસ્ક પર આઉટપુટ નથી. પરિણામે, ડિસ્કમાંથી સાચવેલી સિસ્ટમ લોડ કરતી વખતે, ઉલ્લેખિત ડેટાના મૂલ્યો વ્યાખ્યાયિત કરવામાં આવતાં નથી (તેઓ પ્રોગ્રામ એક્ઝેક્યુશન દરમિયાન નક્કી કરવા આવશ્યક છે). મોટા ભાગના કિસ્સાઓમાં, આ વાજબી છે, કારણ કે કાર્યકારી ચલો, બફર્સ વગેરેને સંગ્રહિત કરવા માટે ડિસ્ક મેમરીને બગાડવાની જરૂર નથી. જો કે, એવા ડેટા છે કે જેની કિંમતો ડિસ્કમાંથી સિસ્ટમને બુટ કર્યા પછી તરત જ નક્કી કરવી આવશ્યક છે. ઉદાહરણ એ ચલ છે જે અમુક બાહ્ય ઉપકરણ સાથે ડેટા એક્સચેન્જની ઝડપને સંગ્રહિત કરે છે. કોઈ અલગ વિનિમય દર પર સ્વિચ કરતી વખતે, પ્રોગ્રામમાં કોઈપણ સુધારા કર્યા વિના આ ચલની કિંમત બદલવા માટે તે પૂરતું છે.

SAVE આદેશનો ઉપયોગ કરીને કેટલાક ડેટા સ્ટ્રક્ચરના ઘટકોના મૂલ્યોને ડિસ્ક પર આઉટપુટ કરવા જોઈએ તે પ્રોસેસરને સંકેત એ સ્ટ્રક્ચર ડેફિનેશન પહેલાં મૂકવામાં આવેલ FIX ઉપસર્ગ છે, ઉદાહરણ તરીકે

FIX VAR સ્પીડ 20 FIX BYTE VCTR TABL

આ રીતે વ્યાખ્યાયિત ડેટા સ્ટ્રક્ચર્સ સાથે કામ કરવું એ સામાન્ય રીતે વ્યાખ્યાયિત સ્ટ્રક્ચર્સ સાથે કામ કરતા અલગ નથી.

પ્રોસેસર નિયંત્રણ આદેશો

PARA ભાષામાં DSSP પ્રોસેસર અથવા વધુ સ્પષ્ટ રીતે, DSSP પ્રોસેસર ઇમ્યુલેટરને નિયંત્રિત કરવા માટે રચાયેલ આદેશોનું એક નાનું જૂથ છે.

RESTART આદેશ પ્રોસેસરને પુનઃપ્રારંભ કરવા માટેનું કારણ બને છે. આ કિસ્સામાં, સ્ટેક સાફ થાય છે અને એક સંદેશ પ્રદર્શિત થાય છે

DSSP સંસ્કરણ XX.XX.XX

ઉપલબ્ધ XXXXXW

અને પ્રોસેસર કમાન્ડ ઇનપુટ માટે સ્ટેન્ડબાય મોડમાં જાય છે. પ્રોગ્રામ ડીબગ કરતી વખતે આ આદેશ ઉપયોગી થઈ શકે છે. જ્યારે ભૂલની પરિસ્થિતિઓ થાય ત્યારે પણ તે ચલાવવામાં આવે છે: અનુક્રમણિકા એરેની સીમાઓથી આગળ વધે છે, ફ્રી મેમરી ખતમ થઈ જાય છે, વગેરે.

\G આદેશનો ઉપયોગ અવ્યાખ્યાયિત શબ્દ પર બંધ કર્યા પછી પ્રોગ્રામ એક્ઝેક્યુશન ચાલુ રાખવા માટે થાય છે. જો, પ્રક્રિયા ચલાવતી વખતે, પ્રોસેસરને અવ્યાખ્યાયિત શબ્દના સંદર્ભનો સામનો કરવો પડે, તો તે એક સંદેશ આપે છે:

રોકો મને ખબર નથી<слово> .

જ્યાં ડોટ એ ડીએસએસપી પ્રોસેસર પ્રોમ્પ્ટ છે, જે સંકેત આપે છે કે પ્રોસેસર અવ્યાખ્યાયિત શબ્દ પર અટકવાની સ્થિતિમાં છે. આ મોડમાં, તમે કોઈપણ પ્રોસેસર આદેશો ચલાવી શકો છો, સામાન્ય મોડની જેમ, જ્યારે ફૂદડી પ્રોમ્પ્ટ હોય. આ મોડમાંથી બહાર નીકળવાની બે રીતો છે - કાં તો \G આદેશ ચલાવીને (પછી પ્રોસેસર વિક્ષેપિત પ્રક્રિયાને ચલાવવાનું ચાલુ રાખશે, અવ્યાખ્યાયિત શબ્દને છોડીને), અથવા RESTART આદેશનો ઉપયોગ કરીને.

EXEC આદેશ પ્રોસેસરને એવી પ્રક્રિયા ચલાવવા માટે કહે છે કે જેનું સરનામું સ્ટેકની ટોચ પર છે. પ્રક્રિયાનું સરનામું મેળવવા માટે, "" આદેશનો ઉપયોગ કરો (બે એપોસ્ટ્રોફી), પ્રક્રિયાના નામ પછી. ઉદાહરણ તરીકે, આદેશ ચલાવવાના પરિણામે

ABS પ્રક્રિયાનું સરનામું સ્ટેક પર દબાણ કરવામાં આવશે. આ આદેશો તમને પેરામીટર તરીકે બીજી પ્રક્રિયામાં પ્રક્રિયા પસાર કરવાની મંજૂરી આપે છે.

પ્રોસેસર કંટ્રોલ કમાન્ડના જૂથમાં પહેલાથી જ ઉલ્લેખિત સેવ ઓપરેશનનો સમાવેશ થાય છે<имя файла>, જે ડિસ્ક પર સિસ્ટમની નકલ સાચવવાની સૂચના આપે છે, તેમજ આદેશો કે જે પ્રોસેસરના ઇનપુટને પૂરા પાડવામાં આવેલ ટેક્સ્ટ માહિતીના ઇનપુટ સ્ત્રોતને નિર્ધારિત કરે છે. શરૂઆતમાં, આ સ્ત્રોત ડિસ્પ્લે કીબોર્ડ છે.

લોડ આદેશ<имя файла>ઉલ્લેખિત નામ સાથે ડિસ્ક ફાઇલમાં ઇનપુટ સ્વિચ કરે છે. PF આદેશ - તમને ટેક્સ્ટ એડિટર બફરમાંથી આદેશો દાખલ કરવાની સૂચના આપે છે. TEXEC આદેશ પ્રોસેસર ઇનપુટ પર ટેક્સ્ટ સ્ટ્રિંગ પસાર કરે છે, જેનાં પરિમાણો સ્ટેક પર ઉલ્લેખિત છે. ઉલ્લેખિત સ્ત્રોતોમાં સમાવિષ્ટ આદેશોના અમલ પર, ઇનપુટ આપમેળે ડિસ્પ્લે કીબોર્ડ પર સ્વિચ કરે છે.

શબ્દકોશ નિયંત્રણ આદેશો

પ્રોસેસર દ્વારા જોવામાં આવતા ઇનપુટ કમાન્ડ સ્ટ્રીમમાં, ખાસ કરીને, પ્રક્રિયાઓ અને ડેટાને વ્યાખ્યાયિત કરવા માટેના આદેશો હોઈ શકે છે, જે આંતરિક રજૂઆતમાં સંકલન અને પ્રક્રિયાના મુખ્ય ભાગમાં સંગ્રહ અથવા ઉલ્લેખિત ડેટા માટે મેમરીની ફાળવણી તેમજ નામ દાખલ કરવા માટેનું કારણ બની શકે છે. DSSP શબ્દકોશમાં સંકલિત પ્રક્રિયા અથવા ડેટા માળખું.

શબ્દકોશ બાહ્ય (પ્રોગ્રામ ટેક્સ્ટમાં વપરાયેલ) નામો અને આંતરિક રજૂઆતમાં આ નામોને અનુરૂપ ઑબ્જેક્ટના સરનામા વચ્ચે પત્રવ્યવહાર સ્થાપિત કરે છે. પ્રક્રિયાની વ્યાખ્યા અથવા નામના ડેટાના વર્ણન પર પ્રક્રિયા કરતી વખતે, પ્રોસેસર શબ્દકોશને વિસ્તૃત કરે છે, તેમાં નામ (વધુ સ્પષ્ટ રીતે, નામના પ્રથમ 7 અક્ષરો) અને પ્રક્રિયાના મુખ્ય ભાગનું સરનામું ધરાવતી નવી શબ્દકોશ એન્ટ્રી બનાવે છે અથવા આ નામ સાથે સંકળાયેલ ડેટા વર્ણનકર્તા.

જ્યારે પ્રોગ્રામિંગ ટોપ-ડાઉન, પ્રક્રિયા સંસ્થાઓમાં હજી સુધી નિર્ધારિત ન હોય તેવા પદાર્થોના સંદર્ભો હોઈ શકે છે. આ કિસ્સામાં, ડિક્શનરી એન્ટ્રીઓ (મથાળાઓ) શબ્દકોશમાં રચાય છે, જે અનિશ્ચિતતાના ચિહ્ન સાથે ચિહ્નિત થાય છે. ડિસ્પ્લે સ્ક્રીન પર બધા અવ્યાખ્યાયિત નામો દર્શાવવા માટે, UNDEF આદેશનો ઉપયોગ કરો.

શબ્દકોશના વિસ્તરણ દરમિયાન, પેટા-શબ્દકોશ રચવાનું શક્ય છે - શબ્દકોશ એન્ટ્રીઓના નામના સંગ્રહો. પેટાડિક્શનરી સામાન્ય રીતે સમાન કાર્ય સાથે સંબંધિત પ્રક્રિયાઓ અને ડેટા સ્ટ્રક્ચર્સને જોડે છે. પેટાડિક્શનરીના નામો અને અન્ય પ્રોગ્રામ ઑબ્જેક્ટ વચ્ચે મૂંઝવણ ટાળવા માટે, પેટાડિક્શનરીનું નામ $ અક્ષરથી શરૂ થવું જોઈએ. તેમના વિસ્તરણ અથવા ઉપયોગ માટે પેટાડિક્શનરીઓની ઍક્સેસ ખાસ આદેશો સાથે ખોલી અને બંધ કરી શકાય છે, જેમાં નીચેનાનો સમાવેશ થાય છે ($v નામનો અર્થ કોઈપણ માન્ય પેટાડિક્શનરી છે).

GROW $v - $v પેટાડિક્શનરીમાં વધારો કરો, એટલે કે, જ્યાં સુધી અન્યથા સૂચના આપવામાં ન આવે ત્યાં સુધી, તમામ સંકલિત પ્રક્રિયાઓ અને ડેટાના નામ $v પેટાડિક્શનરીમાં દાખલ કરો;

USE $v - ઉપયોગ માટે ખુલ્લું (તેમાં નામો શોધવા માટે) પેટાડિક્શનરી $v;

SHUT $v - સબડિક્શનરી $v નો ઉપયોગ કરવાની ક્ષમતા બંધ કરો;

ફક્ત $v - ઉપયોગ માટે માત્ર પેટાડિક્શનરી $v ઉપલબ્ધ કરાવો;

રદ કરો - ફક્ત છેલ્લું રદ કરો.

ત્યાં એક આદેશ પણ છે?$, જે ડિસ્પ્લે પર તમામ પેટાડિક્શનરીઓના નામ અને તેમની સ્થિતિ પ્રિન્ટ કરે છે - પછી ભલે પેટાડિક્શનરી શોધ માટે ખુલ્લી હોય કે બંધ હોય. જેનું નામ ટોચ પર છપાયેલ હોય તે પેટાડિક્શનરી હંમેશા વિસ્તૃત થાય છે.

મૂળભૂત DSSP પ્રક્રિયાઓ $PRIME નામની પેટા-શબ્દકોષની રચના કરે છે, જે મૂળભૂત રીતે ઉપયોગ અને એક્સ્ટેંશન માટે ખુલ્લી હોય છે, એટલે કે, જો અન્ય પેટા-શબ્દકોષના વિસ્તરણની સૂચના આપતો કોઈ આદેશ ન હોય.

ઉદાહરણ તરીકે, પેટાડિક્શનરીઓની આગલી સ્થિતિને છાપવા માટે ઑપરેશન?$નો ઉપયોગ કરીએ.

$PRG ખુલ્લું છે

$PRIME ખુલ્લું છે

$EDIT બંધ છે

$PRIME ખુલ્લું છે

સિસ્ટમ બંધ છે

આનો અર્થ એ છે કે આ ક્ષણે પેટાડિક્શનરી $PRG વૃદ્ધિ અને ઉપયોગ માટે ખુલ્લી છે, $PRIME માત્ર ઉપયોગ માટે છે, અને $EDIT અને SYSTEM ઉપલબ્ધ નથી. નોંધ કરો કે પેટાડિક્શનરીમાં સમાન નામો સાથે ઘણા વિભાગો હોઈ શકે છે.

ડિક્શનરીમાંથી ડિક્શનરી એન્ટ્રીઓના ચોક્કસ સેટ અને, કદાચ, તેમની સાથે સંકળાયેલ આંતરિક વસ્તુઓને ડિલીટ કરવા માટેના આદેશો છે. આમ, FORGET $v આદેશ GROW $v આદેશના છેલ્લા એક્ઝિક્યુશન પછી ડિક્શનરીમાં દાખલ થયેલા બધા નામોને કાઢી નાખે છે (માત્ર $v સબડિક્શનરી નહીં), આ નામો દ્વારા નિયુક્ત વસ્તુઓ સાથે, અને $v ની વૃદ્ધિને રદ કરે છે. પેટા શબ્દકોશ પ્રોગ્રામ $v આદેશ એ જ ક્રિયાઓ કરે છે જેમ કે FORGET $v GROW $v આદેશો ક્રમિક રીતે ચલાવવામાં આવે છે. કોઈપણ પ્રોગ્રામની શરૂઆતમાં આવા આદેશની હાજરી એ હકીકત તરફ દોરી જાય છે કે જ્યારે પ્રોગ્રામ ફરીથી કમ્પાઇલ કરવામાં આવે છે, ત્યારે તેની જૂની કૉપિ કાઢી નાખવામાં આવશે અને પ્રોગ્રામની નવી કૉપિના ઑબ્જેક્ટ્સને સ્ટોર કરવા માટે પેટાડિક્શનરી બનાવવામાં આવશે. ઉદાહરણ તરીકે, જેની સ્થિતિ ઉપર દર્શાવવામાં આવી હતી તે શબ્દકોશ પર FORGET $PRIME ઑપરેશન કરીને, અમે એક નવી સ્થિતિ મેળવીએ છીએ:

$EDIT બંધ છે

$PRIME ખુલ્લું છે

સિસ્ટમ બંધ છે

FORGET આદેશના અમલ દરમિયાન, કાઢી નાખવાના વિભાગોના નામ પ્રદર્શિત થાય છે.

મહેરબાની કરીને નોંધ કરો કે SYSTEM સબડિક્શનરીનું નામ $ અક્ષરથી શરૂ થતું નથી. આ સ્વીકાર્ય છે, પરંતુ તે એ હકીકત તરફ દોરી જાય છે કે આ પેટાડિક્શનરી પર FORGET અને RPOGRAM આદેશો લાગુ કરવાથી કોઈ ક્રિયા થતી નથી (સિસ્ટમ પેટાડિક્શનરી તેમના માટે અસ્તિત્વમાં હોય તેવું લાગતું નથી).

એ હકીકતને કારણે કે તૈયાર પ્રોગ્રામમાં, મોટાભાગની પ્રક્રિયાઓ માટે, બાહ્ય નામ દ્વારા ઍક્સેસની આવશ્યકતા નથી, તેમની સાથે સંકળાયેલ આંતરિક વસ્તુઓને સાચવીને શબ્દકોશમાંથી તેમના નામો દૂર કરવાનું શક્ય છે. CLEAR $v કમાન્ડ $v પેટાડિક્શનરીના તમામ વિભાગોમાંથી બધા નામોને દૂર કરે છે, તે સિવાય કે જે પ્રોગ્રામ ટેક્સ્ટ (જ્યારે તેઓ વ્યાખ્યાયિત કરવામાં આવ્યાં હતાં) ઉપસર્ગ દ્વારા:: (બે કોલોન્સ) દ્વારા પહેલા આપવામાં આવ્યા હતા. ઉદાહરણ તરીકે, પ્રોસેસર નીચેના પ્રોગ્રામના ટુકડાને એક્ઝેક્યુટ કરવાના પરિણામે:

:: : X+ Y !+ X ;

$EXAM સાફ કરો $EXAM પેટાડિક્શનરીમાં, ફક્ત X અને X+ નામો જ રહેશે, શબ્દકોશ એન્ટ્રી Y દૂર કરવામાં આવશે (જોકે આંતરિક રજૂઆતમાં Y શબ્દને અનુરૂપ ચલ રહેશે).

I/O આદેશો

DSSP સાથે વપરાશકર્તાની ક્રિયાપ્રતિક્રિયાનું મુખ્ય માધ્યમ ટર્મિનલ છે, જે સામાન્ય રીતે કીબોર્ડ સાથેનું કેથોડ-રે ડિસ્પ્લે છે. ટર્મિનલથી, પ્રારંભિક ઇનપુટ, પ્રોગ્રામ્સનું સંપાદન અને ડીબગીંગ, ડેટાની તૈયારી અને તમામ સિસ્ટમ મેનેજમેન્ટ હાથ ધરવામાં આવે છે. પ્રોગ્રામ્સ અને ડેટા, તેમજ DSSP પોતે, ડિસ્ક પર ફાઇલો તરીકે સાચવવામાં આવે છે અને પ્રિન્ટર પર પ્રિન્ટ કરી શકાય છે. ઇનપુટ/આઉટપુટને નિયંત્રિત કરવા માટે, મૂળભૂત DSSP પ્રક્રિયાઓના સમૂહમાં નીચે વર્ણવેલ સાધનોનો સમાવેશ થાય છે.

ટર્મિનલનું પ્રોગ્રામિંગ સંખ્યાઓના ઇનપુટ અને આઉટપુટ, વ્યક્તિગત અક્ષરો અને અક્ષરોના ક્રમ (સ્ટ્રિંગ્સ) તેમજ કેટલાક વધારાના આદેશો દ્વારા પ્રદાન કરવામાં આવે છે.

TIB (ટર્મિનલ ઇનપુટ બાઇટ) આદેશ ટર્મિનલ કીબોર્ડ પર કી દબાવવાની રાહ જોઈને લૂપ શરૂ કરે છે. જ્યારે કી દબાવવામાં આવે છે, ત્યારે અનુરૂપ અક્ષરનો 8-બીટ કોડ સ્ટેક પર ટોચના સૌથી ઓછા નોંધપાત્ર બાઈટ તરીકે ધકેલવામાં આવે છે, જેમાં સૌથી વધુ 3 બાઈટ શૂન્ય ધરાવે છે. આ રીતે દાખલ કરેલ પાત્રની નકલ ડિસ્પ્લે પર પ્રદર્શિત થાય છે. ત્યાં એક TRB (ટર્મિનલ રીડ બાઈટ) આદેશ પણ છે, જે TIB થી અલગ છે કે દાખલ કરેલ પત્રનો કોડ સ્ટેક પર મોકલવા સાથે ડિસ્પ્લે પર આ અક્ષર દર્શાવવામાં આવતું નથી.

TIN (ટર્મિનલ ઇનપુટ નંબર) કમાન્ડ સ્ટેકમાં નંબર દાખલ કરવા અને કીબોર્ડમાંથી ટાઇપ કરેલ નંબર દર્શાવવાનું ચક્ર શરૂ કરે છે. દાખલ કરેલ નંબર અંકોનો ક્રમ હોવો જોઈએ જે બાદબાકીના ચિહ્નથી શરૂ થઈ શકે છે અને તેની સાથે સમાપ્ત થઈ શકે છે . સેટ ઇનપુટ/આઉટપુટ મોડ પર આધાર રાખીને, પ્રોસેસર દ્વારા સંખ્યાઓને હેક્સાડેસિમલ, દશાંશ, અષ્ટ અથવા દ્વિસંગી તરીકે જોવામાં આવે છે. જો હેક્સાડેસિમલ નંબર અક્ષર દ્વારા દર્શાવવામાં આવેલા અંકથી શરૂ થાય છે, તો તેની પહેલા અંક 0 ઉમેરવામાં આવે છે, જે દ્વિસંગી બેના પૂરક કોડમાં રૂપાંતરિત થાય છે, જે 32-બીટ લાંબા શબ્દના પૂર્ણાંક મૂલ્ય તરીકે સ્ટેક પર ધકેલવામાં આવે છે. , એટલે કે 2 થી 31 ની શક્તિ ધરાવતા સૌથી નોંધપાત્ર બીટની ડાબી બાજુએ સ્થિત બિટ્સ કાપવા સાથે.

દરેક TIN આદેશ એક નંબર દાખલ કરે છે. જો તમારે એક લીટીમાં સંખ્યાઓનો ક્રમ દાખલ કરવાની જરૂર હોય, તો તેમને કી દબાવીને અલગ કરવી આવશ્યક છે. , અને પ્રોગ્રામમાં દરેક નંબર દાખલ કરવા માટે TIN આદેશ ફરીથી અમલમાં મૂકવો આવશ્યક છે.

કીબોર્ડ પરથી ટાઇપ કરેલ n અક્ષરો ધરાવતો ક્રમ n બાઇટ્સના રૂપમાં કોમ્પ્યુટર મેમરીમાં દાખલ કરવામાં આવે છે, જે ક્રમશઃ વધતા સરનામાંઓ પર સ્થિત છે, TIS (ટર્મિનલ ઇનપુટ સ્ટ્રિંગ) આદેશનો ઉપયોગ કરીને, સરનામાં a થી શરૂ થાય છે, જેની પહેલાં સરનામું a અને નંબર અક્ષરો n સ્ટેક પર દબાણ કરવામાં આવે છે. ચાલો, ઉદાહરણ તરીકે, પર્યાપ્ત લંબાઈના બાઈટ Xનો વેક્ટર જાહેર કરીએ. તમારે શૂન્ય તત્વથી શરૂ કરીને, આ વેક્ટરના ઘટકોને તેમના મૂલ્યો સોંપીને, 9 અક્ષરો દાખલ કરવાની જરૂર છે:

એ જ રીતે, TOS આદેશનો ઉપયોગ કરીને, પ્રારંભિક સરનામાં સાથે n બાઈટ-લિટરના ક્રમનું આઉટપુટ સ્પષ્ટ થયેલ છે:

પ્રોગ્રામમાં સીધા જ સમાવિષ્ટ ટેક્સ્ટ ઘટકોના ટર્મિનલ પર આઉટપુટ ડિઝાઇન દ્વારા સુનિશ્ચિત કરવામાં આવે છે

."<текст>"

ઉદાહરણ તરીકે, અમુક પ્રોગ્રામના ટુકડાને એક્ઝિક્યુટ કરતી વખતે ડિસ્પ્લે પર ENTER OPTION NUMBER ટેક્સ્ટ દેખાય તે માટે, ફ્રેગમેન્ટમાં "ENTER OPTION NUMBER" એન્ટ્રી હોવી આવશ્યક છે.

TON (ટર્મિનલ આઉટપુટ નંબર) આદેશ સ્ટેકના સબટોપમાંથી લેવામાં આવેલ નંબર દર્શાવે છે, અને આઉટપુટ ફીલ્ડની લંબાઈ ટોચ પર ઉલ્લેખિત હોવી આવશ્યક છે. આઉટપુટ નંબર ફીલ્ડની જમણી કિનારે ગોઠવાયેલ છે, ડાબી બાજુની ખાલી જગ્યાઓ જગ્યાઓથી ભરેલી છે, અને જો સંખ્યાની લંબાઈ ઉલ્લેખિત ક્ષેત્રની લંબાઈ કરતાં વધી જાય, તો ડાબી બાજુ ક્લિપિંગ થાય છે. દશાંશ I/O મોડમાં, નકારાત્મક સંખ્યાઓ ઓછા ચિહ્નથી શરૂ થાય છે.

TOB (ટર્મિનલ આઉટપુટ બાઈટ) કમાન્ડ એવા અક્ષરને છાપે છે જેનો કોડ સ્ટેકની ટોચની નીચી બાઈટ દ્વારા ઉલ્લેખિત છે. સ્ટેકની ઊંડાઈ 1 થી ઓછી થઈ છે.

એવા આદેશો પણ છે જે ડિસ્પ્લે કર્સરને સીધા નિયંત્રિત કરે છે:

સીઆર - નવી લાઇનની શરૂઆતમાં જાઓ,

એસપી - જગ્યા, એટલે કે, એક સ્થાનને જમણી તરફ ખસેડવું.

BELL આદેશ ટૂંકા ધ્વનિ સંકેત ("બેલ")નું કારણ બને છે.

કેટલીકવાર, ટર્મિનલ સાથે વાતચીત કરતી વખતે, તે તપાસવું જરૂરી છે કે કી પહેલેથી જ દબાવવામાં આવી છે કે કેમ અને ડિસ્પ્લેએ પહેલાના આઉટપુટ આદેશ પર પહેલાથી જ પ્રક્રિયા કરી છે કે કેમ. આ TTI (ટર્મિનલ ટેસ્ટ ઇનપુટ) અને TTO (ટર્મિનલ ટેસ્ટ આઉટપુટ) આદેશો સાથે કરી શકાય છે, જે ઉલ્લેખિત ઘટના બને તો સ્ટેક પર 1 છોડી દે છે અને અન્યથા 0.

પ્રિન્ટર આઉટપુટ કમાન્ડ ટર્મિનલ આઉટપુટ કમાન્ડ જેવા જ હોય ​​છે અને તે સમાન નેમોનિક પર આધારિત હોય છે, જેમાં LP (લાઇન પ્રિન્ટર) અક્ષરો કાં તો TO ને બદલ્યા હોય છે અથવા અગ્રણી અક્ષરો તરીકે ઉમેરવામાં આવે છે. ઉદાહરણ તરીકે, LPCR - નવી લાઇનની શરૂઆતમાં સંક્રમણ, LPSP - સ્પેસ, LPN - શિરોબિંદુ દ્વારા ઉલ્લેખિત ક્ષેત્રમાં સબવર્ટેક્સમાંથી સંખ્યાનું આઉટપુટ, LPB - એક અક્ષરનું આઉટપુટ, LPS - અક્ષરોની સ્ટ્રિંગનું આઉટપુટ . [N] LPT કમાન્ડ પણ છે, જે પ્રિન્ટ હેડને પ્રિન્ટ કરવાની લાઇનના N સ્થાન પર ખસેડે છે, અને LPFF આદેશ, જે કાગળની શીટ ફીડ કરે છે. સ્પષ્ટ લખાણ છાપવા માટે, ટેક્સ્ટ શાબ્દિક અને LPS આદેશનો ઉપયોગ કરવો અનુકૂળ છે, ઉદાહરણ તરીકે:

"ફંક્શન મૂલ્યો કોષ્ટક" LPS

હેન્ડલિંગ વિક્ષેપો અને અપવાદો

પેરિફેરલ પ્રોગ્રામિંગ કરતી વખતે, વિક્ષેપોને હેન્ડલ કરવું જરૂરી બને છે. DSSP માં આ પ્રક્રિયા નીચે પ્રમાણે પ્રોગ્રામ કરેલ છે. વિક્ષેપને હેન્ડલ કરવા માટે રચાયેલ પ્રોગ્રામ એ નિયમિત DSSP પ્રક્રિયા છે, જેની વ્યાખ્યા INT ઉપસર્ગથી આગળ છે, ઉદાહરણ તરીકે INT: A !1+ I ; INT ઉપસર્ગ ખાતરી કરે છે કે વિક્ષેપ દરમિયાન પ્રોસેસર સ્થિતિ સાચવવામાં આવે છે અને જ્યારે વિક્ષેપ પર પ્રક્રિયા કરવામાં આવે ત્યારે પુનઃસ્થાપિત થાય છે.

પ્રોસેસિંગ પ્રોગ્રામને ચોક્કસ વિક્ષેપ સાથે લિંક કરવા માટે, LINK આદેશનો ઉપયોગ કરો:

<адрес вектора>લિંક<имя процедуры>જ્યારે એક્ઝિક્યુટ કરવામાં આવે છે, ત્યારે ઇન્ટરપ્ટ હેન્ડલિંગ પ્રક્રિયાનો કોલ સંબંધિત વેક્ટર સાથે રેકોર્ડ કરવામાં આવે છે. LINK આદેશ વિક્ષેપ સાથે પ્રક્રિયાની સ્થિર લિંકિંગ બંને કરી શકે છે, જે પ્રોગ્રામ સંકલન સમયે થાય છે, અને પ્રોગ્રામ એક્ઝેક્યુશન દરમિયાન ગતિશીલ લિંકિંગ.

પ્રોસેસર વિક્ષેપ એ સિસ્ટમ માટે બહારની દુનિયામાં બનેલી ઘટનાની સૂચના મેળવવાનો એક માર્ગ છે. પ્રોગ્રામમાં તાત્કાલિક પ્રક્રિયાની જરૂર હોય તેવી ઘટનાઓ પણ બની શકે છે. તેમને અપવાદરૂપ પરિસ્થિતિઓ કહેવામાં આવે છે. આવી પરિસ્થિતિઓના ઉદાહરણો: શૂન્ય દ્વારા વિભાજન, ઉપકરણ સાથે સંચારની ભૂલ, ઇનપુટ ફાઇલનો અંત, વગેરે.

DSSP માં, અપવાદ પરિસ્થિતિઓ આદેશ વિક્ષેપોનો ઉપયોગ કરીને રેકોર્ડ કરવામાં આવે છે. આદેશ વિક્ષેપ એ પ્રતિભાવ પ્રક્રિયાને કૉલ કરવાની નામવાળી કામગીરી છે અને નીચે પ્રમાણે જાહેર કરવામાં આવે છે:

ટ્રેપ<имя вызова> <конечная реакция>

ઉદાહરણ તરીકે:

ટ્રેપ S1 "સિચ્યુએશન S1."

પ્રથમ કિસ્સામાં, વિક્ષેપ S ની અંતિમ પ્રતિક્રિયા પ્રક્રિયા X છે, બીજામાં, જ્યારે વિક્ષેપ S1 થાય છે, ત્યારે નીચેનો સંદેશ ટર્મિનલ પર પ્રદર્શિત થશે: સિચ્યુએશન S1.

એક પ્રોગ્રામ કે જેના એક્ઝેક્યુશનથી વિક્ષેપ થઈ શકે છે તે ઇન્ટરસેપ્ટ કમાન્ડનો ઉપયોગ કરીને તેનો પોતાનો પ્રતિભાવ સેટ કરી શકે છે. DSSP બે પ્રકારના ઇન્ટરસેપ્શન પૂરા પાડે છે: ON અને EON. ઇન્ટરસેપ્શન કમાન્ડનો ઉપયોગ માત્ર પ્રક્રિયાઓમાં જ થઈ શકે છે અને તેનું ફોર્મેટ છે:

ચાલુ<имя прерывания> <реакция>

EON<имя прерывания> <реакция>ઉદાહરણ તરીકે:

: A ... ON S "ઇન્ટરપ્ટ S" ... ;

: A1 ... EON S1 ABC ... ;

ON અને EON વિવિધ પ્રકારની પ્રતિક્રિયાઓ સેટ કરે છે. જો ON આદેશ દ્વારા નવી પ્રતિક્રિયાનો ઉલ્લેખ કરવામાં આવે છે, તો જ્યારે વિક્ષેપ થાય છે, ત્યારે પ્રતિક્રિયા પ્રક્રિયા ચલાવવામાં આવે છે, જેના પછી વિક્ષેપિત પ્રોગ્રામ ચાલુ રહે છે. જો કોઈ પ્રતિક્રિયા EON સૂચના દ્વારા નિર્દિષ્ટ કરવામાં આવી હોય, તો પ્રથમ ઓપરેન્ડ સ્ટેક EON એક્ઝેક્યુશન સમયે જે ઊંડાઈ ધરાવે છે તે લે છે, પછી પ્રતિક્રિયા ચલાવવામાં આવે છે, અને તે પૂર્ણ થયા પછી, પ્રક્રિયાનો અમલ કે જેમાં EON સૂચનાનો ઉપયોગ તરત જ અટકી જાય છે.

ચાલો ઉદાહરણો જોઈએ. પ્રક્રિયા M ટર્મિનલ કીબોર્ડમાંથી અક્ષરો દાખલ કરે છે અને તે સંખ્યા છે કે કેમ તે તપાસે છે. જો દાખલ કરેલ અક્ષર અંક નથી, તો ND વિક્ષેપ ઊભો થાય છે. ટ્રેપ એનડી "નંબર નથી." : M RP M1 ; : M1 TRB [B] C #0< C2 #9 >&0 IF+ ND [B] TOB ;

ND વિક્ષેપની અંતિમ પ્રતિક્રિયા એ સંદેશ છે: સંખ્યા નહીં.

જો M ને પ્રક્રિયા P1 માંથી બોલાવવામાં આવે છે, જે વિક્ષેપ ND માટે તેનો પોતાનો પ્રતિભાવ ધરાવે છે: P1 ON ND PR1 M ; : PR1 [B] CR "ભૂલ." ડી #0 [#0] ; પછી જ્યારે નોન-ડિજિટલ કેરેક્ટર દાખલ કરવામાં આવે છે, ત્યારે ND ઇન્ટરપ્ટ પર ON ટાઈપના PR1 રિએક્શન પ્રોગ્રામ દ્વારા પ્રક્રિયા કરવામાં આવશે, જેના કારણે મેસેજને નવી લાઇન પર જારી કરવામાં આવશે: એરર. દાખલ કરેલ અક્ષર 0 અક્ષર દ્વારા બદલવામાં આવશે, જે પછી M કાર્ય કરવાનું ચાલુ રાખશે.

જો M ને P2 પ્રક્રિયામાંથી બોલાવવામાં આવે તો: P2 EON ND PR2 M ; : PR2 CR "ભૂલ. ઇનપુટનો અંત." ; પછી જ્યારે બિન-ડિજિટલ અક્ષર દાખલ કરવામાં આવે છે, ત્યારે ND ઇન્ટરપ્ટ પર PR2 પ્રકાર EON પ્રતિક્રિયા પ્રોગ્રામ દ્વારા પ્રક્રિયા કરવામાં આવશે, જેના કારણે સંદેશ નવી લાઇન પર જારી કરવામાં આવશે: ભૂલ. ઇનપુટનો અંત., જે પછી P2 બહાર નીકળી જશે. ઓપરેન્ડ સ્ટેક ખાલી હશે.

જો જરૂરી હોય તો, પ્રતિક્રિયા કાર્યક્રમમાં વિક્ષેપ ફરીથી ઉભો કરી શકાય છે, આમ તેને ઉચ્ચ-સ્તરના કાર્યક્રમો સુધી વિસ્તારવામાં આવે છે. આ કિસ્સામાં, ક્યાં તો એન્ક્લોઝિંગ પ્રક્રિયામાં ઇન્ટરસેપ્ટ આદેશમાં ઉલ્લેખિત પ્રોગ્રામ અથવા અંતિમ પ્રતિક્રિયા વિક્ષેપને હેન્ડલ કરશે. ઉદાહરણ તરીકે, જો તમે PR2 ને નીચે પ્રમાણે સંશોધિત કરો છો: : PR2 CR "ભૂલ. ઇનપુટનો અંત." એન.ડી.; પછી ટર્મિનલ પર પ્રદર્શિત થયેલ સંદેશ આના જેવો હશે: Error. પ્રવેશનો અંત. નંબર નથી.

ડીએસએસપી પાસે ઘણા બિલ્ટ-ઇન કમાન્ડ ઇન્ટરપ્ટ્સ છે, જેનો પ્રતિભાવ વપરાશકર્તા પ્રોગ્રામ્સમાં પ્રદાન કરી શકાય છે.

1. આ એક વાર્તા છે કે કેવી રીતે લોકોએ એકબીજાને સમજવાનું બંધ કરી દીધું અને આધુનિક વિશ્વની અસંખ્ય ભાષાઓ દેખાઈ. વિવિધ દેશોમાં આ પૌરાણિક કથા કેટલી લોકપ્રિય છે અને તેના અર્થઘટન શું છે?

2. ટાવર ઓફ બેબલની પૌરાણિક કથા ફક્ત એવી માન્યતા પર આધારિત નથી કે શરૂઆતમાં તમામ માનવજાત એક જ ભાષા બોલે છે, પણ એ હકીકત પર પણ આધારિત છે કે આ ભાષા "આદર્શ" હતી: વસ્તુઓના નામ તેમના સાચા સારને વ્યક્ત કરે છે. શું અન્ય સંસ્કૃતિના પ્રતિનિધિઓ આ મંતવ્યો શેર કરે છે અને શું તેઓ માને છે કે તેમની ભાષા મૂળની સૌથી નજીક છે?

પ્રથમ પ્રશ્નનો જવાબ ઉત્પત્તિ 11:1-9ની ઓલ્ડ ટેસ્ટામેન્ટ બુકમાં આપવામાં આવ્યો છે, જે કહે છે કે ઈશ્વરે માનવ જાતિને તેના પર ભાષાઓની ભેળસેળનો શાપ મૂકીને સજા કરવાનું નક્કી કર્યું છે. બીજા પ્રશ્નનો જવાબ ઉત્પત્તિ 2:19 માં મળી શકે છે. આ ભાગમાં, ભગવાન બધા પ્રાણીઓ અને પક્ષીઓને આદમ પાસે લાવ્યા જેથી આદમ તેમને શું કહેશે, અને "માણસ દરેક જીવંત આત્માને જે કહે છે, તે તેનું નામ છે." જુદી જુદી સંસ્કૃતિઓની એક ત્વરિત મુલાકાત આપણને આ મુદ્દાઓને કેવી રીતે આવરી લેવામાં આવે છે તે જોવાની મંજૂરી આપશે. તેમાંથી પ્રથમ વિશે, ઘણા લોકો ઓલ્ડ ટેસ્ટામેન્ટ સાથે સંમત છે: ભાષાઓની વિવિધતા એ ભગવાન તરફથી સજા છે અથવા, ઓછામાં ઓછું, કેટલાક પ્રતિકૂળ પરિબળનું પરિણામ છે.

ઓસ્ટ્રેલિયન આદિવાસીઓમાંથી એકની દંતકથા વૃદ્ધ લોકોને ખાવાનું કહે છે. આદિવાસીઓ કે જેઓ શરીર ખાય છે તેઓ "શુદ્ધ" ભાષા બોલતા હતા, અને જેઓ આંતરિક અવયવો ખાતા હતા તેઓ "અશુદ્ધ" ભાષા બોલતા હતા. આફ્રિકન કાબિલ્સ માને છે કે લોકો સંઘર્ષના પરિણામે વિવિધ ભાષાઓ બોલવા લાગ્યા. આસામના એક જનજાતિના જણાવ્યા અનુસાર, ભાષાઓની મૂંઝવણ એ હકીકતને કારણે હતી કે ત્રણ બાળકોએ એકવાર ઉંદરનો શિકાર કર્યો હતો. એમેઝોનિયન આદિવાસીઓમાંથી એકનો અભિપ્રાય છે કે ભગવાન લોકો અને તેમની ભાષાઓને અલગ પાડે છે જેથી તેઓ તેમના માટે વધુ આજ્ઞાકારી બને. અમેરિકાની સ્વદેશી વસ્તીમાં, મૈડુ જનજાતિ (કેલિફોર્નિયા), એવું માનવામાં આવે છે કે શરૂઆતમાં લોકો સમાન ભાષા બોલતા હતા, પરંતુ એક દિવસ, અંતિમ સંસ્કાર સમારંભમાં, ભાષા એકસરખી થવાનું બંધ થઈ ગયું. ઇરોક્વોઇસ માને છે કે ભાષાઓનું વિભાજન કુટુંબના ઝઘડાને કારણે થયું હતું જેમાં એક બાળકનું મોત થયું હતું. પરંતુ બહુભાષી ભાષાઓ એ અભિશાપ છે તેવી ધારણા એટલી વ્યાપક નથી જેટલી લાગે છે. વિશ્વમાં ઘણી આવૃત્તિઓ છે જે મુજબ કુદરતી પ્રક્રિયાઓના પરિણામે વિભાજન થયું છે.

પ્રાચીન ભારતીય પવિત્ર સ્તોત્ર "ઋગ્વેદ" ઉલ્લેખ કરે છે કે એક સમયે વાક ("શબ્દ") હતો અને દેવતાઓએ તેને ઘણા સ્વરૂપોમાં વિભાજિત કર્યું હતું. ઇન્ડોચાઇના દ્વીપકલ્પના લોકો છ જાતિઓ વિશે જણાવે છે, જેમાંથી દરેકની પોતાની જીભ એક દાંડીના રૂપમાં હતી જે ગોળમાંથી બહાર નીકળતી હતી. Quiché આદિજાતિ (ગ્વાટેમાલા) એક દંતકથા ધરાવે છે કે લોકો સાથે રહેતા હતા અને તેઓ જૂથોમાં વિભાજિત થાય ત્યાં સુધી એક જ ભાષા બોલતા હતા. દરેકે પોતાના માટે ભગવાન પસંદ કર્યા અને પોતાની ભાષા બોલવા લાગ્યા.

દક્ષિણ અમેરિકન નાવાજો સર્જન દંતકથા "બદલતી સ્ત્રી" અને તેની ભાષા બોલતા વાસ્તવિક લોકોના ઉદભવ વિશે જણાવે છે. તેથી, તેણીએ પડોશી લોકો બનાવ્યા - પ્યુબ્લોસ, મેક્સીકન આદિવાસી અને અન્ય, અને તેઓ તેમની પોતાની ભાષાઓ બોલતા હતા, તેમને જુદી જુદી દિશામાં ફેલાવતા હતા. ઇસ્લામમાં, કુરાન શીખવે છે કે આદમે નામો અથવા અન્ય કંઈપણ બનાવ્યું ન હતું, પરંતુ અલ્લાહ દ્વારા બધું શીખવવામાં આવ્યું હતું. ભાષાઓની વિવિધતા એકદમ કુદરતી છે અને અલ્લાહની શક્તિનું અભિવ્યક્તિ છે. બધા લોકો કુરાનના ઘટસ્ફોટને સમજવામાં સક્ષમ છે, પછી ભલે તેઓ કોઈપણ ભાષામાં લખાયેલા હોય.

વિશ્વના ઘણા લોકોની પૌરાણિક પ્રણાલીમાં ભાષાઓની મૂંઝવણ માટે કોઈ સમજૂતી નથી, જે ફક્ત સ્વીકારવામાં આવે છે, અને તેથી તે આપણા પ્રશ્નનો જવાબ આપી શકતી નથી. જો કે, વિશ્વની લગભગ તમામ સંસ્કૃતિઓમાં "આદર્શ" ભાષાનો ઉલ્લેખ છે (પ્રશ્ન 2). ઉપર અમે એક ઓસ્ટ્રેલિયન આદિજાતિનો ઉલ્લેખ કર્યો છે જે માને છે કે કેટલાક લોકો (જેઓ માનવ શરીર પર ખોરાક લે છે) "શુદ્ધ" ભાષા બોલે છે જે વસ્તુઓનો સાચો સાર જણાવે છે. પ્રાચીન ઇજિપ્તવાસીઓ અનુસાર, દેવ પતાહે દરેક વસ્તુને નામ આપ્યા, આમ ભાષા દેવતાઓ તરફથી ભેટ બની. ચીનમાં, "સાચી" ભાષા પૌરાણિક સમ્રાટો દ્વારા શીખવવામાં આવતી હતી. કુરાન ભાષાઓની વિવિધતાને એક ભાષાના વિભાજન તરીકે જુએ છે જેમાં અન્ય તમામનો સમાવેશ થાય છે.

દરેક જગ્યાએ લોકો એ સમજવાનો પ્રયાસ કરી રહ્યા છે કે કોઈ વસ્તુનું નામ તેના સારને કેવી રીતે પ્રગટ કરે છે. એવું માનવામાં આવે છે કે વિષયના સાચા સારનું વર્ણન કરતી "આદર્શ" ભાષા આજે અસ્તિત્વમાં છે, અથવા તે ભૂતકાળની વાત છે. બીજી ધારણા વિશ્વમાં સત્ય અને સંવાદિતાની શોધ માટે પૂર્વશરત તરીકે સેવા આપે છે. એવું લાગે છે કે વાસ્તવિક વિશ્વ અને માનવ અસ્તિત્વ સાથે ભાષાના જોડાણ વિશેના વિચારો આપણી ચેતનામાં જડિત છે. આ સંદર્ભમાં, એક પ્રશ્ન ઊભો થાય છે, જે પ્લેટોના સંવાદ "ક્રેટિલસ" માં સૌપ્રથમ અવાજ ઉઠાવવામાં આવ્યો હતો અને જે ત્યારથી સતત ચર્ચાનો વિષય રહ્યો છે: નામ અને કુદરતી વસ્તુઓના ઉદ્દેશ્ય સાર વચ્ચેનું જોડાણ છે (મૂળ વક્તાની વ્યક્તિલક્ષી ચેતનામાં ઉદ્ભવે છે. ) અથવા આ જોડાણ શરતી અને આકસ્મિક છે?

અસલામુ અલૈકુમ વો રોહમતુલ્લાહી વ બરાકાતુહુ!
"અરબી એ સ્વર્ગના રહેવાસીઓની ભાષા છે!" (અંદાજે અર્થ)
પ્રિય ભાઈઓ, હું તમને આ હદીસ સંબંધિત પ્રશ્નની સ્પષ્ટતા કરવા માટે કહું છું, શું તે વિશ્વસનીય છે? સામાન્ય રીતે, શું આ શબ્દો પ્રોફેટ મુહમ્મદ અલયહી સલામના શબ્દો છે?
બરકઅલ્લાહુ ફિકુમ વો જઝાકુમુલ્લાહુ ખૈર!

વ અલૈકુમ સલામ વ રહમતુલ્લાહી વ બરાકાતુહ!

અલ-ઓસતમાં અત-તબારાની, અબુ હુરૈરાના શબ્દોમાંથી, અહેવાલ આપે છે:
"અલ્લાહના મેસેન્જર, અલ્લાહ તેને આશીર્વાદ આપે અને તેને શાંતિ આપે, કહ્યું: "હું એક આરબ છું, કુરાન અરબીમાં છે, અને સ્વર્ગના ઘરોની ભાષા અરબી હશે."

શેખ અલ-અલ્બાની તેને સિલસિલા અલ-દૈફા નંબર 161 પર લાવ્યા, કહ્યું:

"આ હદીસ કાલ્પનિક છે (મૌદુ'). વાસ્તવમાં, એવી એક પણ વિશ્વસનીય હદીસ નથી કે જે સમજાવે કે સ્વર્ગના રહેવાસીઓ કઈ ભાષા બોલશે, તેથી મૌન રહેવું અને આ મુદ્દા વિશેની વાતચીતમાં ડૂબી ન જવું જરૂરી છે, તેના વિશેનું જ્ઞાન અલ્લાહ સર્વશક્તિમાનને છોડીને, અને ફક્ત તેમાં જ વ્યસ્ત રહેવું. શું તે કૃત્યો કરવા તરફ દોરી જશે જે અન્ય વિશ્વમાં લાભ લાવશે!
શેખ-ઉલ-ઇસ્લામ ઇબ્ને તૈમિયા, અલ્લાહ તેમના પર દયા કરી શકે છે, તેમને પૂછવામાં આવ્યું: “કયામતના દિવસે લોકો કઈ ભાષા બોલશે? શું અલ્લાહ સર્વશક્તિમાન લોકોને અરબીમાં સંબોધશે? અને શું એ સાચું છે કે નરકના રહેવાસીઓની ભાષા ફારસી છે, અને સ્વર્ગના રહેવાસીઓની ભાષા અરબી છે?
જેના માટે તેણે જવાબ આપ્યો: “વખાણ અલ્લાહ માટે, વિશ્વના ભગવાન! તે દિવસે લોકો કઈ ભાષામાં બોલશે તે અજ્ઞાત છે, જેમ તે અજ્ઞાત છે કે તેમના ભગવાન, મહાન અને ગૌરવપૂર્ણ, તેમને કઈ ભાષામાં સંબોધશે. ન તો અલ્લાહ સર્વશક્તિમાન કે તેના મેસેન્જર, શાંતિ અને આશીર્વાદ, અમને આ વિશે કંઈપણ કહ્યું નથી, અને તે પણ વિશ્વસનીય નથી કે નરકના રહેવાસીઓની ભાષા ફારસી હશે, અને સ્વર્ગના રહેવાસીઓની ભાષા અરબી હશે. અને અમે નથી જાણતા કે અલ્લાહ તેમનાથી ખુશ થઈ શકે છે, સાથીઓમાં આ બાબતે કોઈ મતભેદ હતો. ઊલટું, તેઓએ આમ કરવાથી બચ્યું કારણ કે તેના વિશે વાત કરવી નકામી છે. જો કે, આ મુદ્દાને લઈને અનુગામી પેઢીઓમાં મતભેદ ઊભો થયો. કેટલાકે કહ્યું કે તેઓ અરબીમાં વાતચીત કરશે, અન્ય લોકોએ કહ્યું કે આ નરકના રહેવાસીઓને લાગુ પડતું નથી, કારણ કે તેઓ ફારસીમાં જવાબ આપશે અને આ નરકમાં તેમની ભાષા છે. ત્રીજું એ છે કે લોકો આશ્શૂરમાં વાતચીત કરશે, કારણ કે આ આદમની ભાષા છે, જેમાંથી અન્ય બધી ભાષાઓની ઉત્પત્તિ થઈ છે. ચોથું - કે આ સ્વર્ગના રહેવાસીઓને લાગુ પડતું નથી, કારણ કે તેઓ અરબીમાં વાતચીત કરશે. જો કે, તેમાંના કોઈની પાસે પણ તેમના શબ્દોને સમર્થન આપવા માટે કોઈ પુરાવા નથી, કારણ કે શરીયત સ્ત્રોતોમાંથી, પરંતુ આ ફક્ત કોઈપણ પુરાવાઓથી મુક્ત નિવેદનો છે. અલ્લાહ સર્વશક્તિમાન વધુ સારી રીતે જાણે છે!” જુઓ મજમુલ ફતવા 4/299.



શું તમને લેખ ગમ્યો? તમારા મિત્રો સાથે શેર કરો!