Есть ли какое-либо практическое применение для тайного языка?

Попытайтесь обновить свой файл hosts (for windows users @ c:\windows\System32\Drivers\etc\hosts) с записью, которая направит все запросы от Вашего живого домена назад к Вашей машине.

Так 127.0.0.1 mywebappthatusesfacebook.com.

Тогда удостоверяются, что Ваше приложение работает в корне Вашего веб-сервера. http://localhost/ Тогда goto mywebappthatusesfacebook.com в Вашем браузере и это должно перенаправить правого защитника к Вашей локальной машине. Facebook не будет знать различия. Надежда это помогает

18
задан user151019 8 December 2013 в 03:48
поделиться

14 ответов

Приложения реального мира, а?

Игра Lost Kingdom выиграла Первый ежегодный конкурс классических текстовых приключений 2k в 2004 году и была (пере) написана и улучшена первоначальным автором в brainfuck

Как насчет IRC-бот в Befunge или этот текстовый редактор ? И я полагаю, что если вам нравится писать на эзотерических языках, вы могли бы счесть подходящим компилятору C или компилятором C очень полезным ...

15
ответ дан 30 November 2019 в 05:37
поделиться

Обфускация кода - очень распространенное практическое использование :-p

И я не знаю, можно ли назвать семейство APL / J / K эзотерическими, но они использовались в производственные системы с давних времен.

1
ответ дан 30 November 2019 в 05:37
поделиться

Developing of esoteric language is like creating Mandala. After endings of work you can forget it or even destroy.

2
ответ дан 30 November 2019 в 05:37
поделиться

Единственное практическое преимущество, которое я вижу, состоит в том, что если вы пишете код на эзотерическом языке, это заставит вас думать о проблемах по-новому и интересно. Изучение новых способов решения проблем принесет пользу, даже если вы вернетесь к программированию на обычном языке.

В прошлом году я прочитал «Аннотированный Тьюринг» Чарльза Петцольда. У меня определенно нет намерения когда-либо программировать машину Тьюринга, по крайней мере, как он ее описывает. Но размышления о решении проблем с помощью его «языка» растянули мой разум. Я лучше программист на C # для этого.

3
ответ дан 30 November 2019 в 05:37
поделиться

Некоторые классы эзотерических языков программирования имеют приложения в теоретической информатике.

Брезенты Тьюринга используются для иллюстрации определенных результатов в теории вычислимости и проблеме остановки. См., Например, работу Янова (чуть более доступное резюме есть в конце этой статьи ).

Фундаментальные результаты для классов машин Тьюринга - еще одно практическое применение. Например, Википедия отмечает, что P '' был «первым без GOTO языком императивного структурированного программирования, который был доказан как полный по Тьюрингу».

Двоичная комбинаторная логика является полезным инструментом для анализируя сложность Колмогорова .

5
ответ дан 30 November 2019 в 05:37
поделиться

Понимание машины Тьюринга, вычислимости и практическое понимание того, что подразумевается в теории вычислений. Все практические преимущества можно получить, если использовать такой эзотерический язык, как мозг ****.

Я уверен, что есть и другие.

8
ответ дан 30 November 2019 в 05:37
поделиться

If there is a practical use to a language it wouldn't be called esoteric. The two terms are mutually exclusive.

10
ответ дан 30 November 2019 в 05:37
поделиться

job security!!!

20
ответ дан 30 November 2019 в 05:37
поделиться

Eiffel, Erlang, Ocaml, Haskell. These are all "niche" languages for most of the programmers out there, yet they are practical inside their domains. Your question simply doesn't make sense, it might be well asking "Are there any good languages that we don't use in popular problem domains?"

-3
ответ дан 30 November 2019 в 05:37
поделиться

Эзотерический язык программирования не имеет практического применения, в значительной степени по определению . Однако то, что вы не можете использовать их, не означает, что они бесполезны .

tl; dr:

. Например, когда вы смотрите на эзотерические языки программирования, вы можете примерно разделить их на категории: некоторые созданы для шуток, некоторые - просто для развлечения, некоторые - как тьюринги, но есть и те, которые созданы, чтобы доказать или проиллюстрировать точку зрения. И эти действительно полезны именно для этого: чтобы проиллюстрировать точку зрения, может быть, в классе языков программирования, может быть, для сообщества или для индустрии. Несмотря на то, что они бесполезны для практических целей, они используются полно в образовательных целях

