Кіріспе
Бағдарламаланатын калькуляторлар – сақталған бағдарламаның басқаруымен операциялар тізбесін автоматты түрде орындай алатын калькуляторлар. Көпшілігі Тьюринг толықтығына ие және теориялық тұрғыдан жалпы мақсаттағы компьютерлер саналады. Дегенмен, олардың пайдаланушы интерфейсі мен бағдарламалау ортасы жалпы қолдануға емес, шағын көлемдегі сандық есептеулерді ыңғайлы етуге арналған. Алғашқы бағдарламаланатын калькуляторлар, мысалы, IBM CPC перфокарталарды немесе бағдарламаны сақтау үшін басқа да медиаларды пайдаланды. Қолға ұсталатын электрондық калькуляторлар бағдарламаларды магниттік таспаларда, ауыстырылатын жазудан қорғалған жад картридждерінде, флэш-жадта немесе батареямен қамтамасыз етілген жазу/оқу жадында сақтайды. 1990 жылдардың басынан бері, осы икемді қолға ұсталатын құрылғылардың көпшілігі графикалық калькуляторлар класына жатады. Алайда, арзан нүктелі матрицалық ЖК дисплейлердің жаппай өндірісінен бұрын, бағдарламаланатын калькуляторларда көбінесе біржолды сандық немесе сандық-әріптік дисплей болған. Бағдарламаланатын калькуляторларды өндіретін төрт ірі компания – Casio, Hewlett Packard, Sharp және Texas Instruments. Бұрынғыларының барлығы да қалталық компьютерлерді жасаған, әсіресе Casio және Sharp. Осы типтегі көптеген калькуляторлар монохромды ЖК дисплейлі, ал кейбіреулері төрт түсті (қызыл немесе апельсин, жасыл, көк және қара) немесе 2022 жылғы қаңтардағы кейбір жоғары деңгейлі модельдердегідей 16 немесе 32 биттік графиканы көрсететін мониторларға ұқсас түсті болады. Олар функцияларды графиктеу үшін қолданылатындықтан, осы құрылғылардың экраны пикселдер бойынша адрестелеуге мүмкіндік береді. Кейбіреулері сенсорлық экранға, дыбыс шығару құрылғыларына, кіріктірілген сағаттарға, модемдерге немесе IrDA трансиверлері сияқты басқа да қосылу құрылғыларына, принтерлер сияқты сыртқы құрылғыларға арналған порттардың әртүрлі түрлеріне және түрлі жад карталарына арналған порттарға ие. Персоналдық компьютерлердің, соның ішінде ноутбуктердің, смартфондардың және планшеттердің кең қолжетімділігі мен төмен бағасы бағдарламаланатын калькуляторларды көптеген қолданулар үшін ескірген етті. Алайда, олар орта және жоғары білім беруде танымал күйін сақтап қалды. Көптеген математика курстарында нақты калькулятор модельдерін пайдалану талап етіледі. Білім беруде оларды қолдануды жалғастырудың себебі – қолжетімді қатаң бақыланатын функционалдық мүмкіндіктер. Мысалы, калькуляторлар әдетте тікелей интернетке қол жеткізе алмайды, сондықтан емтихан кезінде заңсыз көмек ретінде пайдалануға болмайды. Қалған бағдарламаланатын калькулятор өндірушілері осы калькуляторларды жоғары мектеп математикасында қолдануды ынталандыруға көп күш жұмсап жатыр.
Калькуляторды бағдарламалау
Бағдарламаланатын калькуляторлар пайдаланушыға күрделі мәселелерді шешу немесе күрделі процедураны автоматтандыру үшін калькуляторда бағдарламаларды жазуға және сақтауға мүмкіндік береді. Бағдарламалау мүмкіндігі көбінесе (бірақ тек қана емес) графикалық калькуляторларда кездеседі, себебі үлкен экран бастапқы кодтың бірнеше жолын бір мезгілде қарауға мүмкіндік береді (яғни келесі/алдыңғы дисплей жолына жылжудың қажеті жоқ). Алғашқыда калькуляторды бағдарламалау калькулятордың өзіндік командалық тілінде жасалуы керек еді, бірақ калькулятор хакерлері калькуляторлардың негізгі интерфейсін айналып өтудің және ассемблерлік тілде бағдарламалар жазудың жолдарын тапқанда, калькулятор компаниялары (әсіресе Texas Instruments) калькулятор аппараттарында жергілікті режимде бағдарламалауды қолдауды бастады, бірінші кезекте мұндай кодты іске қосуға мүмкіндік беретін байланыстарды ашты, содан кейін пайдаланушы интерфейсінен тікелей осындай бағдарламаларды басқаруға арналған құралдарды енгізді. Калькуляторларға арналған көптеген бағдарламаларды интернеттен табуға болады. Пайдаланушылар бағдарламаларды дербес компьютерге жүктеп алып, содан кейін оларды арнайы байланыс кабелі, инфрақызыл сымсыз байланыс немесе жад картасы арқылы калькуляторға жүктей алады. Кейде бұл бағдарламаларды компьютердегі эмуляторлар арқылы да іске қосуға болады. Бұл машиналарды бағдарламалау машинада, дербес компьютерде бастапқы код ретінде жүктеу арқылы, немесе Flash және кейбір C/C++ нұсқаларындағыдай дербес компьютерде компиляцияланып жүктеу арқылы жүзеге асырылуы мүмкін. Компьютерлік жағындағы tigcc, hpgcc және басқалар сияқты тілдік пакеттерден басқа, TI, HP, Casio және Sharp калькуляторлары үшін қолжетімді дербес компьютерлік байланыс бағдарламалық жасақтамасында бағдарлама редакторлары бар; сондай-ақ SDK, эмуляторлар және компьютерлік жағында қолдануға арналған басқа да құралдар, сондай-ақ басқа өндірушілер мен үшінші тарап құралдары, мысалы TI++ редакторы бар. Бағдарламалар, деректер және т.б. ұқсас машиналар арасында дербес компьютерге қосылу үшін пайдаланылатын калькулятордың бірдей порттары арқылы алмасуға болады. Жергілікті емес тілдік нұсқаларды қолданатын бағдарламалау құралдарына fx сериялы Casio калькуляторлары үшін On Board C Compiler және TI 83 BBC Basic порты жатады. Жоғарыда айтылғандардың нәтижесінде машиналарды бағдарламалау үшін қосымша тілдер үшін интерпретаторлар, компиляторлар және аудармашылар бағдарламаларын жазу мүмкіндігі туындайды; BBC Basic TI 83 және 84 серияларына көшірілді, ал көптеген талқыланған басқа да бағдарламалау құралдары мен тілдері: Fortran, awk, Pascal, Rexx, Perl, Common Lisp, Python, tcl және әртүрлі Unix қабықшалары. Калькуляторларға арналған кең таралған бағдарламалар математика/ғылымға байланысты мәселелерді шешетін құралдардан бастап бейне ойындарға дейін, сондай-ақ демо деп аталатын түрлі бағдарламаларды қамтиды. Бұл кодтың көп бөлігі пайдаланушылар жасаған тегін немесе тіпті ашық бастапқы кодты құрайды, бірақ білім беру және ғылым/инженерлік нарықтары үшін коммерциялық бағдарламалық қамтамасыз ету де қолжетімді. Бағдарламаланатын калькуляторлар туралы ақпарат, құжаттама, хабарлама тақталары, жүктеуге арналған құралдар және осы мақсатқа пайдалы басқа да нәрселер бар негізгі веб-сайттарға ие; әрбір өндірушінің калькуляторлары үшін негізгі сайттарды компаниялардың өздері, әртүрлі деңгейде ынтымақтастықпен үшінші тараптар басқарады: атап айтқанда HPCalc.org, TICalc.org және CasioCalc.org, (qqv.) SharpCalc.org доменін жақында ұйым сатып алып, басқа үш сайтқа ұқсас сайтты жасау ниетін және Sharp ұялы компьютерлері туралы ақпарат беруді білдірді. Компаниялардың өзі де машиналар үшін ақпарат пен құралдар бар TIEducation.com сияқты сайттарға ие.
Пернелерді басып бағдарламалау
Алғашқы кезде көптеген бағдарламаланатын калькуляторлар өте қарапайым бағдарламалау тілін қолданды, көбінесе нақты перне сарқылымдарын жазуға немесе пернелер біріктірілген жағдайда байт-кодты пайдалануға негізделген. Егер калькуляторлар шартты операторларды және жадқа тура емес (жанама) сілтеме жасау мүмкіндігін қолдайтын болса, онда олар Тьюринг толық деп есептелді. Тьюринг толық калькуляторлардың айқын мысалдары – Casio FX 602P сериясы, HP 41 және TI 59. Перне сарқылымдарын пайдаланып бағдарламалау әлі де HP 35s және HP 12C сияқты орта деңгейдегі калькуляторларда қолданылуда.
ТАҢДЫРЫЛЫҚ
BASIC – кең таралған бағдарламалау тілі, көбінесе үстел және қалақша компьютерлерге бейімделген. Қазіргі кезде жоғары деңгейлі калькуляторларда ең көп қолданылатын тілдер – Casio (Casio BASIC немесе BasicLike) және TI (TI BASIC) қолданған BASIC стиліндегі диалектілер. Бұл BASIC диалектілері калькуляторда пайдалану үшін оңтайландырылған, BASIC-тің және пернелермен бағдарламалаудың артықшылықтарын біріктіреді. Олардың қалыпты BASIC-пен көп ортақ ештеңесі жоқ. Ti 89 және одан кейінгі нұсқалары стандартты Basic-тегі толыққанды жолдар мен символдарды өңдеу функциялары мен операторларын қамтиды. TI 83 калькуляторлар отбасысына BBC Basic-тің толық көшірмесі енді қолжетімді. Ол компьютермен кабель немесе IrDA қосылысы арқылы орнатылады.
RPL
RPL — Hewlett Packard компаниясының жоғары деңгейдегі құрылғыларында қолданылатын ерекше Forth сияқты бағдарламалау тілі. RPL калькуляторы бар алғашқы құрылғы 1987 жылы шыққан HP 28C болды. PPL тілі HP Prime калькуляторымен бірге ұсынылды және Pascal тіліне өте ұқсас.
Құрастыру
TI 89 және оған ұқсас калькуляторларға енгізілген құрастырушы (assembler) 2014 жылы жарияланып, шығарылды. Алғашқы калькулятор модельдерінде машина тілінде бағдарламалау көбінесе ұсынылмады; алайда, арнайы платформа хакерлері кейбір модельдердегі енгізілген интерпретаторларды айналып өтудің және калькуляторды тікелей ассемблер тілінде бағдарламалаудың жолдарын тапты. Бұл әдіс TI 85-те алғаш рет режим ауыстыру пернесіндегі бағдарламалық қателіктерді пайдалану арқылы қолданылды. TI 83 шыққан кезде TI және HP үй жағдайында бағдарламалаушылардың қолдауға деген қажеттілігін түсініп, болашақ әзірлеушілерге арналған ассемблерлік кітапханалар мен құжаттаманы қолжетімді ете бастады. Бағдарламалық жасақтама, әсіресе ойындар, енді Game Boy-дағыдай жылдам және графикалық бола берді. TI, әсіресе, кейіннен ассемблерлік бағдарламалауды TI 83 Plus және TI 89 сияқты болашақ калькуляторларға пакеттік қолданбаларға қолдау ретінде ресмилендірді. HP өз HP 50g калькуляторында ассемблерлік бағдарламалауға біршама ішкі қолдау қосты, ол сол кездегі ең жаңа модель болды. Калькулятордағы ассемблер сияқты бағдарламалауға мүмкіндік беретін бағдарламалар мен құралдар жиынтығы (көбінесе Intel 80x86, тіпті калькулятордағы нақты процессор Zilog немесе Motorola чипі сияқты мүлдем басқа болса да) кем дегенде екі нұсқада бета-тестілеуде. Негізгі Basic нұсқасын пайдаланушы анықтаған функциялар мен процедуралармен, сондай-ақ компьютерде жасалған және калькуляторға жүктелген ассемблер және C модульдерімен толықтыруға болады, бұл "жалған ассемблер" бағдарламаларын Basic бағдарламалары сияқты жазуға және іске қосуға мүмкіндік береді. Rexx, awk, Perl және кейбір Unix қабықшалары сияқты басқа тілдер де осы типтегі көптеген калькуляторларда осылай іске асырылуы мүмкін.
Басқа тілдер
GCC әзірлеу жиынтығы Casio, HP және TI калькуляторларының бірнеше модельдері үшін қолжетімді, яғни C, C++, Fortran 77 және тікелей құрастыру тілін пайдаланып компьютерде бағдарлама жасап, оны калькуляторға жүктеуге болады. Үшінші тараптар жасап жатқан жобаларға бортондағы және/немесе компьютерлік конвертерлер, интерпретаторлар, кодты генерациялайтын бағдарламалар, макро-ассемблерлер немесе Fortran, басқа Basic түрлері, awk, C, Cobol, Rexx, Perl, Python, Tcl, Pascal, Delphi және DOS/Win95 пакеттік өңдеуі, OS/2 пакеттік өңдеуі, WinNT/2000 қабығы, Unix қабықтары және DCL сияқты операциялық жүйе қабықтары кіреді. Көптеген TI, Casio, Sharp және HP модельдерінде Lua интерпретаторлары бар, олар стандартты конфигурацияның бөлігі болып табылады немесе қосымша орнатылуы мүмкін. Кейбір калькуляторлар Fortran 77-нің бір бөлігін Mini Fortran деп атайды; компилятор калькуляторда орналасқандықтан, бағдарламаларды машинаға орнату үшін компьютерге қосылудың қажеті жоқ. Casio fx 9860 сериясы үшін OnCalc C компиляторы енді қолжетімді. Sharp PC G850V қалталық компьютерінде құрастырушы және Basic интерпретаторынан өзге C компиляторы да бар.
Тұрақты есте сақтау
Бағдарламаланатын калькуляторлардың маңызды бір ерекшелігі – деректерді сақтайтын жадтың болуы. Мұндай жад болмаса, қуат жоғалған сайын бағдарламаларды қайтадан енгізуге тура келеді, бұл құрылғыны қолдануды қиындатады. Деректерді сақтайтын жад калькулятордың ішінде немесе жеке құрылғыда орналасуы мүмкін. Кейбір бағдарламаланатын калькуляторлар екі түрлі нұсқаны да қолданады.
Магниттік картаны оқу / жазу құрылғысы
Магниттік карта оқу құрылғылары тұрақты жадтың алғашқы нұсқаларының бірі болды. Енгізілген бағдарламалар магниттік жолақтарда сақталады. Оларды тасымалдау оңай еді, ал оқу-жазу құрылғысы ықшам болды. Дегенмен, оқу-жазу құрылғысының өзі де, магниттік жолақтар да қымбатқа түсті. Магниттік жолақтарды пайдаланған соңғы және ең әйгілі құрылғылар HP 41C және TI 59 болды.
Тұрақты жады
Тұрақты жад калькуляторды өшірген кезде сақталған мәліметін жоғалтпайды. Тұрақты жад болғандықтан, пайдаланушы мысалы, енгізілген бағдарламаларды жоғалтпай батареяларын ауыстыра алады.
Касеталық таспа
Магниттік карталарға қарапайым, арзан кассеталар балама ретінде ұсынылды. Әдетте, калькуляторды қарапайым кассета жазғышқа қосу үшін Casio FA 1 сияқты интерфейс модулі қолданылды, ал сандық деректер жиіліктік модуляцияланған аудио сигналдар түрінде кодталды. Sharp және Hewlett Packard компаниялары да калькуляторға тікелей қосылатын арнайы микро немесе мини кассета жазғыштарды сатты. Бұл жүйелер ыңғайлырақ және сенімдірек болғанымен, олар сонымен қатар қымбатқа түсті.
Жартылай үздіксіз жады
Жад сұранысының өсуімен нақты үздіксіз жад жасау қиындады, сондықтан бағдарламашылар басқа жолдар іздеді. Жартылай үздіксіз жадта мазмұн тек белгілі бір батареяны ауыстыру ережелері сақталғанда ғана сақталады. Ең көп тараған ережелер:
Арнайы қосымша батарея негізгі батареялар ауыстырылғанда жадтың жоғалмауын қамтамасыз етеді. Батареяны алып тастау және жаңасын орнату салыстырмалы түрде жылдам жасалуы керек. Мысалы, HP 35s моделінде батареяны алып тастағаннан кейін 2 минуттан кем уақыт ішінде ауыстыру керек еді. Кем дегенде екі негізгі батарея қолданылды және оларды бір уақытта тек біреуін ғана ауыстыруға болады.
Компьютерлік қосылым
Бағдарламалар мен деректер жеке компьютерге сақтау үшін жіберіледі. Ауыстыру келесі байланыс әдістерімен (пайда болуының хронологиялық ретімен) RS 232, IrDA және USB арқылы жүзеге асырылады. Бұл әдістің артықшылығы – өте төмен құн және әдетте кассеталық интерфейстен жылдамдығы. Бұл артықшылықтар жеке компьютердің қажеттілігімен өтемеленеді. Компьютерге қосылудың ерте мысалы – Casio FX 603P, Casio FA 6 интерфейсімен бірге. Осындай жағдайда, бағдарлама мен деректерді стандартты мәтін редакторында сақтау және өңдеу үшін, деректер қарапайым мәтін түрінде жіберілді.
Бағдарламаланатын калькуляторлар мен қалталық компьютерлер
1980-ші жылдар мен 1990-шы жылдардың басында бағдарламаланатын калькуляторлар мен қалталық компьютерлер бәсекелестікке түсті, ал жоғары деңгейдегі калькуляторлардың көптеген ұқсастықтары болды. Мысалы, екі құрылғының да түрі құрылымдалмаған BASIC тілінде бағдарламаланатын және көбінесе QWERTY пернетақталарымен жабдықталған. Дегенмен, айырмашылықтар да болды: BASIC бағдарламаланатын калькуляторларда көбінесе қосымша "калькулятор сияқты" пернетақта және жүйенің ғылыми калькулятор ретінде жұмыс істейтін арнайы калькулятор режимі болды. Ал қалталық компьютерлер көбінесе қосымша бағдарламалау тілдерін ұсынды. Мысалы, Casio PB 2000 ANSI C, BASIC, Assembler және Lisp тілдерін қолдады. Көптеген компаниялар өнімдерінің құрамында екі құрылғы түрін де ұсынды. Мысалы, Casio кейбір BASIC бағдарламаланатын калькуляторларын "fx" калькуляторлар сериясы (мұндағы "FX" әріптері үлкенмен жазылған) ретінде, ал қалталық компьютерлерін "pb" сериясы ретінде сатты. Sharp болса, BASIC бағдарламаланатын барлық құрылғыларын қалталық компьютерлер ретінде сатты.
BASIC programmable calculators often featured an additional "calculator like" keyboard and a special calculator mode in which the system behaved like a scientific calculator. Pocket computers often offered additional programming languages as option. The Casio PB 2000 for example offered ANSI C, BASIC, Assembler and Lisp. Companies often had both device types in their product portfolio. Casio, for example, sold some BASIC programmable calculators as part of their "fx " calculator series (the "FX" was printed in uppercase) and pocket computer the dedicated "pb " series while Sharp marketed all BASIC programmable devices as pocket computers.
Қатынасты құралдар
Кейбір бағдарламаланатын калькуляторларда деректерді, бағдарламаларды және бағдарламалық қамтамасыз етуді алмасу үшін компьютермен (ПК) байланыс орнатудың бір немесе бірнеше әдісі бар. Бұл әдістерге IrDA, басқа сымсыз технологиялар, сериялық порттар (USB немесе RS 232 қоса алғанда), 1,25 дюймдік немесе басқа өлшемді аудиоштекерлер және т.б. жатады. Кейбір соңғы бағдарламаланатын калькуляторларда қосымша байланыс арнасы ретінде ұялы телефон модемдері орнатылған. Бағдарламаланатын калькуляторлар осы байланыстар арқылы көптеген жағдайларда термометрлер, pH-метрлер, ауа райының түрлі аспаптары, жарық өлшегіштер, аудио зерттеу құралдары мен микрофондар, динамиометрлер, қысым өлшегіштер, вольтметрлер, амперметрлер, омметрлер, атмосфералық электр энергиясын өлшейтін құралдар, иондық санағыштар, Гейгер есептегіштері мен сцинтилляторлар, биіктік өлшегіштер, таразылар, акселерометрлер және басқа да көптеген перифериялық құрылғылармен дерек жинағыштар мен интерфейстер арқылы пайдаланылуы мүмкін. Кейбір модельдер осциллографтармен және олардың қосымша құрылғыларымен де жұмыс істей алады. Ал кейбіреулерін, мысалы, биологиялық кері байланыс деректерін жинау үшін пульс, қан қысымы, қандағы оттегінің мөлшері, терінің электр кедергісі, дене температурасы, тіпті ЭКГ және ЭЭГ зерттеу құралдарын дерек жинағышқа қосу арқылы конфигурациялауға болады. Содан кейін дерек жинағыш калькуляторға, ал кейін немесе одан кейін компьютерге қосылады. HP калькуляторлары және басқалары IrDA интерфейсімен жабдықталған, ол оларды калькуляторларға арналған арнайы принтерлермен, HP лазерлік принтерлерінің негізгі қатарымен, компьютерлермен, басқа калькуляторлармен және басқа құрылғылармен байланысуға мүмкіндік береді. Көптеген компаниялар калькуляторларға арналған шағын принтерлерді де ұсынады, олар кассалық лента қағазын, калькуляторларды компьютерге және/немесе басқа калькуляторға қосуға арналған порттар мен кабельдерді, бағдарламаларды және деректерді жазуға арналған кассеталық диктофондарды, проекторлық дисплейлерді және қосымша дисплей құрылғыларына арналған жалғағыштарды қолданады. Ескі бағдарламаланатын калькуляторлар мен жоғарыда аталған қалталық компьютерлерде де теледидарлар мен композиттік мониторларға арналған бейне интерфейстері, 2,5 дюймдік шағын дискеталар, штрих-код оқырмандары және стандартты RS 232 байланысы болған, ол модемдер, сыртқы қатты дискілер және басқа да құрылғыларды қамтамасыз еткен. Қалталық компьютерлерге арналған принтерлердің таңдауы да кеңірек болды, оларға жылудық, механикалық, матрицалық, маргаритка дөңгелегі, төрт түсті қаламды және қарапайым басып шығару калькуляторларында қолданылатын принтерлер кірді. Кейбір калькуляторлар мен қалталық компьютерлерде сыртқы 3,5 және 5,25 дюймдік дискеталар, екі кассеталық диктофонды қосуға арналған кабельдер, принтер және/немесе кассеталық диктофон орнатылған тіреу құрылғылары және т.б. болды. Сондай-ақ, кейбір машиналарды принтер ретінде пайдалану үшін кейбір электрлі теру машиналарын қосуға болады (теру машиналарын осы мақсатта компьютерге де қосуға болады, интерфейс әдетте стандартты RS 232 және/немесе DIN жалғағышы болып табылады), ал кейбір жағдайларда теру машинасының дискеталарын немесе микродискеталарын пайдалануға болады.