Кіріспе
Компьютерлік бағдарламалау тілінің интерпретаторы
HP компаниясында жасалған BASIC тілінің басқа нұсқалары
other BASIC dialects created at HP
HP Time Shared BASIC (HP TSB) – Hewlett Packard компаниясының HP 2000 желісіндегі мини-компьютерлерге негіделген уақытты бөлісу компьютерлік жүйелері үшін BASIC бағдарламалау тілінің интерпретаторы. TSB Star Trek ойынының алғашқы, көпшілікке таралған нұсқаларын жариялаған платформа ретінде тарихи маңызға ие. Жүйе BASIC тілінің бір диалектін, сондай-ақ бірнеше пайдаланушының бір уақытта жүйеге қол жеткізуіне мүмкіндік беретін қарапайым пайдаланушы тіркелгісі мен бағдарламалар кітапханасын іске асырады. Бұл жүйелер 1970-жылдардың басында және ортасында маңызды рөл атқарды және көптеген бағдарламалар жасалды. HP бағдарламалардың дерекқорын жүргізді, ал клиенттер оларды перфокартада (тесілген лентада) шамалы ақы төлеп тапсырыс бере алатын. 1970-жылдардағы BASIC тілінің көптеген нұсқалары өз тарихын 1960-жылдардағы түпнұсқа Dartmouth BASIC-ке байланыстырады, бірақ Dartmouth-тың алғашқы нұсқалары жолдармен жұмыс істейтін айнымалыларды немесе жолдарды өңдеу мүмкіндіктерін қамтамады. Өндірушілер өз шешімдерін қосты; HP Fortran және басқа тілдердегідей, массивтің бөліктерін қолдануға ұқсас жүйе қолданды, ал DEC кейіннен MID/LEFT/RIGHT функцияларын енгізді. 1970-жылдардың ортасында микрокомпьютерлер нарыққа енген кезде, DEC немесе HP синтаксисіне негізделген көптеген жаңа BASIC тілдері пайда болды. Altair BASIC, Microsoft BASIC-тің бастапқы нұсқасы, DEC-тің BASIC PLUS тіліне сәйкес жасалды. Басқалары, соның ішінде Apple Integer BASIC, Atari BASIC және North Star BASIC HP стиліне ұқсас болды. Бұл жағдайларда жолдармен жұмыс істеу қажет болғанда, платформалар арасындағы аударма жасау қиындықтар тудырды.
Номенклатура
Бағдарламалық жасақтама сонымен қатар нұсқалық атауымен де белгілі болды, ол жұмыс істеген аппараттық нұсқаға байланысты болды, мысалы HP 2000C Time Shared BASIC. Операциялық жүйе әртүрлі нұсқаларда шықты – 2000A, 2000B, 2000C, High Speed 2000C, 2000E және 2000F. HP кейбір жарияланымдарда осы тілді "Access BASIC" деп атады. Бұл, оны іске асыратын машиналардың "2000/Access" деп аталатын атауымен сәйкес келді, және бұл термин платформа алғашқыда қолданысқа енгізілгенде қысқа мерзімге ғана қолданылған сияқты.
Платформаның егжей-тегжейі
2000А және 2000Е жүйелерін қоспағанда, жүйе екі процессорлы архитектураны қолданады. Жүйе кодын және барлық пайдаланушы кодын орындау үшін бір толық конфигурацияланған HP 2100 сериялы процессор пайдаланылады, ал екінші, кішірек HP 2100 сериялы процессор уақытты бөлісе отырып қолданылатын пайдаланушылар қосылған RS 232 тізбектік байланыс желілерін басқару үшін қолданылады. Аппараттық конфигурацияға байланысты жүйе бір мезгілде 16 немесе 32 қашықтан пайдаланушыны қолдайды. TSB жүйесі үшін әдеттегі терминал Teletype Model 33 ASR болды және тікелей I/O процессорына немесе модем немесе акустикалық байланыс құрылғысы арқылы қосылды. Акаунттардың атаулары бір әріптен және үш саннан тұрады, мысалы, B001. Артықшылықты акаунттар "А" әрпімен басталады және қосымша командалар мен бағдарламаларды сақтау мүмкіндігіне ие. Басқарушы акаунт – A000. Бұл схема 26 000 пайдаланушы акаунтына дейін мүмкіндік береді. Орындалу кезінде пайдаланушы бағдарламалары тұрақты басты дискіге ауыстырылады – физикалық тұрғыдан дискі, бірақ магниттік барабан сияқты жұмыс істейді. Орындалмаған кезде пайдаланушы бағдарламалары жылдамдырылатын бас картриджінде немесе жинақталған дискіде сақталады. Артықшылықты пайдаланушылар бағдарламаларды әлдеқайда жылдам барабанға сақтай алады. Қатты дискінің резервтік көшірмесі магниттік лентаға жасалды. Бағдарламалар мен файлдардың атаулары алтыға дейін әріптерден (A-Z) және сандардан (0-9) тұрады. Бағдарламалар SAVE командасын пайдаланып токенизацияланған форматта сақталады. Оларды CSAVE командасын пайдаланып жартылай компиляцияланған форматта сақтауға болады, бұл оларды жылдам іске қосуға мүмкіндік береді. Жүйе кең таралған телепринтерлерді пайдаланумен тығыз байланысты болғандықтан, файлдардағы жол соңы көлікті қайтару символынан (ASCII CR, 0D он алтылық) және жол беру символынан (ASCII LF, 0A он алтылық) тұрады.
Жіптерді басқару
TSB-дегі тізбектер бірнеше таңбадан тұратын бір объект ретінде емес, таңбалар массиві ретінде қарастырылады. Дәстүрлі түрде, олар жадта бір таңбаға орын бөледі, ал егер ұзынырақ тізбек қажет болса, оны пайдалану алдында анықтау керек. Мысалы, DIM A$[10] командасы ең көп дегенде 10 таңбадан тұратын тізбекті орнатады. TSB-де тізбектің максималды ұзындығы 255 таңбаны құрайды. Тізбектер ішіндегі кіші тізбектерге "қиып алу" әдісі арқылы қол жеткізіледі: A$(L,R) немесе A$[L,R], мұнда кіші тізбек L индексімен көрсетілген сол жақ таңбадан басталып, R индексімен көрсетілген оң жақ таңбаға дейін созылады, немесе A$[L] түрінде, онда кіші тізбек L индексімен көрсетілген сол жақ таңбадан басталып, тізбектің соңына дейін жалғасады. TSB-де дөңгелек жақшалар () және тік жақшалар [] бір-бірін алмастырады. Массивтер мен кіші тізбектер индекстері 1-ден басталады. Бұл DEC үлгісін ұстанған BASIC-ке қарама-қайшы келеді, олар кіші тізбектерге қол жеткізу үшін LEFT$, MID$ және RIGHT$ сияқты функцияларды қолданады, бірақ ANSI BASIC Hewlett Packard ұсынғанға ұқсас кіші тізбектерді пайдалану синтаксисін сақтайды. HP синтаксисі LET немесе INPUT операторларының оң жағында да қолданылуы мүмкін, мысалы, 100 A$[3,5]="XYZ" немесе 120 B$[3]="CHANGE ALL BUT FIRST TWO CHARS", мұны LEFT/MID/RIGHT функцияларының бастапқы нұсқаларында жасауға болмайды. Осы стильдегі тізбектерге қол жеткізудің басты артықшылығы – тізбек ұзындығы өзгерген кезде қажет болатын күрделі жадты басқару қажеттілігін жою. MS BASIC-те жадты ықшамдау үшін, жүйе жадтан таусылған кезде тізбектер жинағындағы бос орындарды жоюға арналған кең кітапхана болды. Ол сондай-ақ өте баяу болды және өнімділікті жақсарту немесе қателерді түзету үшін өмір бойы бірнеше рет өзгертілді. TSB стилінің кемшілігі – тізбек ішіндегі мәліметтер бос болса да, DIM арқылы бөлінген жадының толық көлемін алады, ал конкатенация сияқты қарапайым операциялар тізбек көлемі жеткіліксіз болса, асып кетуі мүмкін. Dartmouth BASIC-тің кейінгі нұсқалары BASIC PLUS және MS BASIC-тегідей тізбек айнымалыларын қамтыды. Алайда, бұл нұсқада тізбектерді өңдеу үшін LEFT/MID/RIGHT функциялары қолданылмады, оның орнына тізбекті эквивалентті ASCII мәндеріне және кері түрлендіретін CHANGE командасы қолданылды. HP да сол функционалдықты ұсынды, тек атауын CONVERT деп өзгертті. Сонымен қатар, сандық тұрақтыны ASCII таңбасына түрлендіру үшін бір ғана тырнақшаны қолдануға болады, бұл тізбекті бөліктерден құрауға мүмкіндік береді; A$='23 '64 '49 "DEF" командасы CHR$ функциясын пайдаланбастан "ABCDEF" тізбегін жасады.