Языки программирования с русским синтаксисом

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Языки программирования с русским синтаксисом » Язык Валентина » Интерпретатор языка Валентина


Интерпретатор языка Валентина

Сообщений 1 страница 30 из 175

1

http://codingvault.org/forum/viewtopic. … d5a5dfc113 - начало

http://codingvault.org/forum/viewtopic. … p;start=60 -  последняя страни

Отредактировано rusprog (23-03-2009 16:24:18)

0

2

Здесь я готов дать полную информацию по данному языку программирования и ответить на вопросы, связанные с ним.

Отредактировано utkin295 (30-01-2009 14:44:56)

+1

3

Кратко об Valentina
1. Разработка ведется на Паскале (пока в Delphi, но чуть позже планируется миграция на Lazarus).
2. Поддержка очень длинных чисел (число значащих цифр ограниченно Integer), а это порядка миллиарда знаков.
3. В качестве языка программирования выступает русский (не перевод английских сокращений).
4. Текст программы приближен к естественной записи.
5. Отсутствие явного преобразования типов данных
6. Тип данных строки, посредством которых выполнены остальные.

0

4

Пример программы на языке Valentina ;)

# - Тестовая программа - тест массивов и циклов

Создадим массив Утка. Здесь мы будем хранить свойства утки.
Создадим переменную Характеристика. С помощью этой переменной определим свойства этой замечательной птицы.
Создадим переменную Все_об_утках. Сюда мы поместим результат, а потом, сохраним его в файле.

Добавим в массив элемент Утка [тип] = птица
Добавим в массив элемент Утка [название] = 'утка'
Добавим в массив элемент Утка [имя]='Дональд Дак'
Добавим в массив элемент Утка [двигатель]= крылья   
Добавим в массив элемент Утка [способ_передвижения]=полет
Добавим в массив элемент Утка [миграции]='сезонного типа'

Примечание: До этого мы осуществляли подготовительные операции

Для Характеристика подставляем индексы массива Утка. В цикле определим все характеристики птицы.
        Все_об_утках=Все_об_утках & Характеристика & ' = ' & Утка [Характеристика] & конец_строки
Конец цикла. Результат накапливается в цикле.

Затем сохраним переменную Все_об_утках в файле 'утиные_истории.txt'

Отредактировано utkin295 (30-01-2009 19:54:53)

0

5

Сый написал(а):

> ответить на вопросы
Прежде всего: отчего ж название нерусским алфавитом писано?

Для совместимости с не-Windows платформами. Позже, когда язык будет доведен до стандарта, планируется переход на Linux. Сам интерпретатор может быть перенесен посредством Lazarus это мультиплатформенная среда программирования языком которой является freepascal. В частности это позволит перенести язык на Lunux и клоны BSD.

0

6

Сый написал(а):

Логично ли для обозначения команд использовать глаголы первого лица множественного числа и в будущем времени?

Valentina поддерживает множественность конструкций. Это значит, что вместо СОЗДАТЬ ПЕРЕМЕННУЮ Х можно использовать
СОЗДАЕМ ПЕРЕМЕННУЮ Х
СОЗДАДИМ ПЕРЕМЕННУЮ Х
ДОБАВИТЬ ПЕРЕМЕННУЮ Х
ДОБАВИМ ПЕРЕМЕННУЮ Х
ДОБАВЛЯЕМ ПЕРЕМЕННУЮ Х

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

+1

7

Сый написал(а):

> Для совместимости с не-Windows платформами.
Кого-то из нас явно глючит. И почему-то мне кажется, что не меня. Какое отношение платформа имеет к названию?

Ко мне обращался один любопытный, его проблема была в том, что он не мог открыть каталог с документацией из-за проблем с кодировкой в Linux. Тогда я переделал многие надписи и названия файлов.  А так в том же ДОСе другая кодировка (это уже про название). Сам интерпретатор представляет собой один класс и его можно использовать не только в Windows. Для теста я попробовал болванку (тогда еще Valentina не была названием :) ) запустить в ДОС и увидел абракодабру :) Чтобы хоть как-то узнавать решил дать название на нерусском. Как видите это не принципиальный вопрос. Как только решится вопрос с кодировками, можно будет сделать и полностью русское название и имена файлов и каталогов, везде где это будет допустимо.
Кстати, на счет языка. Внутреннее устройство Valentina позволяет делать сменными названия конструкций. Это значит что можно организовать поддержку всех родственных языков (но к примеру, немецкий не получится, там предложения имеют строгую форму). Скажем украинцы смогут программировать по украински, используя украинские конструкции. По-крайней мере, чисто теоретически такая возможность сохраняется (побочный эффект множественности конструкций :) ).

