Атаулы терминдер (информатика) - Nominal terms (computer science) - Wikipedia

Атаулы терминдер болып табылады метатіл байланыстырушы құрылымдармен объектілік тілдерді ендіру үшін. Интуитивті түрде оларды бірінші ретті терминдердің атпен байланыстыруды қолдайтын кеңеюі ретінде қарастыруға болады. Демек, екі номиналды термин арасындағы теңдік туралы жергілікті түсінік альфа-эквиваленттілік (байланыстырылған атаулардың пермутативті атауын өзгертуге дейінгі эквиваленттілік). Атаулы терминдер зерттеу бағдарламасынан шыққан номиналды жиынтықтар, және сол жиынтықтарда нақты семантикасы бар.

Номиналды унификация тиімді шешімді болып табылады. Бұл факт дамуына әкелді alphaProlog, а Пролог - тәрізді логикалық бағдарламалау Prolog стандартына сәйкес атауларды байланыстыратын құралдармен тіл бірінші реттік унификация алгоритмі номиналды унификациямен ауыстырылады.

Номиналды мерзімді ендіру балама ретінде қарастырылуы мүмкін de Bruijn кодтаулары және жоғары дәрежелі абстрактілі синтаксис, мұнда соңғысы жай терілген лямбда калкулусы металл тіл ретінде.

Мотивация

Көптеген қызықты калькуляциялар, логика және бағдарламалау тілдері информатикада жиі кездесетін атауды байланыстыратын құрылымдар. Мысалы, бастап әмбебап кванторы бірінші ретті логика, лямбда байланыстырғыш лямбда-калкулус, және пи-байланыстырғыш пи-есептеу барлығы атауға міндетті құрылымдардың мысалдары.

Информатиктер жиі манипуляциялау қажет синтаксистік ағаштар. Мысалы, құрастырушы жазушылар компиляторды орындаудың әртүрлі оңтайландыру және өңдеу кезеңдерінде абстрактілі синтаксистік ағаштардың көптеген манипуляцияларын орындайды. Атап айтқанда, атауларды байланыстыратын құрылымдары бар абстрактілі синтаксистік ағаштармен жұмыс істегенде, біз көбінесе альфа-эквиваленттік кластармен жұмыс істегіміз келеді, жазудан аулақ болатын алмастыруларды енгізіп, жаңа атаулар шығаруды жеңілдетеміз. Мұны қаншалықты жақсы, қатесіз және сенімді түрде жасау көптеген зерттеулерге түрткі болады.

Бұл мәселені шешуге дейінгі талпыныстарға де Брюйн индекстері мен деңгейлері сияқты «атаусыз тәсілдер» және жоғары ретті абстрактілі синтаксис сияқты жоғары ретті тәсілдер кіреді. Номиналды терминдер - бұл де-Брюйн кодтауының бірінші ретті дәмін (және бірінші ретті есептеу қасиеттерін) сақтай отырып, жоғары деңгейлі дерексіз синтаксис сияқты байланысқан айнымалылар үшін нақты атауларды сақтайтын басқа, салыстырмалы түрде жаңа тәсіл.

Синтаксис

Үлгі ендіру

Біріктіру алгоритмі

Жоғары ретті үлгілермен байланыс

Жоғары ретті унификация белгілі шешілмейтін. Бұл есептеуде жақсы жұмыс істейтін унификация процедурасына ие лямбда терминдерінің ішкі жиынтықтарын іздеуге түрткі болады. Миллер ұсынған жоғары ретті үлгілер осындай жиынтықтардың бірі болып табылады.

Жоғары ретті үлгілер лямбда терминдері мұндағы еркін айнымалының аргументтері - айқын анықталған айнымалылар. Олар тиімді шешілетін унификация процедурасына ие және нәтижесінде логикалық бағдарламалау тілінде кеңінен енгізілді lambdaProlog.

Жақында жұмыс тобы номиналды терминдер мен жоғары ретті үлгілер арасындағы, демек, номиналды унификация мен жоғары ретті үлгідегі унификация арасындағы байланысты зерттеді. Чейни номиналды заңдылықтар деп аталатын номиналды терминдерді кеңейтуді ұсынды. Содан кейін ол номиналды үлгілер мен сақталған жоғары ретті үлгілер арасындағы аударманы ұсынды біріктіргіштер. Кейінірек Леви мен Вилларет номиналды терминдер мен жоғары дәрежелі заңдылықтар арасындағы біртектілік ұғымын сақтайтын аударманы көрсетті. Яғни, егер екі номиналды термин біртұтас емес болса, онда олардың аударма үлгісінің аналогтары да біріктірілмейді.

Доук пен Габбай кейінірек Леви мен Виллареттің аудармасын өткірлендіріп, олардың аудармасы қандай-да бір деңгейде болуы мүмкін екенін дәлелдеді және жетілдірілген аудармада унификаторлар сақталғанын дәлелдеді. Яғни, егер екі номиналды термин қандай-да бір алмастырумен біріктірілмейтін болса, онда аударманың астындағы сәйкес жоғары ретті үлгідегі унификация мәселесі аударылған алмастырумен шешіледі. Доек пен Габбай оларды дәлелдеу үшін номиналды терминдердің рұқсат етілген номиналды терминдер деп аталатын вариациясын қолданды. Сонымен қатар, рұқсат етілген атаулы терминдерден аударма тағы бар, номиналды терминдер мен жоғары ретті үлгілер арасындағы аударма аяқталады.

Әдебиеттер тізімі

  • Кристоф Гольфтер мен Марибель Фернандес (2008). «Көпмүшелік номиналды алгоритм». Теориялық информатика. 403 (2–3): 285–306. дои:10.1016 / j.tcs.2008.05.012.
  • Джеймс Чейни (2005). «Үлгілік унификация мен номиналды унификацияның қатысы». Біріктіру бойынша 19-шы Халықаралық семинардың материалдары (UNIF). 104–119 беттер.
  • Джилл Доук, Мердок Дж. Габбай және Доминик П. Муллиган (2010). «Рұқсат етілген атаулы терминдер және оларды біріздендіру». IGPL журналы. 18 (6): 769–822. CiteSeerX  10.1.1.185.3105. дои:10.1093 / jigpal / jzq006.
  • Джорги Леви және Матеу Вилларет (2008). «Жоғары деңгей тұрғысынан номиналды унификация». Қайта жазу әдістері мен қосымшалары (RTA) бойынша 19-шы Халықаралық семинардың материалдары. 246–260 беттер.
  • Кристиан Урбан, Эндрю М. Питтс және Мердок Дж. Габбай (2004). «Номиналды унификация». Теориялық информатика. 323 (1–3): 473–497. дои:10.1016 / j.tcs.2004.06.016.