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

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

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


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


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

Сообщений 31 страница 60 из 175

31

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

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

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

0

32

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

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

Я попробую использовать Дракон для своей работы :).

0

33

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

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

Я тоже подозревал что слишком детальное прорисовка в дракон-схемах и картах памяти - слишком трудоёмка. может уменьшить у ровень детализации??

0

34

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

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

идеология использования wiki не подразумевает отдельноё её актуализации под новый релиз, это средство для удобства разработчика и пользователя. Пишешь в вики - план работ и описание компонентов, по ходу работы отмечаешь что зделано, вобщем используешь вики как записную книжку, и черновик, планировщик и ежедневникю.
Перед выходом релиза, удаляешь весь мусор и у тебя остаётся актуальная справочная и система полностью соответствующая тому что ты сделал в программе!! Ничего отдельно вносить не надо, надо наоборот удалить :-).
У tidllyWiki - справа -> ведёт архив изменений и там же в настройках есть галочка "сохранять архивную копию" - что то типа маленькой SVN.

0

35

Пока что работа ведется над всплывающими подсказками. Мне кажется они должны давать некоторое разъяснение по строкам программы.

0

36

http://narod.ru/disk/5579477000/Valenti … 3.rar.html - Очередная версия, со всплывающими подсказками, по тексту. Не доделано, но важна сама идея :). Написаны подсказки для всех конструкций, за исключением математических выражений (не придумал, чего там можно написать умного :))

Отредактировано utkin295 (09-02-2009 19:19:34)

0

37

Спасибо!! Твой проект быстро развивается :) !!!

0

38

Планирую довести до ума подсветку синтаксиса ;). Мне нужна помощь. Логически подсказки не содержат особого смысла (не было времени составлять), показывают очевидные вещи, буду признателен, если кто-нибудь укажет мне на мои ошибки (а я уверен что они имеются).

0

39

Ну что же пока проблемой является только Юникод. Остальное решаемо. Попробую исправить в следующей альфе.

0

40

http://narod.ru/disk/5785519000/Valenti … 4.rar.html - очередная версия, всего помаленьку. Улучшена подсветка, немного почудил с подсказками, ведется работа на вводом данных с клавиатуры (пока в методах нельзя).

0

41

http://narod.ru/disk/5819881000/Valenti … 5.rar.html - очередная альфа. Ввод/вывод реализован на уровне методов. В архиве имеется пример использования. Методы описаны в файле Поддерживаемые конструкции.rtf. Добавлено немного схем в документации (для улучшения восприятия). Один из файлов выполнен в FreeMind, прикольная программка :). В прочем, если у Вас ее нет, там же имеется и просто в Jpege. Обновил Wiki от rusproga.
Реализация ввода/вывода на уровне встроенных методов (а не на уровне стандартных конструкций языка)  усложняет процесс переноса  реализации языка на Линукс и другие платформы, однако вручную по-прежнему осуществимо. Необходимо будет переписать код построения окон. Хотя перенос в Dos также возможен, в дальнейшем этот вопрос учитываться не будет.
Позже попробую использовать в работе Дракон (пока пытаюсь разобраться, что и как).

0

42

http://narod.ru/disk/5941775000/Valentina alfa6.rar.html - очередная альфа, немного исправлений, пара примеров, новые методы. См. в документации.

0

43

http://narod.ru/disk/6204660000/Valentina alfa7.rar.html - очередная версия затронула в основном среду разработки. Улучшения, удобства и прочее фокусы. Доступны горячие клавиши. Ctrl-M вызывает менюшку со встроенными методами. Слегка обновил Вики справку

0

44

http://narod.ru/disk/6318424000/Valentina alfa8.rar.html - новая альфа. Ряд улучшений среды разработки. Однако изменения затронули и интерпретатор. Это связано с увеличением числа конструкций, на которые распространяется множественность конструкций. Планируется ввести новый модуль с целью контроля и анализа содержимого методов. Расширение вычислительных возможностей будет по прежнему осуществляться посредством механизма встроенных методов. Идеи организационного плана будут решаться за счет введения новых конструкций. Общее число строк кода составляет около 20000.

0

45

Меня небыло нектоторое время на форуме, после чего я помтотрел на последние версии Валентины (6 и 8) - прогресс налицо - приятно смотреть на качественно сделанную вещь!

0

46

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

Меня небыло нектоторое время на форуме, после чего я помтотрел на последние версии Валентины (6 и 8) - прогресс налицо - приятно смотреть на качественно сделанную вещь!

К сожалению в языке еще имеются много вопросов. Среда разработки это одно, язык это другое. Первое что необходимо сделать - дать полное строгое описание языка. Второе - к сожалению в текущем состоянии он готов только для простых учебных примеров (так как не закончены некоторые вещи). Среде разработки теперь будет уделяться меньше времени, все изменения будут ближе к языку.

0

47

а когда на нём можно будет писать консольные утилиты (типа как c-shell в Unix)?? или для написания скриптов??
практическое использование - поможет привлечь и новых пользователей и новых разработчиков??

0

48

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

а когда на нём можно будет писать консольные утилиты (типа как c-shell в Unix)?? или для написания скриптов??
практическое использование - поможет привлечь и новых пользователей и новых разработчиков??

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

0

49

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

Первое что необходимо сделать - дать полное строгое описание языка.