0

8

Кроме того, в Valentina для приближения к более естественной записи используются незначащие лексемы. Они ни как не влияют на работу программы и служат для более быстрого восприятия алгоритма человеком.
Достигается это использованием перед конструкциями выражений:
Затем
Аналогично
Далее
Тогда
Сначала
Теперь

Иными словами конструкции
Затем Х=Х+1
и
Х=Х+1
эквивалентны между собой и приведут к одному результату.

0

9

Сый написал(а):

> проблем с кодировкой
Проблемы с кодировками существуют лишь у ленивых программистов. В современных ОС должна использоваться одна кодировка: Уникод. В остальных случаях должны прилагаться инструменты для перекодировки. Кстати, в тему 8-битовой русской кодировки, смотрите её универсальный вариант в конце статьи о русском алфавите на Традиции: [traditio.ru/wiki/Русский_алфавит]. Остальные 8-битовые кодировки являются порождением либо отсталости, либо капитализма. Оправдывать же нерусское название (суть просто слово, независимо от того, где как пишется) путаницей в кодировках крайне нелепо и даже глупо.

Дело не в лени. Сначала надо чтобы хотя бы так заработало (то есть работает, но не все сделано :)). А дальше исправим.

0

10

utkin295 написал(а):

Дело не в лени. Сначала надо чтобы хотя бы так заработало (то есть работает, но не все сделано ). А дальше исправим

1. как тебе вики справка?? По твоему - имеет смысл так оформлять справочную систему??
2. Я не очено в этом понимаю, но может быть , чтобы не делать всё самому , в качестви среды разработки использовать  Notepad++? а Валентину - оформить как плагин к нему??? Там есть подсветка , и сворачивание разворачивание кода - что очень удобно при разработке более менее больших программ.

0

11

Вот ссылка на НЕОФИЦИАЛЬНЫЙ дистрибутив Валентины
состоит из:
1. исходников Валентины версия 21 
2. Вики справки по Валентине
3. EXE-шника - от версии 20!!!!
_Valentina_Wiki.zip - 1,64 Мб

В дальнейшем наверное имеет смысл собранный исполняемый файл вкладывать в архив вместе с исходниками, т.к. не у всех есть Дельфи, многие хотят просто посмотреть.

PS может быть ты будешь выкладывать ссылку на архив с последней версией не только на своём форуме но и здесь???

PSS

Для проектирования алгоритмов можете попробовать Дакон-редактор (грубо говоря редактор Блок-схем)

DRAKON_2009_01_25_Wiki.zip
- 1.39 Мб - Дракон от 2009.1.25 + wiki Спрака по дракону + Гернератор кода из Дракон-схем -> Оберон и СТАРАЯ версия Дракон-редактора которая с ним совместима.
Всё объеденино в один пакет.

0

12

Да, с этого момента я буду выкладывать последующие версии и здесь :). Почему неофициальный? Пусть будет официальный!  Но нужно придумать хранилище, для версий, чтобы люди не путались.  Для начала можно просто ftp, а там и SVN попозже. Тогда все версии будут выкладываться именно здесь, а на том форуме будет ссылка :).
Необходимо договориться об наименованиях версий. Только нужно учитывать, что речь идет об альфа-версиях, как самого интерпретатора, так и среды разработки. 

Насчет NotePad++.... Я думал об этом, изучаю его возможности. Если подойдет, возможно так и поступим.  Справка просто отлично! Пятерка с плюсом.

0

13

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

0

14

ОК, я думаю со временем все наладится.

0

15

http://narod.ru/disk/5432119000/Valentinapr.rar.html - очередная альфа. Добавлен еще один метод, улучшена подсветка синтаксиса, и еще кое-какие мелочи :)

0

16

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

0

17

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

0

18

Кстати, вспомнил почему SaveReport. Сначала все кнопки именовались стандартно Button1, Button2 и т.п. (так проставляет Делфи, Валентина пишется на Паскале). Но я в них очень быстро стал путаться. И начал именовать как попало (в основном по английски). Потом мне это показалось тоже не удобным и часть кнопок стала называться по русски. А SaveReport так и остался по смешной причине. Надпись Сохранить отчет намного длинее и не помещалась в кнопку целиком :). Но это не имеет значения, так как скоро все кнопки перейдут на панель инструментов. Обычных кнопок в среде разработке не будет.

0

19

Сама среда разработки появилась из набора проверочных функций. Мне понадобились средства для отладки интерпретатора, делать это напрямую утомительно - общее число строк кода около 15000 (вместе с кодом среды разработки).

0

20

