Роль комбинаторов в конкатенационных/молчаливых языках программирования

Какую именно роль выполняют комбинаторы высшего порядка (или производители функций) в конкатенации и неявное программирование?

Есть ли другой способ реализовать конкатенативный язык программирования, а не напрямую манипулировать стеком?

Насколько тесно связаны между собой упомянутые комбинаторы и комбинаторная логика?


person Bubba88    schedule 08.05.2010    source источник
comment
Этот вопрос упоминался в сообщении блога Почему последовательное программирование Имеет значение.   -  person Peter Mortensen    schedule 26.08.2012


Ответы (2)


В моем ответе на "Объясните мне конкатенационные языки как будто мне 8 лет" я утверждал, что бесполезно использовать слово "конкатенативный" для описания языков программирования. Похоже, что это частная игровая площадка Манфреда фон Туна. Не существует настоящего определения того, что представляет собой конкатенативный язык, и нет зрелой теории, лежащей в основе идеи конкатенативного языка. Поскольку концепция на самом деле не определена, невозможно дать окончательное объяснение роли комбинаторов.

Возможно, вы предпочтете потратить время на изучение более хорошо зарекомендовавших себя тем, таких как комбинаторная логика, комбинаторы SK, лямбда-исчисление и машины для сокращения графов. Если вы заинтересованы в бесточечном программировании с более прагматичной точки зрения, вам стоит изучить APL, Forth и PostScript.

person Norman Ramsey    schedule 08.05.2010
comment
Спасибо, я прочитал упомянутый пост и обязательно изучу темы, которые вы обозначили. - person Bubba88; 09.05.2010
comment
Я думаю, что вы заходите слишком далеко, когда говорите, что бесполезно использовать слово «конкатенативный» для описания языков программирования — это скорее неясная, но полезная концепция, которая становится бессвязной, когда вы слишком далеко заходите. , пример концепций семейного сходства, таких как игра, которую критиковал Витгенштейн. И если они являются игровой площадкой для Манфреда фон Туна, они не являются частными: мне показалась интересной работа Кристофера Диггинса о Кошке. - person Charles Stewart; 19.05.2010
comment
Ответ на этот ответ можно найти здесь: evincarofautumn.blogspot. com/2012/02/ Почему каскадное программирование имеет значение - person Jeroen K; 13.02.2012
comment
Я ненавижу видеть это как принятый ответ. Это не правильно. Конкатенация означает наличие свойства, заключающегося в том, что вы можете отрезать часть этой программы, и она станет корректной программой, а также соединить программы и получить другую программу. Так просто, что не нужно много объяснять, на самом деле. В конкатенационных языках программирования есть и другие особенности, но это определяющая черта. Он также не может ответить ни на один из вопросов ОП. - person fede s.; 08.08.2016

Есть ли другой способ реализовать конкатенативный язык программирования, а не напрямую манипулировать стеком?

да. Язык Enchilada основан на переписывании терминов.

person Community    schedule 24.10.2010
comment
+1, хотя их определение Concatenative: синтаксическая конкатенация постфиксных выражений дает действительные выражения - это просто необычная идея, на которую Норман жалуется в своем ответе. - person Charles Stewart; 25.10.2010
comment
Да, я думаю, что каждый, кто занимается конкатенативными языками, как бы придумывает определение для себя. Однако общее ощущение языков одинаковое, поэтому я не буду об этом беспокоиться :) - person ; 25.10.2010