Автор Тема: Многоуровневый ЯП на основе ОБЕРОНА  (Прочитано 21291 раз)

DIzer

  • Гость
Re:Многоуровневый ЯП на основе ОБЕРОНА
« Ответ #30 : Март 18, 2011, 09:09:27 pm »
Возвращаясь к нашим баранам:
Цитировать

3. Есть понятие алгоритма  -как метода решения задач, с определенными свойствами (конечность, детерменированность, массовость)
4.  Будем считать что большинство систем встречающихся на практике достаточно описывается с помощью небольшого числа понятий информатики (в контексте задачи - императивная модель со строгой типизацией) (переменная, тип данных, данные, оператор присваивания, цикл, ветвление).
5. Изходя из п.4. Алгоритм можно выразить через понятия информатики. 
Так таки вот: если не ошибаюсь, понятие алгоритма и его свойства вытекает из теории вычислимости, а теория вычислимости непосредственно связана и определана была через машину Тьюринга самим Тьюрингом. А машина тьюринга это и есть императивная модель.

Посему все эти три пункта на самом деле один пункт.

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

DIzer

  • Гость
Re:Многоуровневый ЯП на основе ОБЕРОНА
« Ответ #31 : Март 19, 2011, 11:32:30 am »


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

Когда вы пишете программу для машин  Маркова , Тьюринга...- вы пишете ее (непосредственно) в командах исполнителя, точно также вы можете программировать в командах процессора интела (бинарный код). Но это не ЯП. Здесь ЧЕЛОВЕК является НЕПОСРЕДСТВЕННО промежуточным звеном - он ОТОБРАЖАЕТ алгоритм решения задачи на систему комант исполнителя.
Но как вы понимаете для серьезных задач это не выход  ;)

Цитировать
Я к тому, что в твоих пунктах явно чего-то не хватает.


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

Цитировать
Возьмем пачку ЯП. Возьмем некую задачу, ну, скажем, задачу поиска подстроки в строке. Внезапно окажется, что на некоторых языках эту задачу решить проще. а на некоторых сложнее. Почему? Потому, что каждый язык, кроме того самого синтаксиса который все видят, на который все ведутся, но который второстепенен, у каждого языка есть своя семантика, которая, вообще говоря, является тем самым виртуальным исполнителем языком которого и является данный ЯП. Исполнитель оперирует некими понятиями, если эти понятия близки решаемой задаче, то задача на данном ЯП решается просто, если же нет, то задача решается сложнее (но все равно решается).
Возвращаясь к поиску подстроки в строке -- на языке алгорифмов Маркова, эта задача решается очень и очень просто. В пару-тройку строчек (каждач строчка символов в 3-5), на языке машины Тьюринга эта задача решается уже сложно.

Не понял что из этого - действительно система команд исполнителя Маркова родственна  приведенным вами задачам обработки последовательности символов?
Цитировать
Это были просто ЯП. Теперь про языки высокого уровня. Языки высокого уровня позволяют построить набор абстракций удобных для решения задачи, позволяют это сделать вне зависимости от того, какая модель исполнителя нативна (эмм.. какой тип исполнителя родной) для данного ЯП. То есть даже если под капотом у нас машина Тьюринга, то ЯВУ все равно позволить построить над ним модель исполнителя алгорифмов Маркова и уже в этих терминах решить задачу. Чем язык уровнем выше, тем он проще и точнее позволяет построить модель нужного исполнителя и языка его, тем меньше (в данной задаче) из под Маркова будет выглядывать Тьюринг. В идеале, Тьюринга не будет видно вообще. И так для каждой задачи.

В терминах того что я предложил - это формулируется так, ЯВУ позволяет отображение алгоритма п.5  (в терминах п.4) на программу в терминах ЯП - с относительно небольшими искажениями, минимизирует влияние исполнителя на алгоритм -  и вот тут еще  тонкие моменты - УЧИТЫВАЕТ ВЛИЯНИЕ ЧЕЛОВЕЧЕСКОГО ФАКТОРА (посредством некоторой модели), так же он может содержать некоторые добавления которые упрощают описание на нем систем определенного вида (специализированность - нап. ЭРЛАНГ, ФОРТ)...

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re:Многоуровневый ЯП на основе ОБЕРОНА
« Ответ #32 : Март 19, 2011, 08:45:44 pm »
Не понял что из этого - действительно система команд исполнителя Маркова родственна  приведенным вами задачам обработки последовательности символов?
Да. Там решать данную задачу наиболее удобно.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"