HyperTalk: бастапқы бағдарламалау тілі және HyperCard жүйесі
HyperTalk
HyperTalk: 1987 ж. жасалған қарапайым, процедуралық бағдарламалау тілі. Жаңадан бастаушыларға арналған, түсінікті синтаксис, скрипттерді жазуға қолайлы.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Бағдарламалау тілі
Programming language
HyperTalk – 1987 жылы Дэн Уинклер жасаған және Apple Computer компаниясының HyperCard гипермедиа бағдарламасымен бірге Билл Аткинсон қолданған жоғары деңгейдегі процедуралық бағдарламалау тілі. HyperTalk-тың негізгі аудиториясы бағдарламалауды жаңа бастағандар болғандықтан, HyperTalk бағдарламашылары көбінесе «авторлар» деп аталды, ал бағдарлама жазу процесі «скриптинг» деп танылды. HyperTalk скрипттері жазылған ағылшын тіліне ұқсас және Паскаль бағдарламалау тіліне ұқсас логикалық құрылымды қолданды. HyperTalk процедуралық тілдердің негізгі басқару құрылымдарын қолдады: repeat for/while/until, if/then/else, сондай-ақ функция және хабарлама «жөндеуші» шақыруларын (функция жөндеушісі – кіші бағдарлама, ал хабарлама жөндеушісі – процедура). Деректер түрлерін бағдарламашы көрсетуі міндетті емес; түрлендіру желілер мен сандар арасында автоматты түрде жүзеге асты. Дәстүрлі мағынада сыныптар немесе деректер құрылымдары болған жоқ; олардың орнына арнайы жолдар немесе үтірмен бөлінген «элементтердің» «тізімдері» болды (кейінгі нұсқаларда «itemDelimiter» қасиеті кез келген таңбаны таңдауға мүмкіндік берді). Кодты орындау әдетте UI элементіндегі тышқанның басуы сияқты оқиғаға жауап ретінде басталады. 1980 жылдардың соңында Apple компаниясы тілді регистрге сезімтал емес деп қарастырды, бірақ HyperCard 2.0 нұсқасымен бірге уақытша компиляция мүмкіндігі пайда болды.
HyperTalk is a discontinued high level, procedural programming language created in 1987 by Dan Winkler and used in conjunction with Apple Computer's HyperCard hypermedia program by Bill Atkinson. Because the main target audience of HyperTalk was beginning programmers, HyperTalk programmers were usually called "authors" and the process of writing programs was known as "scripting". HyperTalk scripts resembled written English and used a logical structure similar to that of the Pascal programming language. HyperTalk supported the basic control structures of procedural languages: repeat for/while/until, if/then/else, as well as function and message "handler" calls (a function handler was a subroutine and a message handler a procedure). Data types usually did not need to be specified by the programmer; conversion happened transparently in the background between strings and numbers. There were no classes or data structures in the traditional sense; in their place were special string literals, or "lists" of "items" delimited by commas (in later versions the "itemDelimiter" property allowed choosing an arbitrary character). Code execution typically began as a response to an event such as a mouse click on a UI widget. In the late 1980s, Apple considered The case insensitive language was initially interpreted, but gained just in time compilation with HyperCard 2.0.
Нысандар, контейнерлер және скрипттер
HyperCard-тың негізгі пайдаланушы интерфейсі карта болды, ол индекс картасын имитациялайтын дисплей жүйесі. Карталар әдетте ақпаратты сақтау үшін қолданылды, бұл дәстүрлі жазық файлдық деректер базасындағы жазбаға ұқсас. Картаның графикалық макеті компьютерлік тышқанды пайдаланып, мәтіндік өрістер мен батырмалар сияқты әртүрлі элементтерді картаға орналастыру арқылы жасалды. Әр картаның мөлдір бөліктерінің артында фон деп аталатын үлгі карта көрсетілді. Фонға орналастырылған нысандар, мысалы, өрістер мен батырмалар, бірнеше карта арасында ортақ макет ретінде бөліседі, бірақ картаға тән мазмұнмен. Карталар жинағы, фон және оларда сақталған байланысты деректер стек (карталар) деп аталатын бір файлда сақталды. Осы деректерді қамтитын барлық нысандар жиынтығы контейнерлер деп аталады. HyperTalk функциялары немесе сценарийлер (скрипттер) әдетте стектегі көптеген контейнерлердегі сценарий қасиетінде сақталады. Сценарийлер get және set командаларын пайдаланып, инстанция айнымалыларына сәйкес контейнердің қасиеттеріне қол жеткізе алады. Сценарий қасиеті қарапайым мәтінді қамтиды және ерекше қасиеттері жоқ; сценарийлерді кез келген мәтін контейнеріне, тіпті жол (string) айнымалыларына орналастырып, орындай беруге болады немесе басқа стектерден импорттауға болады. Сценарий тіпті экрандағы мәтін өрісіне енгізілген пайдаланушы ұсынған мәтін де болуы мүмкін. Кез келген мәтінді Dynamic SQL сияқты do командасын қолдана отырып орындауға болады.
HyperCard's primary user interface concept was the card, a display system that emulated an index card. Cards were normally used to store information, similar to a record in a conventional flat file database. The graphical layout of the card was created using the mouse by placing various elements on the card, such as text fields and buttons. A master layout "card" known as the background was shown behind the transparent areas of each card. Objects placed on the background, such as fields and buttons, would be shared as a common layout among several cards, but with card specific content. The collection of cards, backgrounds and the associated data stored in them were stored in a single file known as the stack (of cards). Collectively, all of these data containing objects are referred to as containers. HyperTalk functions, or scripts, were normally stored within the script property available in many of the stack's containers. Scripts could access the properties of a container, corresponding to instance variables, using the get and set instructions. The script property held plain text and had no special properties; scripts could be placed in, and run from, any text container, including string variables, or imported from other stacks using the start using command. A script could even be user provided text typed into an on screen text field. Arbitrary text could be executed using the do command, in a manner similar to Dynamic SQL.
HyperCard- ты басқару
Жалпы жылдам қолданбаларды әзірлеу платформаларынан өзгеше, HyperCard стектері әрқашан стектер сияқты көрінетін – мәзір жолағы HyperCard-қа тиесілі болған, бағдарламашыға емес (әдеттегідей, scripting арқылы мәзірлерді қосу, жою және өзгерту мүмкін болған), жалғыз терезе белгілі бір мөлшерде болған (алғашқы нұсқаларында), ал кейбір жағдайларда, операцияның өзегіне жататын командалар HyperTalk-тың өзінде тікелей қолжетімді емес, қолданбаның құрамына кіретін. Мұның жақсы мысалы – HyperTalk тілінен тікелей қолжетімді емес, қолданбаның бөлігі болатын жаңа карталар жасау. Жаңа картаны тек "Жаңа карта" мәзір тармағы арқылы жасауға болады, оны кодта "New Card" мәзірін шақыру арқылы имитациялауға болады. HyperTalk мәзір командаларын шақырғанда, мәзір командалары HyperTalk-тағы өңдеушілерді де шақыратын. "Көшіру" мәзір тармағы таңдалғанда, арнайы кодты орындау үшін стекке `on doMenu itemName` өңдеушісін пайдаланып скрипт орналастырылып, содан кейін `itemName`-нің "Көшіру" екенін тексерілетін. HyperTalk құрамындағы сурет салу құралдарын да қажетті өзгерістерді скрипт арқылы енгізу және тышқанның қозғалысын имитациялау арқылы – бастапқы нүктеден соңғы нүктеге дейін сүйреу және белгілі бір координатада басу командаларын қолдану арқылы басқаруға болатын.
Unlike general rapid application development platforms, HyperCard stacks always looked like stacks the menu bar was HyperCard's and not the programmer's (by default—scripting could add, delete and modify menus), the single window was a fixed size (in early versions), and in certain cases, commands that were central to the operation were part of the application itself, and not directly available in HyperTalk itself. A good example of this was the creation of new cards, which was part of the application, not directly accessible from the HyperTalk language itself. A new card could only be created using the New Card menu item, which could be simulated in code usingdoMenu "New Card". While HyperTalk called into menu commands, menu commands also invoked handlers in HyperTalk. To run custom code when the Copy menu item was selected, one would place a script in the stack using the on doMenu itemName handler, and then examine itemName to see if it was "Copy". HyperTalk also provided script control over the built in drawing tools, simply by scripting the needed changes in paint tools and simulating mouse movements using the drag from start to end and the click at position commands.
HyperTalk- ты кеңейту
HyperTalk тілі HyperCard-тың өзі сияқты тоқырап қалса да, оның қызығушылығы плагин протоколы арқылы қайта жанданды, оны сыртқы командалар (XCMD) және сыртқы функциялар (XFCN) деп атады. Бұл стектерге (Macintosh-қа тән ресурстар ретінде) қосылған, бір кіру нүктесі және қайтару мәні бар түпкі код контейнерлері болды. XCMD және XFCN HyperTalk сценарийлерінен әдеттегі хабарлар мен функцияларды өңдеушілер сияқты шақырылуы мүмкін еді, сонымен қатар HyperCard қолданбасына хабарламалар жіберуге қабілетті болды. Кейбір XCMD авторлары толық түс қолдауын (ColorizeHC, HyperTint, AddColor), бірнеше мақсаттық терезелерді (Prompt, Tabloid, Textoid, Listoid, ShowDialog, MegaWindows), сүйреп тастау мүмкіндігін және түрлі аппараттық интерфейстерді тілге қосты.
Although the HyperTalk language languished just like HyperCard itself, it interest was revived through its plugin protocol, so called External Commands (XCMDs) and External Functions (XFCNs), which were native code containers attached to stacks (as Macintosh specific resources) with a single entry point and return value. XCMDs and XFCNs could be called just like regular message and function handlers from HyperTalk scripts, and were also able to send messages back to the HyperCard application. Some XCMD authors added advanced features like full color support (ColorizeHC, HyperTint, AddColor), multiple special purpose windows (Prompt, Tabloid, Textoid, Listoid, ShowDialog, MegaWindows), drag and drop support and various hardware interfaces to the language.