Кіріспе

Apple Newton платформасы үшін прототиптік бағдарламалау тілі. NewtonScript – Newton платформасы үшін бағдарламалар жазуға арналған прототиптік бағдарламалау тілі. Ол Self бағдарламалау тілінен күшті әсер алған, бірақ мобильді және кіріктірілген құрылғылардың қажеттіліктеріне орай өзгертілген.

Тарих

1993 жылғы 3 тамызда Apple компаниясы Apple Newton MessagePad құрылғысын таныстырды. Құрылғыда 640 КБ жедел жад, 4 МБ тұрақты жад және 20 МГц ARM 610 микропроцессоры болды. Newton жобасының басты мақсаты – компьютерді алмастыра алатын, сонымен бірге тасымалдауға ыңғайлы құрылғы жасау еді. Батарея мен жадтың шектеулі болуына байланысты, әзірлеушілер осы қиындықтарды жеңе алатын бағдарламалау тілін іздеді. Олар C++ бағдарламалау тілін қарастырды, бірақ оның икемділігі жеткіліксіз екенін түсінді. Олар прототиптік тілдерге көшті және Smalltalk пен Self тілдеріне әсерленді. Сонымен қатар, Apple компаниясы Newton платформасы үшін үміткер болатын Dylan атты тағы бір динамикалық бағдарламалау тілін әзірледі. Алайда, Self және Dylan екеуі де дұрыс интеграция үшін тым жаңа болғандықтан қарастырылмай қалды. Оның орнына Уолтер Р. Смит басқарылған команда NewtonScript деп аталатын жаңа тілді жасады. Оған Smalltalk сияқты динамикалық тілдер мен Self сияқты прототиптік үлгілер әсер етті. Көрсеткіш интерфейсі әдетте екі бөліктен тұрады: біреуі объектілер үшін, екіншісі – көрсеткіш интерфейсінің орналасуы үшін, ол әдетте көрсеткіш интерфейсі иерархиясының бір бөлігіне (мысалы, View) слот қосу арқылы басқарылады. Синтаксис те Self тілінің көрсеткіш ортасын бағдарламалау үшін кеңінен пайдалануына қарамастан, мәтіндік бағдарламалау стиліне мүмкіндік беру үшін өзгертілді. Бұл Newton бағдарламаларын Toolkit іске қосылатын компьютерде жасауға мүмкіндік берді, онда бағдарламалар компиляцияланып, содан кейін Newton құрылғысына жүктеліп, іске қосылатын еді. NewtonScript прототипіне негізделген мұрагерліктің бір артықшылығы – жадты үнемдеу, бұл 128 КБ Newton үшін маңызды мәселе еді. Көрсеткіш интерфейсі объектісінің прототипі тікелей тұрақты жадта сақталуы мүмкін болғандықтан, әдепкі деректерді немесе функцияларды жедел жадқа көшірудің қажеті болмады. Сыныпқа негізделген тілдерден айырмашылығы, объектіні құру оның барлық атрибуттарына жадты бөлуді талап етеді, NewtonScript прототиптік мұрагерлікті пайдалану арқылы жаңа объектіні құрудың орнына прото және ата-ана сияқты бірнеше өрістерге ғана жадты бөлуге мүмкіндік берді. Мұнда прото және ата-ана нысанның прототиптік немесе ата-аналық мұрагерлікті қолданатынын көрсетеді. Мысал келтірейік, әзірлеуші жаңа түйме мысалын жасауы мүмкін. Егер түйме әдепкі қаріпті қолданса, оның «слотына» (яғни қасиетіне немесе мүшелік айнымалысына) кіргенде тұрақты жадта сақталған мән қайтарылады; жедел жадтағы түйме мысалының өз қаріп слотында мәні болмайды, сондықтан мән табылғанша прототиптік мұрагерлік тізбегі орындалады. Егер әзірлеуші түйме қаріпін өзгертсе, оның қаріп слотын жаңа мәнге орнату прототипті жаңартады; бұл жаңа мән жедел жадта сақталады. NewtonScript-тің «дифференциалдық мұрагерлігі» Newton құрылғысының қымбат флэш-жадын тиімді пайдаланды, өйткені әдепкі деректер мен кодтың көп бөлігі PDA-ның арзан және үлкен тұрақты жадында сақталды.

Маңызды терминдер

Көріністер: Бұл Newton View System жүйесімен құрылған, көріністерді көрсету үшін жұмыс істейтін кезде жасалатын нысандар. Үлгі: Көріністер жасалатын схема. Протостар: Олар үлгінің немесе көріністің негізі болуы мүмкін және NewtonScript код кітапханаларының элементтері. Фрейм және слот: Фрейм – слоттардың динамикалық жиынтығы, ал фреймнің әрбір элементі слот деп аталады. Слот атау мен мәннен тұрады. Мән кез келген типте болуы мүмкін. NewtonScript-тегі барлық нысандар фреймдер екенін ескеру қажет. Суп және жазба: Бұл фреймдер/деректердің байланысты жиынтығы. Жазба – суптағы жеке фрейм. Фрейм жинағы: NewtonScript жүйесімен динамикалық түрде бөлінген жедел жад. Негізгі көрініс: Бұл қолданбаның барлық айнымалылары мен әдістерінен тұратын басты көрініс.