Формат против языка - PullRequest
       14

Формат против языка

1 голос
/ 20 февраля 2009

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

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

PS: Извините за пролог; мод-вниз / закрыть, если об этом уже спрашивали. PPS: Когда я говорю язык, я действительно имею в виду язык программирования с условиями, циклами и т. Д.

Ответы [ 2 ]

2 голосов
/ 20 февраля 2009

Действительно зависит от того, почему человек может захотеть это прочитать.

Многие потенциально читаемые форматы (например, HTML) могут быть чрезвычайно трудными для чтения при генерировании машиной.

В любом случае, настоящие программисты читают дампы ядра на завтрак: -)

Что касается вопроса о языке, то это будет зависеть от определения (и «DSL» не имеет четкого определения). Я бы сказал, что требуется элемент выполнения (хотя и неопределенно), и если это просто двоичная сериализация данных, я бы не назвал это языком (например, многими растровыми форматами).


Рассматривая это далее, здесь, кажется, есть два взаимосвязанных вопроса:

  • Является ли текстовым (потенциально читабельным для человека) или двоичным (очень трудным для читателей-людей) лучше (с полным аспектом неоперабельности).
  • Когда формат становится DSL.

Хотя первый вопрос рассматривается в другом месте, он не может быть полностью отделен от последнего. В конце концов, есть DSL, которые хранятся в двоичных форматах (например, макросы Word), и DSL, которые можно компилировать (например, .NET SDK включает в себя инструмент для преобразования XSLT в сборку).

Что заставляет меня думать, что настоящий вопрос состоит в следующем: что делает формат DSL. И проблема здесь в том, что «DSL-сущность» очень зависит от наблюдателя и зависит от контекста.

Является ли HTML DSL? Является ли HTML со свойствами обработчика событий и JavaScript DSL? Первый спорный, а второй трудно сказать «нет», потому что программный код определенно используется.

Моя первоначальная реакция на этот вопрос состояла в том, чтобы считать, что DSL требует определенной формы направленного исполнения. То есть при обработке DSL приложение изменяет свою работу. Это, по дальнейшему размышлению, слишком широкое определение. Рассмотрим приложение для обработки текста без макросов. Загруженный документ явно доминирует в состоянии приложения и определяет его производительность.

Это приводит ко второму потенциальному определению, основанному на авторском праве, для указания инструкций непосредственно на языке для направления (или класса) приложения. Это, однако, довольно расплывчато. Но по крайней мере избегает, чтобы документ WP был DSL.

Итак, мой текущий ответ: имеет ли значение? DSL или формат - это инструмент, заставляющий компьютеры делать что-то, академические определения на самом деле не способствуют этому.

1 голос
/ 20 февраля 2009

Когда форматы эволюционируют в предметно-ориентированный язык? Или как мне решить, хочу ли я> HRF или DSL. PostScript - это то, что пришло на ум, что вызвало это.

Каждый вид формата можно рассматривать как язык. Потому что для понимания сообщения нужны правила. Машиночитаемые языки должны быть полностью определены без какой-либо неверной интерпретации.

Таким образом, вы можете сказать, что им не нужно развиваться, потому что они уже являются языками.

Я использовал следующие определения:

  • HRF (Human Readable Format), почти все в письменном формате.
  • DSL (предметно-ориентированный язык), язык, используемый для одной цели.

Если вы ограничиваете определение языков только теми языками программирования, которые содержат циклы и ветви. История меняется. Простые INI-файлы не нуждаются в этих конструкциях. Но макро языки делают. Таким образом, вы можете сказать, что только языки, которые описывают поведение (последовательности, решения, основанные на данных), могут развиться в язык.

...