Создание учебного интерпретатора

Любые обсуждения, не нарушающие правил форума.

Модератор: Модераторы

Re: Создание учебного интерпретатора

Сообщение Vadim » 11.01.2009 07:17:18

Andreich
Вообще-то с регистронезависимостью это Микрософт всех с понталыку посбивало.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Создание учебного интерпретатора

Сообщение utkin » 11.01.2009 10:49:49

В общем-то и меня тоже :D Нет разницы в именах переменных Итог и ИТОГ, зато допускаются и английские буквы и некторые знаки тоже.
Что касается всего остального. Вопрос упирается в использовании контрукций к естественной записи и все? А то что все переменные строки и массивы строк на это ни кто не обратил внимания. Хотелось бы узнать мнение по данному вопросу, если можно :roll: .

Добавлено спустя 8 минут 26 секунд:
perlpunk

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


У Вас с этим проблемы? :D Лично я русский язык знаю лучше чем английский (и даже некторые его диалекты :) ). Конечно, я понял, что Вы имели в ввиду. Но во-первых, русский язык изучают и знают многие. Не надо его принижать. А во-вторых, можно на данном этапе ограничиться и территорией Российской Федерации.
utkin
новенький
 
Сообщения: 46
Зарегистрирован: 07.12.2008 13:03:20

Re: Создание учебного интерпретатора

Сообщение Vadim » 11.01.2009 11:04:43

utkin писал(а):А то что все переменные строки и массивы строк на это ни кто не обратил внимания. Хотелось бы узнать мнение по данному вопросу, если можно

Только не думайте, что Вы пионер и Никлаус Вирт в этой области. :)
В PHP можно написать такую сентенцию:
Код: Выделить всё
<?php
  $a1 = "10";
  $a2 = "15";
  echo $a1 + $a2;
?>

И ответ, в отличие от Паскаля, будет 25, а не 1015... А Си вообще обругает программиста с ног до головы. :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Создание учебного интерпретатора

Сообщение utkin » 11.01.2009 11:16:49

Нет, не пионер. Я давал ссылку, там все написано. Это во-первых. А во-вторых, в интерпретаторе имеется конструкция
Вычислим выражение в Х

Если Х переменная, то будет считано ее значение как строки и вычислено (если это возможно), если выражение то будет вычислено оно (с участием переменных, констант и т.д.). Результат будет помещен в КОНТЕКСТ. Мне кажется более мощнее. В ваших программах (для интерпретатора) будет доступен математический разбор и это не стоит Вам ни одной строчки кода (он все равно используется при разборе математических выражений в самом интерпретаторе).

Добавлено спустя 7 минут 58 секунд:
Если содержимое переменных числа они будут складываться автоматически иначе объединяться. Для объединения строк используется &.
Таким образом в интерпретаторе
a1=a1+a2
даст результат 25 в а1
a1=a1 & а2
даст результат 1015 в а1, а можно еще вот так:
a1=a1 & a2 +a2
а1 получит в результате 1030

Добавлено спустя 2 минуты 16 секунд:
А про Си даже речь не идет :) .
utkin
новенький
 
Сообщения: 46
Зарегистрирован: 07.12.2008 13:03:20

Re: Создание учебного интерпретатора

Сообщение Timid » 11.01.2009 20:36:48

Ага, сложить указатели на строки в Си и ждать строковый результат - это "сильно" ;)
Timid
постоялец
 
Сообщения: 290
Зарегистрирован: 21.11.2007 21:33:15

Re: Создание учебного интерпретатора

Сообщение NTFS » 11.01.2009 23:42:10

Ааааххх... Я лежал. Я плакал. Я валялся.
Народ, о чем вы вообще говорите? Какой учебный интерпретатор? Зачем изобретать трехколесный велосипед, к которому надо привыкать полгода, чтобы потом пересесть на машину?
Где вы вообще видели УЧЕБНОЕ оборудование?
На курсах вождения используют старенькие, но реальные машины - с рулем, коробкой передач и двигателем внутреннего сгорания - а не с джойстиком и паровым приводом.
Физики изучают спектры на старом, но обычном спектрографе - таком же, какой стоял (и кое-где стоит) в лабораториях. Никто не изобретает "учебные спектрометры" - они нафиг никому не нужны. Равно как и учебные амперметры, учебные линзы, учебные дифракционные решетки. Они могут быть с меткой "для обучения", но выглядят и работают так же, как и обычное оборудование. Максимум - отличие в точности измерений.
Химики смешивают реальные вещества в реальных колбах. Перегонные кубы... индикаторы... все почти такое же, как на больших заводах.
Математики учатся, используя стандартные кванторы "СУЩЕСТВУЮТ" и "ЛЮБОЙ", а не что-то другое, хотя перевернутые А и Е могут быть и не совсем удобны, особенно для тех, кому эта математика как свинье бисер.
Зачем же учить программистов на псевдоограниченноубоговымученноязыке, когда они потом пойдут работать и будут с матами пересаживаться на Pascal, C, Java?
Чем не устраивает обычный Pascal?
Как? Лышенько, жалко дитяток! Нужно ведь целых десять новых слов выучить, да каких чудных - BEGIN, END, PROGRAM, VAR! Да и обозначения эти дурацкие - := - это присвоить, а = - это сравнить, вот же бредятина! А уж цикл записать - так это вообще голова распухнет.
Нахрен ли нужен программист, если он не в состоянии сразу усвоить жесткие ограничения синтаксиса, принятые в промышленных языках?
Так в чем же дело? Что за идея фикс с учебным языком? Нечем заняться? Я подскажу: сделайте нормальный УМК по тому же Pascal. Начните не с "Hello, World", от которого уже тошнит, а хотя бы с калькулятора, и дальше расписывайте полезные приложения, а не расчет ряда Тейлора, который никому, кроме узких специалистов физмата, нафиг не нужен.
Извините за резкость, но сами подумайте...
NTFS
постоялец
 