С этого и надо было начинать.

0

50

ну батенька - многие идеи приходят по мере реализации :)!!

0

51

Мудрец написал(а):

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

    Первое что необходимо сделать - дать полное строгое описание языка.

С этого и надо было начинать.

К слову я искал строгое описание языка Паскаль (просто он мне ближе чем другие, и более понятен) в Интернете. Не нашел более или менее вразумительного варианта. Когда я уже считал что нашел что-то стоящее, посмотрел описание Begin-End и не нашел :(. В общем-то это не так просто как кажется на первый взгляд. Учитывая сколько лет концепциям Паскаля, то это несколько настораживает.

0

52

http://narod.ru/disk/6535841000/Valentina alfa9.rar.html - новая версия, изменения затронули в основном интерпретатор, имеется рабочий пример создания консольной версии под Виндовс.

0

53

Некоторые обоснования использования русского языка в программировании (на основании печального опыта в Оберонкоре :) )

Основным недостатком использования русского языка в программировании считается тот факт, что русский язык не является международным стандартом в программировании. Следовательно, нет никаких гарантий, что Ваш код будет восприниматься программистами из других стран. Эта проблема действительно существует, но Валентина предназначена для обучения программированию, а не для создания интернациональных проектов. Кроме того, разработка Валентины ведется с учетом возможности использования в качестве языка для конструкций не только русский, но и родственные ему. Этот подход позволяет производить автоматический перевод программ в тот язык, для которого определен словарь конструкций языка Валентина. Кроме того, возможен дословный перевод в неродственные языки (аналогично Рапира, язык фирмы 1С и т.д. используют в качестве операторов руские слова дословно переведенные с английского. Так слово ДЛЯ никак не отражает своей взаимосвязи с циклами.). Такой перевод не отражает тонкостей реализаций алгортима, применительно к конкретной задаче и усложняет восприятие текста программы, но все же возможность существует. 
Кроме того, закладывается принцип "Машина для использования человеком" вместо "Человек для использования машиной". Эта проблема выражена следующим образом. Человек, использующий язык программирования с дословным переводом операторов, работает так: Думай-переводи-пиши. Человек, использующий язык программирования с записями конструкций в форме приближенной к естественной форме, работает так: Думай-пиши.
Разница в "переводи" порождает немало ошибок (часто программист предполагает, что конструкция работает несколько иначе из-за не точного перевода).
Вторым барьером считается использование составных конструкций (вместо КОНЕЦ использование ПРЕКРАТИМ РАСЧЕТЫ и т.д.). Но с чем это связано? Почему конструкции должны быть максимально короткими и состоять из минимального числа слов? Раньше это было связано с объективными причинами (экономия памяти машин), сейчас ресурсы позволяют использовать более сложные конструкции. Лень вводить длинные конструкции не является оправданием. Существуют языки программировния, управление в которых осуществляется одним-двумя символами. Примером является BrauFunck. Удобной для чтения программу, записанной на таком языке, ни как не назовешь. Если Вы хотите свободно читать (и понимать, что более важно), то что сами же написали год назад, имеет смысл использовать более подробную запись. Аналогично, если Вы предполагаете, что Ваш код будет доступен кому-то еще.
Задача - донести до программиста (а программы, как правило, не только пишутся, но и в основном читаются) реализацию данного алгоритма, а не предоставить программу. Это не одно и тоже. 
Аргументом в пользу использования длинных конструкций является спешка при наборе текста программы. Нет, быстрее программа от использования составных конструкций набираться не будет :). Но число ошибок при наборе сократится (речь идет об ошибках логического характера, а не ошибки синтаксиса). Это отчасти и психологический подход - набрать и стереть программу несколько раз теперь будет немного дольше, чем скажем в С. Это должно заставить людей более тщательно думать над тем, что они хотят сделать непосредственно перед тем как приступить к реализации алгоритма на данном языке.

0

54

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

К слову я искал строгое описание языка Паскаль

К слову, плохо искали. Я искал по фразе "pascal language report", и приемлемый результат был под номером 2 в результатах поиска.
http://www.fh-jena.de/~kleine/history/l … Report.pdf

Отредактировано Мудрец (11-03-2009 22:36:36)

0

55

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

0

56

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

Я имел ввиду описание на русском языке.

Поищите, поисковики есть для этого.

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

Некоторые обоснования использования русского языка

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

0

57

Мудрец написал(а):

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

Благодарю. По-крайней мере я пытаюсь получить что-то новое, а не просто неконструктивный флейм :).

0

58

Мудрец написал(а):

Поищите, поисковики есть для этого.

Да я уже поискал, прежде чем отписаться. Либо описание слишком сложное и не дает четкого понимания, либо не полное, а иногда откровенно корявое.

0

59

За одно можете поискать такую штуку как Coco/R (Компилятор Компиляторов). Идёт весь с исходниками и примерами. Есть версия и под Дельфи.
Поигравшись с ним Вы поймёте почему так важно составить формальное описание синтаксиса языка. Coco/R позволяет по формальному описанию синтаксиса генерировать практически готовый компилятор, а именно сканер и парсер. Для получения полного компилятора нужен ещё генератор кода. Вам он по-идее даже не нужен, так как у Вас интерпретатор.

0

60

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

Либо описание слишком сложное

Самое простое описание у языка Оберон-2, который Вы так не любите.

0


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