Кіріспе

Бағдарламалау тілі

HyperTalk – 1987 жылы Дэн Уинклер жасаған және Apple Computer компаниясының HyperCard гипермедиа бағдарламасымен бірге Билл Аткинсон қолданған жоғары деңгейдегі процедуралық бағдарламалау тілі. HyperTalk-тың негізгі аудиториясы бағдарламалауды жаңа бастағандар болғандықтан, HyperTalk бағдарламашылары көбінесе «авторлар» деп аталды, ал бағдарлама жазу процесі «скриптинг» деп танылды. HyperTalk скрипттері жазылған ағылшын тіліне ұқсас және Паскаль бағдарламалау тіліне ұқсас логикалық құрылымды қолданды. HyperTalk процедуралық тілдердің негізгі басқару құрылымдарын қолдады: repeat for/while/until, if/then/else, сондай-ақ функция және хабарлама «жөндеуші» шақыруларын (функция жөндеушісі – кіші бағдарлама, ал хабарлама жөндеушісі – процедура). Деректер түрлерін бағдарламашы көрсетуі міндетті емес; түрлендіру желілер мен сандар арасында автоматты түрде жүзеге асты. Дәстүрлі мағынада сыныптар немесе деректер құрылымдары болған жоқ; олардың орнына арнайы жолдар немесе үтірмен бөлінген «элементтердің» «тізімдері» болды (кейінгі нұсқаларда «itemDelimiter» қасиеті кез келген таңбаны таңдауға мүмкіндік берді). Кодты орындау әдетте UI элементіндегі тышқанның басуы сияқты оқиғаға жауап ретінде басталады. 1980 жылдардың соңында Apple компаниясы тілді регистрге сезімтал емес деп қарастырды, бірақ HyperCard 2.0 нұсқасымен бірге уақытша компиляция мүмкіндігі пайда болды.

Нысандар, контейнерлер және скрипттер

HyperCard-тың негізгі пайдаланушы интерфейсі карта болды, ол индекс картасын имитациялайтын дисплей жүйесі. Карталар әдетте ақпаратты сақтау үшін қолданылды, бұл дәстүрлі жазық файлдық деректер базасындағы жазбаға ұқсас. Картаның графикалық макеті компьютерлік тышқанды пайдаланып, мәтіндік өрістер мен батырмалар сияқты әртүрлі элементтерді картаға орналастыру арқылы жасалды. Әр картаның мөлдір бөліктерінің артында фон деп аталатын үлгі карта көрсетілді. Фонға орналастырылған нысандар, мысалы, өрістер мен батырмалар, бірнеше карта арасында ортақ макет ретінде бөліседі, бірақ картаға тән мазмұнмен. Карталар жинағы, фон және оларда сақталған байланысты деректер стек (карталар) деп аталатын бір файлда сақталды. Осы деректерді қамтитын барлық нысандар жиынтығы контейнерлер деп аталады. HyperTalk функциялары немесе сценарийлер (скрипттер) әдетте стектегі көптеген контейнерлердегі сценарий қасиетінде сақталады. Сценарийлер get және set командаларын пайдаланып, инстанция айнымалыларына сәйкес контейнердің қасиеттеріне қол жеткізе алады. Сценарий қасиеті қарапайым мәтінді қамтиды және ерекше қасиеттері жоқ; сценарийлерді кез келген мәтін контейнеріне, тіпті жол (string) айнымалыларына орналастырып, орындай беруге болады немесе басқа стектерден импорттауға болады. Сценарий тіпті экрандағы мәтін өрісіне енгізілген пайдаланушы ұсынған мәтін де болуы мүмкін. Кез келген мәтінді Dynamic SQL сияқты do командасын қолдана отырып орындауға болады.

HyperCard- ты басқару

Жалпы жылдам қолданбаларды әзірлеу платформаларынан өзгеше, HyperCard стектері әрқашан стектер сияқты көрінетін – мәзір жолағы HyperCard-қа тиесілі болған, бағдарламашыға емес (әдеттегідей, scripting арқылы мәзірлерді қосу, жою және өзгерту мүмкін болған), жалғыз терезе белгілі бір мөлшерде болған (алғашқы нұсқаларында), ал кейбір жағдайларда, операцияның өзегіне жататын командалар HyperTalk-тың өзінде тікелей қолжетімді емес, қолданбаның құрамына кіретін. Мұның жақсы мысалы – HyperTalk тілінен тікелей қолжетімді емес, қолданбаның бөлігі болатын жаңа карталар жасау. Жаңа картаны тек "Жаңа карта" мәзір тармағы арқылы жасауға болады, оны кодта "New Card" мәзірін шақыру арқылы имитациялауға болады. HyperTalk мәзір командаларын шақырғанда, мәзір командалары HyperTalk-тағы өңдеушілерді де шақыратын. "Көшіру" мәзір тармағы таңдалғанда, арнайы кодты орындау үшін стекке `on doMenu itemName` өңдеушісін пайдаланып скрипт орналастырылып, содан кейін `itemName`-нің "Көшіру" екенін тексерілетін. HyperTalk құрамындағы сурет салу құралдарын да қажетті өзгерістерді скрипт арқылы енгізу және тышқанның қозғалысын имитациялау арқылы – бастапқы нүктеден соңғы нүктеге дейін сүйреу және белгілі бір координатада басу командаларын қолдану арқылы басқаруға болатын.

HyperTalk- ты кеңейту

HyperTalk тілі HyperCard-тың өзі сияқты тоқырап қалса да, оның қызығушылығы плагин протоколы арқылы қайта жанданды, оны сыртқы командалар (XCMD) және сыртқы функциялар (XFCN) деп атады. Бұл стектерге (Macintosh-қа тән ресурстар ретінде) қосылған, бір кіру нүктесі және қайтару мәні бар түпкі код контейнерлері болды. XCMD және XFCN HyperTalk сценарийлерінен әдеттегі хабарлар мен функцияларды өңдеушілер сияқты шақырылуы мүмкін еді, сонымен қатар HyperCard қолданбасына хабарламалар жіберуге қабілетті болды. Кейбір XCMD авторлары толық түс қолдауын (ColorizeHC, HyperTint, AddColor), бірнеше мақсаттық терезелерді (Prompt, Tabloid, Textoid, Listoid, ShowDialog, MegaWindows), сүйреп тастау мүмкіндігін және түрлі аппараттық интерфейстерді тілге қосты.