Не спорю, исправлюсь :(

0

21

Очередная альфа с документацией и примерами использования - http://narod.ru/disk/5510673000/Valentina v00023 (copy%202).rar.html
Теперь возможна рекурсия :). Некоторые изменения среды разработки. В первую очередь убрал все не русские слова, какие нашел :). Небольшое улучшение внешнего вида.

0

22

Валентина поддерживает очень длинные числа. Самый простой факториал для 1000 далеко не так легко вычислить в том же С++ или Паскаль, но теперь доступен для школьников и студентов. В последней версии содержится пример вычисления факториала для 10, однако вы легко можете вычислить факториал и для 1000 и для 10000. Конечно сам процесс вычислений будет намного медленнее чем в С++ или Object Pascal, но общее время от процесса постановки задачи до получения результата при использовании Валентина в разы меньше ;).
Почему Валентина медленнее чем Паскаль или С? 1 - это интерпретатор.  2 - Валентина не оптимизирована - это "чистый" интерпретатор, он не производит промежуточных преобразований (вроде байт-кода), исполняет программы в один проход. Стадия оптимизация будет начата только после получения первой беты.

0

23

Пока доступны 4 арифметические операции, позже будет реализована поддержка остальных, планируется переход на использование комплексных чисел.

0

24

http://narod.ru/disk/5510971000/Valenti … 1.rar.html - на тот случай, если вы не смогли получить архив из предыдущей ссылки.

0

25

Сый написал(а):

Описание метода
а заканчивать так:
Конец метода
Начинается описание, а заканчивается метод.

Ну это спорно ... это ближе к человеческому языку... по моему.

0

26

вообще-то да...  Метод ПЕРМЕЩЕНИЕ
....
Конец метода Перемещение.
может так?? большая избыточность по моему нечему.

0

27

Когда свою карту по ЯП составлял пришли идеи по документированию исходников и компонентов ЯП.
1. Каждый компонент сопровождать WikiСправкой на Java
2. по проекту в целом и крупным компонентам делать карту памяти и поддерживать её актуальной
3. Нарисовать Дракон - схему к каждому компоненту
4. Выложить с исходниками.
----
мог бы ты попробовать при создании своего ЯП Валентина попробовать оформить так несколько компонентов или часть программы?? И написать свои впечатления , насколько  это удобно, сложно, делать при написании ПО, насколько удобно пользоваться потом?? стоит ли овчинка выделки??

0

28

А чё мою wiki справку в 23 ю версию не вложил???

0

29

Сый написал(а):

В языке конструкция ЕСЛИ записывается так:
Если что-то, то что-то
При использовании запятых и вопросительных знаков логично было бы в конце предложения ставить и точку.
Есть и множество других моментов, которые хорошо бы упомянуть. Например, нелогично начинать объявление функции, называемой методом, так:
Описание метода
а заканчивать так:
Конец метода
Начинается описание, а заканчивается метод.

Оператор Если не закончен, планируется еще использование ложной ветви. Многие конструкции (но к сожалению не все) допускают в конце точку. Все что после точки на той же строке считается комментарием. Конструкции в форме вопросов имеют на конце вопросительные знаки.
По части описании метода пока не знаю. Конец метода - это просто указание для Валентина, где метод заканчивается. Изменить не очень сложно, приведите свой вариант использования с более человечной формой. Если она окажется действительно таковой, то исправим.

0

30

rusprog написал(а):

Когда свою карту по ЯП составлял пришли идеи по документированию исходников и компонентов ЯП.
1. Каждый компонент сопровождать WikiСправкой на Java
2. по проекту в целом и крупным компонентам делать карту памяти и поддерживать её актуальной
3. Нарисовать Дракон - схему к каждому компоненту
4. Выложить с исходниками.
----
мог бы ты попробовать при создании своего ЯП Валентина попробовать оформить так несколько компонентов или часть программы?? И написать свои впечатления , насколько  это удобно, сложно, делать при написании ПО, насколько удобно пользоваться потом?? стоит ли овчинка выделки??

Напишите поподробнее, что Вы имели ввиду? По второму вопросу будет утомительно, у меня нет четкого плана компонентов. В частности последние изменения в плане рекурсии затронули многие блоки - определение типов операндов, разбор выражений, передача параметров при вызове метода, регистрация методов при старте, вызов методов оформлен в самостоятельный блок, добавлен стек вызванных методов и кое-что еще по мелочи. Если каждый раз перерисовывать время будет уходить уже на это, а не на разработку программы. Аналогично и 3 пункт. Работа идет как правило модернизацией некоторых блоков и добавлением новых. Однако в последнем случае пришлось провести и  замену.

0


Вы здесь » Языки программирования с русским синтаксисом » Язык Валентина » Интерпретатор языка Валентина