Сообщения: 388
Зарегистрирован: 05.11.2007 14:57:50
Откуда: Краснодар

Re: Создание учебного интерпретатора

Сообщение NXP » 12.01.2009 00:13:17

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

Носом чую, что как раз стоит цель научить псевдоограниченномупрограммированию лиц, которые по определению не могут быть программистами :lol:
Аватара пользователя
NXP
постоялец
 
Сообщения: 187
Зарегистрирован: 02.01.2008 16:11:56
Откуда: Воронеж

Re: Создание учебного интерпретатора

Сообщение Timid » 12.01.2009 09:03:27

2NTFS,NXP - Не забывайте разделять три составляющие данного топика - сам язык, метод обучения и "учебную IDE".

Тезис 1 - программировать (алгоритмизировать) могут все. Только "строгий" синтаксис "классических" языков требует "наработки навыков" для создания даже простых программ ("Здравствуй мир" - не в счет) - определение типов, передача параметров, условные конструкции и т.п. Наилучший вариант, который есть (для обучения) - Tcl/Tk. Но даже чуть усложненная программа - это монстр, в котором невозможно разобраться.
Естественный язык + автопреобразование типов - это правильный путь.
Проблему "боговымученности" можно решить, как уже говорилось, написанием транслятора - Эссе->"нормальный язык" или "байткод".
Либо - нужно изобретать новый метод обучения.

Тезис 2 - "УМК - не спасет!" - Уж сколько раз твердили миру - что лень вредна, да только все не в счет...
"Средний" студент не хочет учиться, максимум на что он способен - "читать с листа". Если вы дадите ему учебник - он его положит под мышку (компьютерную), чтобы она "не дергалась". Выхода два - сделать язык "читаемым", либо сделать его наглядным. Тут мы переходим к IDE.

Тезис 3 - все существующие IDE - не для студиусов. Они действительно не решают задачи "обучать и направлять". А, в основном, помогают "ускорить разработку" программы специалистом. Вы думаете это хорошо? Отнюдь.
Почему все любят Mac? Потому что в MacOS поставленную задачу можно решить только одним заранее известным способом! Выучив последовательность шагов в дальнейшем вы будете работать чуть медленнее, чем ваш Виндовый/Линуксовый друг, но если перед вами поставят новую задачу - то вы в ней разберетесь быстрее. Потому что путь всегда один.
Так вот, именно IDE, которое и будет "направлять, посказывать и запрещать лишнее" хотят обучающиеся. Для "классических" языков создание такой IDE - дело весьма непростое. Лучший вариант, упоминавшийся Visual Basic 6. Других то и нет...
Timid
постоялец
 
Сообщения: 290
Зарегистрирован: 21.11.2007 21:33:15

Re: Создание учебного интерпретатора

Сообщение utkin » 12.01.2009 10:53:58

Зачем же учить программистов на псевдоограниченноубоговымученноязыке, когда они потом пойдут работать и будут с матами пересаживаться на Pascal, C, Java?
Чем не устраивает обычный Pascal?


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

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

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


Timid
, я полностью с Вами согласен, Ide действительно необходимо.
utkin
новенький
 
Сообщения: 46
Зарегистрирован: 07.12.2008 13:03:20

Re: Создание учебного интерпретатора

Сообщение NTFS » 12.01.2009 10:55:22

Я повторю еще раз: где вы видели "УЧЕБНОЕ ОБОРУДОВАНИЕ"? Т.е., такое, на котором можно только учиться, но не работать?
Почему учебная IDE должна отличаться от обычной?
Вот пример: Лабораторная работа - изучение спектра железа.
Что идет в начале методички? Правильно - руководство к спектрографу. Посложнее, чем описание синтаксиса Pascal.
Но ведь никто не делает "учебный спектрограф", чтобы упростить задачу студенту. Нет, начинается все с изучения прибора. Прибора, максимально приближенного к обычному промышленному оборудованию.
NTFS
постоялец
 
