Меркурий: Функционалды логикалық бағдарламалау тілі
Mercury (programming language)
Mercury – нақты қолдануға арналған функционалды логикалық бағдарламалау тілі. Prolog & Haskell-ға ұқсас, күшті типтеу жүйесі бар. Бағдарламалау, логика.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Кіріспе
Функционалдық логикалық бағдарламалау тілі Mercury Autocode
Functional logic programming language
Mercury Autocode
Mercury – нақты қолданысқа арналған функционалдық логикалық бағдарламалау тілі. Бірінші нұсқасы Фергус Хендерсон, Томас Конвей және Золтан Сомоги Мельбурн университетінің компьютерлік ғылымдар кафедрасында, Сомогидің жетекшілігімен әзірленді және 1995 жылдың 8 сәуірінде жарияланды. Mercury – таза декларативтік логикалық бағдарламалау тілі. Ол Prolog және Haskell тілдерімен байланысты. Ол берік, статикалық, полиморфты типтер жүйесімен және берік режимдік және детерминистік жүйемен сипатталады. Ресми Melbourne Mercury компиляторы Unix және Unix-қа ұқсас платформалар үшін, оның ішінде Linux, macOS және Windows үшін қолжетімді.
Mercury is a functional logic programming language made for real world uses. The first version was developed at the University of Melbourne, Computer Science department, by Fergus Henderson, Thomas Conway, and Zoltan Somogyi, under Somogyi's supervision, and released on April 8, 1995. Mercury is a purely declarative logic programming language. It is related to both Prolog and Haskell. It features a strong, static, polymorphic type system, and a strong mode and determinism system. The official implementation, the Melbourne Mercury Compiler, is available for most Unix and Unix like platforms, including Linux, macOS, and for Windows.
Шолу
Меркурий логикалық бағдарламалау тілі Prolog негізінде құрылған. Оның синтаксисі және таңдамалы сызықтық нақты сөйлемді шешу (SLD) алгоритмі сияқты негізгі ұғымдары Prolog тілімен бірдей. Оны Prolog тілінің күшті типтері мен режимдері бар таза кіші жиыны деп қарастыруға болады. Сондықтан, ол мүмкіндіктері және жұмыс уақытының тиімділігі тұрғысынан алдыңғы нұсқасымен жиі салыстырылады. Тіл бағдарламалық инженерия принциптерін қолдану арқылы жобаланған. Prolog тілінің бастапқы іске асырылымдарынан айырмашылығы, ол тікелей интерпретацияланбай, жеке компиляция фазасына ие. Бұл бағдарламаны іске қосу алдында көптеген қателерді анықтауға мүмкіндік береді. Оның авторлары Меркурийдің әлемдегі ең жылдам логикалық тіл екенін, айқын артықшылықпен, мәлімдейді. Бірақ ол кейбір бағдарламалау құрылымдарын (мысалы, бірнеше опциялар бойынша ауысу, әдепкі опциясымен бірге) білдіруді қиындатуы мүмкін. Меркурий таза емес функционалдылыққа рұқсат берсе де, ол негізінен шетел тілдеріндегі кодты шақыру тәсілі ретінде қызмет етеді. Барлық таза емес кодтар нақты түрде белгіленуі керек. Әдетте таза емес операциялар (мысалы, кіріс/шығыс) Меркурийде таза құрылымдарды пайдаланып, сызықтық типтер арқылы, барлық қатысты код арқылы жалған әлем мәнін өткізу арқылы көрсетіледі. Меркурийде жазылған танымал бағдарламаларға Меркурий компиляторы және Prince XML форматтаушысы жатады. ODASE бағдарламалық компаниясы сондай-ақ Меркурийді ODASE онтологияға бағытталған бағдарламалық жасақтама платформасын әзірлеу үшін пайдаланады.
Mercury is based on the logic programming language Prolog. It has the same syntax and the same basic concepts such as the selective linear definite clause resolution (SLD) algorithm. It can be viewed as a pure subset of Prolog with strong types and modes. As such, it is often compared to its predecessor in features and run time efficiency. The language is designed using software engineering principles. Unlike the original implementations of Prolog, it has a separate compilation phase, rather than being directly interpreted. This allows a much wider range of errors to be detected before running a program. It features a strict static type and mode system Its authors claim that Mercury is the fastest logic language in the world, by a wide margin. but it can make certain programming constructs (such as a switch over a number of options, with a default) harder to express. While Mercury does allow impure functionality, it serves mainly as a way to call foreign language code. All impure code must be explicitly marked. Operations which would typically be impure (such as input/output) are expressed using pure constructs in Mercury using linear types, by threading a dummy world value through all relevant code. Notable programs written in Mercury include the Mercury compiler and the Prince XML formatter. The Software company ODASE has also been using Mercury to develop its Ontology Centric software development platform, ODASE.