Forth
http://fforum.winglion.ru/

Идеальный язык программирования.
http://fforum.winglion.ru/viewtopic.php?f=4&t=1441
Страница 1 из 3

Автор:  victor79 [ Пн авг 04, 2008 06:25 ]
Заголовок сообщения:  Идеальный язык программирования.

Сижу думаю, какой же он должен быть этот идеальный язык.

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

Почему такой вопрос именно на фортовском форуме? потому что при программировании на других языках меньше развивается понимание, что синтаксис языка может кардинально отличным от знакомого.

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

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

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

И этот язык не должен обладать НУ ОЧЕНЬ БОЛЬШИМ списком процедур/свойств/кнопочек, потому что тогда его долго учить, долго создавать.

В идеале хочется язык, которому говоришь (желательно вслух) - хочу кнопочку, которая делает то, о чем я сейчас думаю. И он тебе это реализует :D . Это утопия. А вот что нужно, что бы к ней приблизится?

Автор:  Kopa [ Пн авг 04, 2008 07:17 ]
Заголовок сообщения:  Re: Идеальный язык программирования.

victor79 писал(а):
Сижу думаю, какой же он должен быть этот идеальный язык.


Может это почитать "идеальный язык программирования, каким он должен быть?"

http://forum.sources.ru/index.php?showtopic=146913&hl=

P.S. "Программирование для людей"
http://nit.miem.edu.ru/2008/sb/plen/009/index.html
\ Требуются сотни гениев, чтобы сделать простую вещь сложной

Автор:  Mihail [ Пн авг 04, 2008 13:25 ]
Заголовок сообщения: 

victor79 писал(а):
В этом языке должна быть работа с базами, но это лишь половина. В нем должно быть удобным написание алгоритмов, удобная работа с таблицами, и GUI который шлепается мышкой, а не кодом на винапи.


Никаких принципиальных проблем нет. Вопрос только - кот вложит в расширение Форта
те человеко-года которые уже вложены в другие средства программирования?
Форт в большей степени операционная система, чем язык программирования.
В его рамках может работать любой компилятор/интерпретатор как и любая другая программа.
При этом не обязательно писать интерпретатор языка на форте. Можно интерпретатор представить
в виде ДЛЛ или вызывать внешний интерпретатор(компилятор) передавая параметры через файлы.
При прочих равных условиях Форт имеет то преимущество, что в его рамках доступны все
средства, которыми пользуется сама форт-система при восприятии исходного текста.

Автор:  Kopa [ Пн авг 04, 2008 13:39 ]
Заголовок сообщения:  Re: Идеальный язык программирования.

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


Теперь эту мысль должны прочувствовать производители инструментальных
средств и обеспечить интерфейс доступа к внутреннему устройству своих
компиляторов.

Автор:  victor79 [ Пн авг 04, 2008 15:23 ]
Заголовок сообщения: 

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

таб = Таблица(СтруктураПолейТипаРекорд); // конструктор значения
таб.НоваяСтрока(ТМЦ = NULL, Количество = 5); // создали строку с заполнением, но колонок может быть больше, остальные остались незаполненными
зн = таб[,Номенклатура]; // прочитать поле номенклатура из текущей строки
НоваяТаб = таб.ВыбратьПоЗначениям(Номенклатура = ххх, Количество > 5);
одинсписок = таб.Номенклатура; // сформировать список из колонки таблицы
зн2 = одинсписок[3]; // значение по индексу 3 из списка


с подобной понятность и не большим объемом кода? Или лучше чем этот код?

Автор:  Гость [ Пн авг 04, 2008 15:36 ]
Заголовок сообщения: 

victor79 писал(а):
какие возможны варианты представления на форте следующих конструкции
...


Так как существует доступ к входному потоку при интерпритации/компиляции
и еще n-ое количество возможностей Форт языка
( до возможности изменить интерпритатор )
то выбирать, какой вариант менее трудозатратен довольно проблематично:)

P.S. На усмотрение разработчика.

Автор:  Гость [ Пн авг 04, 2008 15:38 ]
Заголовок сообщения: 

И что это будет - управление 1С.

Автор:  Гость [ Пн авг 04, 2008 15:47 ]
Заголовок сообщения:  Re: Идеальный язык программирования.

victor79 писал(а):
В идеале хочется язык, которому говоришь (желательно вслух) - хочу кнопочку, которая делает то, о чем я сейчас думаю. И он тебе это реализует :D . Это утопия. А вот что нужно, что бы к ней приблизится?


Выбираем:
Думаем о кнопочках
или
бизнес-логики.