Сообщения: 388
Зарегистрирован: 05.11.2007 14:57:50
Откуда: Краснодар

Re: Создание учебного интерпретатора

Сообщение Vadim » 12.01.2009 11:16:31

Я полагаю, что учебный адронный коллайдер тоже никто не будет строить, а построят в каждом учебном заведении настоящий, рабочий... :)
При обучении водителей или автомехаников широко используются всевозможные стенды, плакаты и даже (о, ужас!) методические указания в виде брошуры. Никто никого сразу не ведёт с гаечным ключом на 22 курочить настоящий мотор настоящего автомобиля. Спектрометристов по железу никто сразу же не ведёт к настоящему спектрометру, а даёт сначала изучить учебный материал - учебник какой-нибудь. И только самая последняя стадия - работа непосредственно с оборудованием.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Создание учебного интерпретатора

Сообщение NTFS » 12.01.2009 11:28:59

Все правильно. Я и говорю, что все начинается с учебников. А не с учебных моделей. После того, как ученик изучил методические указания, ему сразу дают рабочее оборудование. А не макеты. Здесь же, как я понял, пытаются собрать именно макеты - язык, который не будет использоваться как промышленный, и IDE, которая нужна только для обучения, но не для работы.
NTFS
постоялец
 
Сообщения: 388
Зарегистрирован: 05.11.2007 14:57:50
Откуда: Краснодар

Re: Создание учебного интерпретатора

Сообщение Vadim » 12.01.2009 11:52:19

NTFS писал(а):После того, как ученик изучил методические указания, ему сразу дают рабочее оборудование. А не макеты.

Увы, друг мой, когда я учился нас никуда кроме как за учебные макеты в виде гиперЭВМ ИЗОТ и персональных ДВК-3М не сажали, хотя в реальности уже нигде на таких не работали (почти нигде... :) )
Вот давайте посмотрим, IBM-286AT в те времена стоил 1 500 долларов, в то время как ДВК-3М стоил 300 долларов. И что выберет учебное руководство по вашему? ;)
Если Вы считаете что с тех пор времена изменились, то я завидую Вашему оптимизму. :)

Добавлено спустя 6 минут 11 секунд:
Учебный интерпретатор - это не совсем макет. Это реальный язык для написания программы за одни маленьким исключением. Вот ядит за него какой-нибудь поэт и без переучивания сразу начнёт писать программу. Потому как программа пишется именно на том языке, именно тем синтаксисом, который ему уже знаком. В то время как на изучение Паскаля ему надо потратить целый месяц. И на этот месяц он лишается своих гонораров.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Создание учебного интерпретатора

Сообщение EmeraldMan » 12.01.2009 15:54:57

NXP писал(а):Естественный язык + авто-преобразование типов - это правильный путь.

В корне с этим не согласен!
Как говорил великий полководец Александр Суворов: "Тяжело в учении - легко в бою".
Паскаль и задумывался для обучения и был создан строго типизированным, чтобы научить людей правильному стилю! Если человек научится так программировать, то потом вообще ему очень просто будет перейти на тот же PHP с авто-преобразованием типов. Иначе - очень не привычно и проблематично...
Изучить самые основы: if, while - согласитесь за день запросто!

Я не выступаю против идеи создавать такой интерпретатор - это полезно и как для саморазвития и просто в дальнейшем можно прикольную тему замутить с тем же микрофоном. Но! ставить цель сделать в таком духе учебный язык нельзя! Это реально только помешает начинающим людям в дальнейшем...
Аватара пользователя
EmeraldMan
постоялец
 
Сообщения: 149
Зарегистрирован: 16.10.2008 08:41:51
Откуда: Белгород

Re: Создание учебного интерпретатора

Сообщение utkin » 12.01.2009 18:57:11

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


А что такое правильный стиль программирования? Концепции структурного программирования всегда носили рекомендательный характер, это так для справки. Не хочешь пиши как тебе нравится. Хочешь тысячи строк кода и международную команду разработчиков пользуйся структурными методами. Паскаль не исключение. Хочешь модули, классы, инкапсуляции и прочее, не хочешь есть goto к примеру. Вам предлагают писать программы определенным образом, но не заставляют это делать.
Основы это не if, while и прочее. Основы это твердое понимание базовых концепций: переменные, циклы, подпрограммы, алгоритм.
utkin
новенький
 
Сообщения: 46
Зарегистрирован: 07.12.2008 13:03:20

Пред.След.

Вернуться в Потрепаться

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10

Рейтинг@Mail.ru