. Возьмем недетерминированные эзотерические языки программирования. Это языки программирования, для которых семантика оценки определенных выражений не определена детерминированно, а, например, вероятностно или основана на фазе луны или что-то в этом роде. Если вы посмотрите на определение такого языка, вы сразу же подумаете: " Такой брезент Тьюринга можно использовать для демонстрации двух разных вещей: вы можете использовать его, чтобы продемонстрировать, что именно делает одни языки более «мощными» (в смысле выразительной силы), чем другие. Если вы будете искать в Интернете, вы найдете людей, которые спрашивают: «Неужели Lisp намного лучше, чем Java, почему бы вам не показать мне какую-нибудь программу, которую вы можете написать на Lisp, но я не могу написать на Java». И, конечно, это глупо: оба языка полны по Тьюрингу, поэтому такой программы нет. Однако, сравнивая Java, скажем, с Brainfuck, вы можете показать, что это просто бессмысленный вопрос.

И еще одна вещь, которую вы можете продемонстрировать с помощью tarpits Тьюринга, - это то, что вы никогда не сможете сделать язык более мощным (в обоих значения слова: вычислительная мощность и выразительная сила) путем удаления признаков. Это кажется очевидным, но есть люди, которые на самом деле считают, что Microsoft следует просто удалить изменяемое состояние из C #, и оно волшебным образом станет более мощным.

В общем, брезенты Тьюринга хороши для демонстрации различия между вычислительной мощностью и выразительностью. сила языка программирования.

Эзоланги могут быть полезны и в том смысле, что они могут служить источником вдохновения для исследования языков программирования. Подумайте о Unlambda, который, как следует из названия, является функциональным языком, не основанным на лямбда-исчислении. Другими словами: это функциональный язык, у которого нет функций.

И, наконец, что не менее важно, esolang может заставить вас взглянуть на проблему под совершенно другим углом (да, я признаю, это в основном неудобный угол, но эй, некоторые кинорежиссеры (Хичкок, например) всю свою карьеру обязаны смотреть на вещи с неудобных сторон) и дразнят ваш мозг, как хорошая головоломка. Вот, например, вся причина существования и названия Brainfuck.

63
ответ дан 30 November 2019 в 05:37
поделиться

На основе этого вопроса и его ответ, я тоже нашел практическое применение такому языку: GolfScript , язык, разработанный специально для кода гольф:

GolfScript ориентирован на стек. эзотерический язык программирования, направленный на решение проблем (дыр) в кратчайшие сроки нажатия клавиш по возможности. Он также направлен быть простым и легким в написании.

Вот и все, прямо от людей, написавших это. Хотя вопрос о том, является ли гольф-код практическим вопросом, может быть спорным, я лично считаю, что он максимально приближен к тому, что вы и я могли бы написать и встретить, не говоря уже о том, что это веселое упражнение по программированию и соревнование с множеством фанатов. Так что ... если игры, футбол и другие виды развлечений так или иначе ... практичны ... я тоже могу добавить код для гольфа:)

4
ответ дан 30 November 2019 в 05:37
поделиться

Существует язык под названием Pilot. Это интерпретирующий язык, написанный на Dartmouth BASIC (язык интерполяции). Первоначально он использовался для того, чтобы учителя, не занимающиеся программированием, могли программировать свои тесты. Все команды на языке состоят из отдельных букв, и используемая буква определяет доступные параметры. Он древний (я узнал его в 1976 году) и, насколько я могу судить, больше не используется.

1
ответ дан 30 November 2019 в 05:37
поделиться

Если судить только по ссылка на Википедию :

Эзотерический язык программирования (иногда сокращается до esolang) - это язык программирования, разработанный как проверка границ компьютера дизайн языка программирования, как доказательство концепции, или в шутку. Там обычно не имеет намерения язык, принятый для реального мира

тогда, нет , практического применения такого языка к реальной проблеме нет.

Причины не являются оскорблением языков, они сосредоточены на «практических»:

  1. . На практике, если вы решаете проблему, вам нужно суметь убедить себя, что вы ее решили. Если вы используете язык, который специально разработан таким образом, чтобы его было трудно читать, будет сложно визуально проверить ваше решение и сказать: «Да, это правильно».
  2. На практике вы не работаете в вакуум. В реальной жизни вы всегда работаете с ненулевым набором других людей (даже если это только вы-в-будущем). Кто-то другой должен будет поддерживать ваше решение, добавляя здесь функцию, исправляя проблему там или, что еще хуже, пытаясь задокументировать, что вы сделали и почему.
  3. Если ни 1, ни 2 не подходят, вы создали решение проблемы, которое (а) тривиально легко проверить и (б) никогда не требует обслуживания, поскольку оно никогда не используется на практике. Следовательно, это тривиальная / непрактичная проблема.
2
ответ дан 30 November 2019 в 05:37
поделиться

Sure; Fungot, the IRC bot: http://zem.fi/~fis/fungot.b98.txt

3
ответ дан 30 November 2019 в 05:37
поделиться