Кіріспе

CAL (Conversational Algebraic Language) – 1967 жылы Берклиде Батлер Лэмпсон SDS 940 мейнфрейм компьютері үшін жасаған бағдарламалау тілі және жүйе. CAL – JOSS тілінің бірнеше түзетулермен және SDS платформасының мүмкіндіктерін пайдалануға бағытталған жаңа мүмкіндіктері бар нұсқасы. Беркли SDS Tymshare коммерциялық уақыт бөлісу платформасын әзірлеу үшін қолданылды, ал CAL-дың жетілдірілген нұсқасы 1969 жылы клиенттерге бағдарламалау ортасы ретінде ұсынылды. CAL «дерексіз қолданысқа ие» болғанымен, оның көптеген мүмкіндіктерін көшірген Tymshare SUPER BASIC дизайнына ықпал ету арқылы ұзақ мерзімді әсері болды. Осы мүмкіндіктердің кейбіреулері, өз кезегінде, Microsoft BASIC-тің тікелей атасы – PDP 11-дегі BASIC PLUS-те пайда болды.

Негізгі түсініктер

JOSS АҚШ Әуе күштері мен Rand корпорациясында бағдарламалау білмейтін адамдар үшін қолдануға арналған, ал оған көмектесу үшін Rand орнату мен пайдалану оңай компьютерлік терминалдарды жасады. Бұл терминалдар IBM Selectric терілгіш машинасының негізінде құрылған, сонымен қатар, математикалық символдарды (мысалы, және ) іске асыратын арнайы таңбалар жиынтығын қамтыды. Көп жағдайда CAL – бұл JOSS нұсқасы болды, ол осындай жекелеген параметрлерді әдеттегідей шешімдермен (мысалы, және ) алмастырды, соның арқасында олар стандартты терминалдарда жұмыс істей алды. Басқа бірнеше айырмашылықтардың ішінде CAL тек үлкен әріптермен жазылса, JOSS сөйлемдерде әдеттегідей әріптерді пайдаланды, сондай-ақ, жолдың соңында нүкте қою қажет болмады. Әйтсе де, командалар шамамен бірдей болды, жалпы құрылымы мен синтаксисі де сол күйінде қалды. JOSS сияқты, CAL-де де пайдаланушыға «тікелей режимде» операторларды немесе «жайсыз режимде» іске асылатын бағдарламаларды енгізуге мүмкіндік беретін интерактивті интерфейс болды. BASIC тілінде бұл режимдер сәйкесінше «тез режим» деп аталады. CAL және JOSS екеуі де екі бөліктен тұратын жол нөмірін қолданды, олар бөлім және қадам деп аталады, олар нүктемен бөлінеді, мысалы, 1-бөлім, 100-қадам. Бөлімдер әдетте байланысты операторларды қосалқы бағдарламаларға біріктіру үшін қолданылды. CAL-да бөлім нөмірі 0 мен 999999 аралығында, ал қадам 0 мен 99999 аралығында болуы мүмкін. CAL-дың 1967 және 1969 жылдары жарық көрген екі негізгі нұсқасы болды. Төмендегі сипаттама, егер басқаша көрсетілмесе, негізінен бұрынғы нұсқаға сүйенеді.

Секірулер мен ішкі бағдарламалар

JOSS-тегідей, CAL берілген бөлімге немесе қадамға тармақтану командасын қолдады, мысалы, немесе , ал ішкі бағдарлама шақырулары үшін, бүкіл бөлімді орындау үшін, немесе сол бір қадамды орындап қайтару үшін қолданылды. Соңғы синтаксис көптеген шағын ішкі бағдарламалар болғанда ыңғайлы болды, себебі оларды байланысты немесе ұқсас түсініксіз бір жолда жүзеге асыруға болады.

Бұрандалар

JOSS-те циклдар да модификатор арқылы басқарылатын, бұл FORTRAN-нан алынған біршама түсініксіз синтаксис болатын; 1-ден 10-ға дейін 2 қадаммен циклді орындайды, сондықтан 1, 3, 5, 7, 9 сандары шығарылады. Сондай-ақ, нақты мәндерді беруге немесе екеуін араластыруға болады. CAL, JOSS синтаксисін жақсартып, және түйін сөздерін енгізді, сондықтан CAL-дағы эквивалентті код мынадай болады. JOSS-те қадамдық мәннің айналасындағы жақшалар екі шекті бөліп тұратындықтан, оны таңдаулы етуге болмайды. Бөлектеу арқасында шектер нақтыланды, ал қадам 1-ге тең деп есептеліп, міндетті емес болды; JOSS-тегідей, нақты мәндер мен диапазонды пайдалануға болады. CAL циклды одан әрі өзгертті, шартты шығуларды қосып, және операторларын пайдаланды. Мысалы, немесе .

Пайдаланушы анықтаған функциялар

JOSS пайдаланушыға функцияны `statement` нұсқаулық арқылы анықтауға мүмкіндік берді. Синтаксис функция қолтаңбасында жергілікті айнымалыларды атауға мүмкіндік берді; Бағдарламалар бұл функцияларды құрылғандай шақыра алды.

CAL `statement`-ты `statement`-қа өзгертті, бұл әлдеқайда түсініктірек, және параметрлерді жақшалардың орнына қынаптармен жіберуге қатысты шағын өзгеріс жасады, сондықтан эквивалентті анықтама былай болады және сол сияқты шақырылады.

CAL функцияларының маңызды өзгерісі – анықтамалардан кіші программаларды шақыру мүмкіндігі болды, мысалы: `statement`. Бұл функциядан алынған есептелген мәнді қайтару мәселесін қалдырды, ол бөлім соңында `statement` нұсқаулығын енгізу арқылы шешілді, мұнда Z – қайтарылатын соңғы мән.

Басқа өзгерістер

CAL JOSS математикалық функцияларын қамтыды, бірақ соған қоса , , , және жаңа функцияларды да қосты. Ол сонымен қатар жаңа операторды – , енгізді, ол екі санды бөлгендегі қалдықты қайтарады.

Тікелей режим

CAL тікелей режимге бірнеше команда мен оларға қатысты операторларды қосты. Олар бағдарламада кездескенде "PAUSED AT STEP 1.1" деген хабарламаны шығарып, тікелей режимге оралады. Бұл BASIC-тегі командаға ұқсас болды. Бұл пайдаланушыға деректерді енгізіп, бағдарламаны орындауды жалғастыруға мүмкіндік берді. Тікелей режимде пайдаланушы бағдарламаның орындалуын бір қадамнан кейін бақылай алатын болды.

1969 жылғы ЖТЖ-ның жақсаруы

1969 жылғы нұсқадағы бір шағын өзгеріс – айнымалыға мән беру командасының алынып тасталуы. Бұл команда JOSS жүйесінде тікелей режимде қосымша болған, бірақ бағдарламалық кодта міндетті болды, ал CAL-дың 1967 жылғы нұсқасы осы қағиданы сақтады. 1969 жылғы нұсқада бұл команда екі жағдайда да қосымша етуге болатын болды.