P.S. Или ищем "Язык, который самостоятельно может реализовывать поставленные перед ним задачи"

Автор:  Mihail [ Пн авг 04, 2008 16:57 ]
Заголовок сообщения: 

victor79 писал(а):
какие возможны варианты представления на форте следующих конструкции


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

Автор:  victor79 [ Пн авг 04, 2008 17:07 ]
Заголовок сообщения: 

в данном посте я хотел поинтересоваться, как кто видит эти конструкции в вызовах, а не в реализации. То, что придуманное можно будет реализовать, в этом я не сомневаюсь. Вопрос удобна ли будет фортовская запись для записи таких конструкций?
Цитата:
И что это будет - управление 1С.

1С далеко не идеал, 7 - слишком ограничена, 8 - слишком усложнена.

Тут наверно будет правильным постановка вопроса, какой синтаксис будет наилучшим. А критерии определения наилучшести - возможность реализации максимум логики и пр. при наименьшем количестве конструкций (и наибольшей краткости, но см.дальше). Причем замечу, наименьшее кол-во конструкций это не есть наибольшая краткость конструкций как в К или J - там их много, они просто коротко записываются. Конструкции могут быть контекстно-зависимыми, но при этом у частицы должен быть подобный смысл даже в разных контекстах (пример - [] это определение индекса для таблиц и списков)
Цитата:
Думаем о кнопочках
или
бизнес-логики.
P.S. Или ищем "Язык, который самостоятельно может реализовывать поставленные перед ним задачи"

до этих пунктов тоже можно дойти, просто не все сразу, как говорится, строим фундамент для системы.

Автор:  Mihail [ Пн авг 04, 2008 17:35 ]
Заголовок сообщения: 

victor79 писал(а):
Вопрос удобна ли будет фортовская запись для записи таких конструкций?


Что за "фортовская запись"? в Форте можно использовать любую запись.

Автор:  WingLion [ Пн авг 04, 2008 18:24 ]
Заголовок сообщения: 

В идеальном языке - одно слово:
ПРОСТО-УГАДАЙ-ЧО-Я-ХОЧУ-И-СДЕЛАЙ!

Автор:  mOleg [ Пн авг 04, 2008 21:05 ]
Заголовок сообщения: 

victor79 писал(а):
Сижу думаю, какой же он должен быть этот идеальный язык.

идеальным языком является тот, который в нужный момент есть под рукой и позволяет адекватно реализовать собственные мысли :)

Автор:  mOleg [ Пн авг 04, 2008 21:09 ]
Заголовок сообщения: 

Mihail писал(а):
Форт в большей степени операционная система, чем язык программирования.

Все-таки скорее Языковая среда, а не Операционная система.

Автор:  mOleg [ Пн авг 04, 2008 21:24 ]
Заголовок сообщения: 

victor79 писал(а):
какие возможны варианты представления на форте следующих конструкции

таб = Таблица(СтруктураПолейТипаРекорд); // конструктор значения
таб.НоваяСтрока(ТМЦ = NULL, Количество = 5); // создали строку с заполнением, но колонок может быть больше, остальные остались незаполненными
зн = таб[,Номенклатура]; // прочитать поле номенклатура из текущей строки
НоваяТаб = таб.ВыбратьПоЗначениям(Номенклатура = ххх, Количество > 5);
одинсписок = таб.Номенклатура; // сформировать список из колонки таблицы
зн2 = одинсписок[3]; // значение по индексу 3 из списка


Конкретно по работе со списками.
Тут действительно надо тщательно думать над тем, как будет выглядеть синтаксис.
Приведенный вами вариант вряд ли оптимальный - слишком он классически выглядит :)

в форте все-таки скорее будет что-то содержащее меньшее количество скобок, запятых, и всяких других значков.
С другой стороны есть в форте такакя тенденция - не делать универсальных (на все случаи жизни) вещей. То есть, при работе с определенной таблицей будет определенный синтаксис наиболее удобный для работы именно с этой таблицей, а не со всеми возможными.
С другой стороны, тут можно привести в пример то, как в различных фортах реализуются структуры данных, напримр, в СПФ:
Код:
0 \ пример структуры
   CELL -- Field0
   CELL -- Field1
   1      -- ByteField
CONSTANT /sample

а вот, например, у меня есть такой вариант:
Код:
-4 Struct: sample
               Cell[] Field0
               Cell[] Field1
               Byte[] ByteFiled
   Sub Struct: Enclosed
              Cell[] FieldA
              Cell[] FieldB
   ;struct
;struct

Страница 1 из 3 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/