Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Бағдарламалау тілі
Ирандағы ауыл
Programming language
the village in Iran
Ниал ("Nested Interactive Array Language") – 1981 жылдан бастап Канаданың Онтарио штатындағы Квинс университетінің Майк Дженкинс әзірлеген жоғары деңгейдегі массивтік бағдарламалау тілі. Дженкинс Дженкинс-Трауб алгоритмін бірлесіп жасаған. Ниал Тренчард Мор жасаған массив теориясына негізделген массивтер үшін функционалдық бағдарламалау нотациясын, сандық, таңбалық және символдық деректер үшін құрылымдық бағдарламалау ұғымдарымен үйлестіреді. Көбінесе прототиптеу және жасанды интеллект салаларында қолданылады.
Nial (from "Nested Interactive Array Language") is a high level array programming language developed from about 1981 by Mike Jenkins of Queen's University, Kingston, Ontario, Canada. Jenkins co created the Jenkins–Traub algorithm. Nial combines a functional programming notation for arrays based on an array theory developed by Trenchard More with structured programming concepts for numeric, character, and symbolic data. It is most often used for prototyping and artificial intelligence.
Қ'Ниал
1982 жылы Дженкинс Nial тілі мен Nial-дың Q'Nial нұсқасын таратпақ үшін Nial Systems Ltd компаниясын құрды. 2014 жылдан бастап компанияның веб-сайты Q'Nial бағдарламалық қамтамасы үшін ашық кодты жобаны қолдайды, оның екілік және бастапқы коды жүктеуге қолжетімді. Лицензия Artistic License 1.0 негізінде жасалған, айырмашылықтары тек кіріспеде, «Авторлық құқық иесі» анықтамасында (бұл «жинақтағы авторлық құқықта немесе авторлық құқықтарда аталған кез келген адам» дегеннен «NIAL Systems Limited» деп өзгертілді) және «кім» деген сөздің бір рет қолданылуында (ол «кімге» деп өзгертілді).
In 1982, Jenkins formed a company (Nial Systems Ltd) to market the language and the Q'Nial implementation of Nial. As of 2014, the company website supports an Open Source project for the Q'Nial software with the binary and source available for download. Its license is derived from Artistic License 1.0, the only differences being the preamble, the definition of "Copyright Holder" (which is changed from "whoever is named in the copyright or copyrights for the package" to "NIAL Systems Limited"), and an instance of "whoever" (which is changed to "whomever").
Ниалдық ұғымдар
Ниал 4-ші нұсқасында жалпыланған және көрнекті массив теориясын пайдаланады, бірақ функционалдық модельдің жалпылығынан бас тартып, 6-шы нұсқасында массив теориясын өзгертті. Қазір тек 6-шы нұсқасы ғана қолжетімді. Ниал өзінің барлық дерек типтерін ішкі тіркесілген тікбұрышты массивтер ретінде анықтайды. int, boolean, char сияқтылар жеке массив немесе бір ғана элементі бар массив ретінде қарастырылады. Массивтер өздері басқа массивтерді қамти алады, осылайша кез келген тереңдіктегі құрылымдарды құруға болады. Ниал сондай-ақ жазбаларды (Record) ұсынады. Олар біртекті емес массивтік құрылым ретінде анықталған. Ниалдегі функциялар Операциялар деп аталады. Ниал нұсқаулығынан: "Операция – аргумент массиві берілгенде нәтиже массивін қайтаратын функционалдық объект. Операцияны аргумент мәнімен орындау процесі операцияны шақыру немесе операцияны қолдану деп аталады."
Nial uses a generalized and expressive Array Theory in its Version 4, but sacrificed some of the generality of functional model, and modified the Array Theory in the Version 6. Only Version 6 is available now. Nial defines all its data types as nested rectangular arrays. ints, booleans, chars etc. are considered as a solitary array or an array containing a single member. Arrays themselves can contain other arrays to form arbitrarily deep structures. Nial also provides Records. They are defined as non homogenous array structure. Functions in Nial are called Operations. From Nial manual: "An operation is a functional object that is given an argument array and returns a result array. The process of executing an operation by giving it an argument value is called an operation call or an operation application."
Атлас
Ниалдағы атлас – құрамында бірнеше операциядан тұратын операция. Атлас қандай да бір мәнге қолданылғанда, атластың әрбір элементе осы мәнге реті келіп қолданылады, нәтижесінде соңғы нәтиже шығады. Бұл, айнымалыларды қолданбайтын (нүктелік емес) стильде анықтама беруге мүмкіндік береді. Трансформаторлар да осыны пайдаланады. Мысалы, төмендегі "ішкі [+,*]" мысалында "[+,*]" тізімі атлас болып табылады.
An atlas in Nial is an operation made up of an array of component operations. When an atlas is applied to a value, each element of the atlas is applied in turn to the value to provide an result. This is used to provide point free (without variables) style of definitions. It is also used by the transformers. In the below examples 'inner [+,*]' the list '[+,*]' is an atlas.