XC>>4. Самое главное — в чем фишка-то? B>Если б фишка была она я бы не вылезал с новым языком. Фишек там много. Основные, я вынес в первые три раздела. Это правила именования и формирования текста.
По-русски можно? Что это значит? Желательно на примерах
B>Правило объединения объектов в группы и реализация объектов. Т.е. правила создания объектов. Это основное.
Что это такое? На примере, пожалуйста.
B>Есть еще сильная вещь (обрати внимание) события. Это здорово облегчает программирование и стандартизирует взаимодействие между объектами.
Smalltalk, Erlang, Scala — уже есть. Если не изменяет память, то еще Go и в Node.js тоже есть
B>Кстати, позволяет создавать автоматы. Тоже интересная фича.
Автоматы позволяют любые языки. Некоторые еще и облегчают (gen_fsm из Erlang'а)
B>Ну, оператор, например, новый есть Swith.
Что это за оператор, что он делает, и зачем он нужен?
B> Операция обмена тоже новая фишка.
Что за операция обмена?
B>Распараллеливание с помощью групп..
Ээээ. Чего?
Распараллеливание: Erlang, Go
B>А выполнение групп с надстрочным значением?
Что такое группа с надстрочным значением?
B>Та много.. Вот хотя бы первые три концепции кто б осилил..
А ты бы хоть один пример по каждой из этих концепций привел
Здравствуйте, x-code, Вы писали:
XC>Здравствуйте, batu, Вы писали:
B>>Так вот что-то же происходит! Лексемы таки образуются! А ведь это объекты! И не только для синтаксического анализа. Вполне реально для трансляции нам необходимо будет анализировать свойства этих объектов. Например, у меня нет требования уникальности имени. А для некоторых классов уникальнность только внутри класса. Да и текст от имен надо будет отличать. А это все в свойствах лексемы! Почему, например, нельзя одинм именем назвать и класс и объект? Ведь по положению в синтаксисе мы вполне можем разобраться. А если есть неоднозначность, то необходимо указать. Как? Да изменением свойств вот этой самой лексемы! В обычном языке один и тот же текст может являться и глаголом и существительным. Классом и объектом! Например: "Каждый мужчина должен построить дом...." здесь "дом" в смысле класса объектов. А в фразе "Вот дом в котором я живу." слово дом применяется как объект. И по английски "Cup of tee" и "Drink tea" tea- в первом случае объект, а во втором класс. B>>Короче лексемы нам очень даже нужны как объекты, и нужен доступ для редактирования (т.е. для изменения их свойств) и анализа свойств лексемы. Анализом, занимается, как ты и сказал, синтаксический анализатор. И, вообще, вдумайся. Ты же текст воспринимаешь не в буквах, а в лексемах. Ну, один в один как синтаксический анализатор.
XC>Ты ОПРЕДЕЛЕННО путаешь процесс компиляции и процесс исполнения программы XC>Изучи как осуществляется процесс компиляции. Разберись с этапами. XC>Лексемы образуются при лексическом анализе. Это просто разбиение текста на кусочки, не более того! Каждому кусочку ставится в соответствие код типа из множества {Идентификатор, Число, Строка, Оператор, Разделитель, Комментарий}. И для операторов и ключевых слов — еще одно число, внутренний номер оператора/ключевого слова. Числа преобразуются в бинарную форму, строки преобразуются с учетом escape-последовательностей, комментарии и разделители выкидываются. И все!
XC>То, что ты описываешь, отдаленно напоминает описание процесса компиляции программы, при этом в твоем описании все этапы перемешаны совершенно немыслимым образом. XC>Какое это отношение имеет к "новому языку программирования" — вообще непонятно.
XC>В общем, почитай ту же книгу Дракона что-ли
Ну, читал. Хорошая книга. Только почему компиляцию только так рассматривать? Мне кажется логичным применить объектный подход еще при редактировании, и тем более при компиляции. Ну, и на этапы компиляции тоже логичнее смотреть с объектной точки зрения.
Re[8]: А вот вам и новый язык. Зацените. Можно ругать.
Здравствуйте, x-code, Вы писали:
XC>Здравствуйте, batu, Вы писали:
B>>А теперь проблема! B>>Int I=10 что создаст при трансляции? Обычно в языках в такой форме синтаксиса создается (скрытая от глаз) инструкция срабатывающая во время выполения (а не трансляции), и создающая динамически целую переменную где-то в выделеной области памяти. B>>У меня создается именно целое значение =10 в этом месте. Для того, что бы во время выполнения создать такое значение (или такие значения если это в классе и есть вариант одновременного вызова) необходимо иметь еще одну инструкцию которую необходимо применить к этому объекту для динамического создания. И эта инструкция есть. Даже три! New, Dim и Var. Т.е. если мы хотим создать динамичекий объект о время выполнения это выглядит так New Int I=10.
XC>Не понял в чем проблема. XC>Ты предлагаешь 'int i=10' сделать объявлением константы, не порождающим никакого кода? А смысл? Чем это отличается от конструкции с макросами на том же си? XC>
XC>#define I 10
XC>int i = I;
XC>
Совершенно верно. Int i=10 или просто 10 порождают один и тот же объект. С именем или без. А вот Dim Int I=10 это уже порождает целое число с динамическим размещением. Я ж говорю что на моем языке можно не только программы писать. Но и любые документы. Таким образом for i=10 to 20 порождает объект-инструкцию класса For. Хотя можно и к нему применить объект Dim...
Re[6]: А вот вам и новый язык. Зацените. Можно ругать.
B>>Так там есть примеры. B>>Могу здесь по быстрому. Но, все нюансы (а они не нюансы) будет сложно. Вау.. Здесь не возможно. Скобки и надстрочные значения я здесь не смогу привести. Ну, почему бы не посмотреть примеры в документе?
XC>Еще раз: в документе непонятно. Напиши hello world на Lada, и еще пару примеров: реализацию двусвязного списка или очереди, сортировку какую-нибудь... С комментариями, и — повторюсь — со СРАВНЕНИЕМ твоей реализации и существующих.
XC>Я вот дошел до первого примера и уже в ступоре XC>
XC>For I=30 To N {J +:= 1}
XC>
XC>им дальше по тексту XC>
В результате работы синтаксического анализатора из последовательности лексем будет создан объект класса For с именем I, который в свою очередь может нуждаться в реализации
XC>а я то думал это обычный цикл с параметром...
XC>Это какая-то попытка запихать инструкции (операторы языка) в парадигму ООП?
Да. Только почему "запихать"? Так оно и есть..Объект-инструкция..
А почему бы и нет?
Re[4]: А вот вам и новый язык. Зацените. Можно ругать.
Здравствуйте, Mamut, Вы писали:
B>>Не знаю где ты смотришь, но здесь http://files.rsdn.ru/91645/LadaNew.rar сравнительно свежая версия
M>Нет, чтобы выложить это на Google Code/GitHub/Bitbucket... Вопросов о свежести не возникало бы
Ну, извини. Не могу же я быть везде.. Скромность..
Re[5]: А вот вам и новый язык. Зацените. Можно ругать.
Здравствуйте, batu, Вы писали:
> Я буду отвечать на вопросы.
Я так и не понял, прочитав тред и (бегло) LadaNew. Чем оно облегчает мне жизнь? Что в нём есть такое, что я хотел бы использовать этот язык а не явы, питоны, скалы и груви, руби, эрланги, лиспы?
Что там с обобщенным программированием? Все большие примеры(та же сортировка) явно задают тип аля Integer.
Игнорируя воду. Мы можем увидеть не совсем тривиальный кусок кода? Крестики-нолики, например.
Ну или хотя бы сравнение в стиле "вот код на окамле, вот аналог на ладе"
Re[7]: А вот вам и новый язык. Зацените. Можно ругать.
B>>>Не знаю где ты смотришь, но здесь http://files.rsdn.ru/91645/LadaNew.rar сравнительно свежая версия
M>>Нет, чтобы выложить это на Google Code/GitHub/Bitbucket... Вопросов о свежести не возникало бы B>Ну, извини. Не могу же я быть везде.. Скромность..
Что значит везде? Достаточно выложить код один раз на тот же GitHub и не требовать, чтобы все следили за тем, где, когда и кем выложен новый .rar-файл
M>>А ты бы хоть один пример по каждой из этих концепций привел B>Здесь здесь посмотри. Там и подробней и с примерами
Там есть многостраничные описания. Причем использующие не общепринятые названия, а собственноручно придуманные термины. Хочется, чтобы было в таком стиле:
У нас есть такая-то задача...
Пример решения ее в Lada...
Это лучше, чем аналогичное решение в других языках потому что...
Потому что «пример» в том стиле, что используется в документе:
Пример 1.3. Именование объекта типа Integer присвоением значения Ширина свойству Name.
10 ‘ Name=: «Ширина» ’
Напоминает только Кэролловское:
— ...Заглавие этой песни называется "Пуговки для сюртуков".
— Вы хотите сказать — песня так называется? — спросила Алиса, стараясь заинтересоваться песней.
— Нет, ты не понимаешь, — ответил нетерпеливо Рыцарь. — Это заглавие так называется. А песня называется "Древний старичок".
— Мне надо было спросить: это у песни такое заглавие? — поправилась Алиса.
— Да нет! Заглавие совсем другое. "С горем пополам!" Но это она только так называется!
— А песня эта какая? — спросила Алиса в полной растерянности.
— Я как раз собирался тебе об этом сказать. "Сидящий на стене"! Вот какая это песня! Музыка собственного изобретения!
Здравствуйте, maykie, Вы писали:
M>Здравствуйте, batu, Вы писали:
>> Я буду отвечать на вопросы.
M>Я так и не понял, прочитав тред и (бегло) LadaNew. Чем оно облегчает мне жизнь? Что в нём есть такое, что я хотел бы использовать этот язык а не явы, питоны, скалы и груви, руби, эрланги, лиспы?
M>Что там с обобщенным программированием? Все большие примеры(та же сортировка) явно задают тип аля Integer.
M>Игнорируя воду. Мы можем увидеть не совсем тривиальный кусок кода? Крестики-нолики, например. M>Ну или хотя бы сравнение в стиле "вот код на окамле, вот аналог на ладе"
Есть примеры.. Я сделаю подборочку типа Хелло ворд..Для быстрого вхождения. Работу уже начал, но она не закончена. Пока можно обойтись примерами теми что там есть. Особенно в разделе где события может быть интересно.. И где реализация определений (там очень отдаленно возможности лиспа). Логическое программирование не помню есть ли там примеры.. но там похоже на Пролог. Только синтаксис свой.
Сори. Не все сразу..
Re[8]: А вот вам и новый язык. Зацените. Можно ругать.
Здравствуйте, Mamut, Вы писали:
B>>>>Не знаю где ты смотришь, но здесь http://files.rsdn.ru/91645/LadaNew.rar сравнительно свежая версия
M>>>Нет, чтобы выложить это на Google Code/GitHub/Bitbucket... Вопросов о свежести не возникало бы B>>Ну, извини. Не могу же я быть везде.. Скромность..
M>Что значит везде? Достаточно выложить код один раз на тот же GitHub и не требовать, чтобы все следили за тем, где, когда и кем выложен новый .rar-файл
Так выложи. Я разрешаю.. Только ссылку дашь.. Я не в курсе где это.. Кстати, на этом сайте я тоже так появился. Только тут выложили материал меня не спрашивая, а потом дали ссылку
Re[9]: А вот вам и новый язык. Зацените. Можно ругать.
B>>>>>Не знаю где ты смотришь, но здесь http://files.rsdn.ru/91645/LadaNew.rar сравнительно свежая версия
M>>>>Нет, чтобы выложить это на Google Code/GitHub/Bitbucket... Вопросов о свежести не возникало бы B>>>Ну, извини. Не могу же я быть везде.. Скромность..
M>>Что значит везде? Достаточно выложить код один раз на тот же GitHub и не требовать, чтобы все следили за тем, где, когда и кем выложен новый .rar-файл B>Так выложи. Я разрешаю.. Только ссылку дашь.. Я не в курсе где это.. Кстати, на этом сайте я тоже так появился. Только тут выложили материал меня не спрашивая, а потом дали ссылку
Зачем это делать мне? Ты автор текста, не я. Или ты везде будешь давать ссылки на документы типа LadaNew.rar, LadaNew2.rar, LadaNew_Last.rar, LadaNew_Last_FinalVersion.rar и т.п.? А потом говорить следющее: http://rsdn.ru/forum/philosophy/3900646.1.aspx
Так у тебя будет возможность выкладывать новые версии в одно и то же место, а тем, кого это, возможно, заинтересует, возможность постоянно иметь у себя самую последнюю версию.
Насчет не в курсе, где это, у меня в сообщении достаточно информации, чтобы найти: github.com, bitbucket.org, code.google.com
Здравствуйте, Mamut, Вы писали:
M>>>А ты бы хоть один пример по каждой из этих концепций привел B>>Здесь здесь посмотри. Там и подробней и с примерами
M>Там есть многостраничные описания. Причем использующие не общепринятые названия, а собственноручно придуманные термины. Хочется, чтобы было в таком стиле: M>
M>У нас есть такая-то задача...
M>Пример решения ее в Lada...
M>Это лучше, чем аналогичное решение в других языках потому что...
M>Потому что «пример» в том стиле, что используется в документе: M>
M>Пример 1.3. Именование объекта типа Integer присвоением значения Ширина свойству Name.
M>10 ‘ Name=: «Ширина» ’
M>Напоминает только Кэролловское: M>
M>— ...Заглавие этой песни называется "Пуговки для сюртуков".
M>— Вы хотите сказать — песня так называется? — спросила Алиса, стараясь заинтересоваться песней.
M>— Нет, ты не понимаешь, — ответил нетерпеливо Рыцарь. — Это заглавие так называется. А песня называется "Древний старичок".
M>— Мне надо было спросить: это у песни такое заглавие? — поправилась Алиса.
M>— Да нет! Заглавие совсем другое. "С горем пополам!" Но это она только так называется!
M>— А песня эта какая? — спросила Алиса в полной растерянности.
M>— Я как раз собирался тебе об этом сказать. "Сидящий на стене"! Вот какая это песня! Музыка собственного изобретения!
Кэролл не был глуп. А тема насчет имени объекта очень любопытная.. Понятно, что имя это значение некоторого свойства объекта. Так же понятно, что значение этого свойства где-то присваивается. Как правило, в момент создания объекта. До этого момента имя (как и вся программа) в общем случае является текстом. Но текст и имя имя это разные вещи. Это очевидно когда мы, например, отправляем на печать текст, то отправляем текст, а по имени мы отправляем значение объекта с этим именем. Это различие интуитивно очевидно. Так текст может иметь вложения. Классический пример это прямая речь. Хотя то, что мы отправляем на печать, тоже семантически отделено от текста программы и имеет собственную семантическую ценность будучи выведеной на печать. Я это подчеркиваю так настырно, потому как операторы у меня тоже объекты и могут иметь имена и оператор, например Exit указывает имя объекта-оператора (а может и класса) из которого необходимо выйти. Получается например такая картина.
For i=0 to n
...
Exit I
То в операторе Exit I-это имя оператора For, а не имя переменной.
Re[10]: А вот вам и новый язык. Зацените. Можно ругать.
M>Так у тебя будет возможность выкладывать новые версии в одно и то же место, а тем, кого это, возможно, заинтересует, возможность постоянно иметь у себя самую последнюю версию.
M>Насчет не в курсе, где это, у меня в сообщении достаточно информации, чтобы найти: github.com, bitbucket.org, code.google.com
Тогда все равно сори.. Я этим не позже займусь
Re[6]: А вот вам и новый язык. Зацените. Можно ругать.
Здравствуйте, maykie, Вы писали:
M>Я так и не понял, прочитав тред и (бегло) LadaNew. Чем оно облегчает мне жизнь? Что в нём есть такое, что я хотел бы использовать этот язык а не явы, питоны, скалы и груви, руби, эрланги, лиспы?
M>Что там с обобщенным программированием? Все большие примеры(та же сортировка) явно задают тип аля Integer.
M>Игнорируя воду. Мы можем увидеть не совсем тривиальный кусок кода? Крестики-нолики, например. M>Ну или хотя бы сравнение в стиле "вот код на окамле, вот аналог на ладе"
Тут целая толпа ждет хоть малейшего примера, который хоть что-то показывает. В ответ только отсыл на простыню с водой(еще и в кривом доке в архиве) и утверждения, что это платформа для всего-всего-всего. Но при этом ни малейшего примерчика, который бы показал преимущества перед любой существующей платформой — увы, нет.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[12]: Вот основные концепции. Затем три первых раздела. Н
Здравствуйте, Aviator, Вы писали:
A>Здравствуйте, batu, Вы писали:
A>Что-то не понял, может для столь инновационного языка надо начать с разработки новаторской операционной системы? Зачем же держать себя в рамках ?
Да ну давай, какая же новаторская ОС на старом железе? С кремния начинать надо
Re[13]: Вот основные концепции. Затем три первых раздела. Н
Здравствуйте, Aviator, Вы писали:
A>Здравствуйте, batu, Вы писали:
A>Что-то не понял, может для столь инновационного языка надо начать с разработки новаторской операционной системы? Зачем же держать себя в рамках ?
Может... Займись.