• Лови промокод з яким знижка 50 грн - promo50grn

А вот вам и новый язык. Зацените. Можно ругать.

Статус: Offline
Реєстрація: 29.01.2007
Повідом.: 236
А вот вам и новый язык. Зацените. Можно ругать.

Хотелось заменить все языки одним. Фактически получилось два. Один TLL его можно назвать теговым. Каждый тег-это объект. Второй язык высокого уровня LADA, однако существует взаимно-однозначное соответствие этих языков. Потому можно считать TLL ассемлером LADA. Понятно, что для работы этих языков необходима виртуальная машина, но об этом позже.
Общие слова обо всем этом в файле Введение. И два файла с описанием языков. Переглянути вкладення 717643 Переглянути вкладення 717650 Переглянути вкладення 717661
Ссылаться на авторитеты не буду. Скажу только что на лето планируется все это реализовать. Собирается команда. Хотелось бы конструктивной критики. С уважением ко всем, кто уделит время на чтение и выскажет свою точку зрения.

Тишина. Хоть кто-то скачал что б почитать?:) Так спорили о перспективном языке.. Хоть бы обматюкали.. и то легче б стало..
 
TLL
Что не понравилось:
1. много букв при объявлении класса
2. не до конца понятно ооп, т.е не увидел инкапсуляции например
3. Мелочи ну раз нравится теги может не обязательно так извращаться
<Symbol Name="Пробел" Index=40 Symbol>
может хоть
<Symbol Name="Пробел" Index=40 />
А лучше так :)

<Имя класса
<privat:m,d,d,f>
<public:
<bbb // в секции приват объявлена функция bbb
c=5 //никаких ; переход на следующую строку бейсик фореве
return t
>
>
/>
 
Миша, поздравляю с тем, что наконец-то первые результаты достигнуты. Ты к этому долго шел. Честно, я сильно сомневался, что результаты будут :), поэтому, собственно, и ушел. :(
После беглого осмотра вижу, что поменялось практически всё. Сейчас к сожалению времени нет прочитать и вникнуть полностью во всё, но на досуге обязательно прочту. Удачи и вдохновения в дальнейшей разработке ;)
 
TLL
Что не понравилось:
1. много букв при объявлении класса
2. не до конца понятно ооп, т.е не увидел инкапсуляции например
3. Мелочи ну раз нравится теги может не обязательно так извращаться
<Symbol Name="Пробел" Index=40 Symbol>
может хоть
<Symbol Name="Пробел" Index=40 />
А лучше так :)

<Имя класса
<privat:m,d,d,f>
<public:
<bbb // в секции приват объявлена функция bbb
c=5 //никаких ; переход на следующую строку бейсик фореве
return t
>
>
/>

1. Букв много, но не больше чем необходимо. И потом это ж ассемблер.. Его надо знать, но не обязательно на нем писать.
2. Каждый тег это объект. Инкапуляцию реализует выполнение объекта класса Class и Type. Замечу, что Class создает объекты, а Type создает значения. Разница очевидна для операций сравнения, равенства и присваивания. Объект копирует ссылку, а значение копирует значение.
3. Сокращение закрывающей скобки не применил потому как объекты могут содержать другие объекты. Трудно контролировать вложения. Да и в тексте выглядит более наглядней. Насчет трудностей в при написании беспокоится не приходится, так как при создании объекта редактор сразу создает отрывающую и закрывающую именованую скобку и подсказывает имена свойств допустимых в этом классе. А так же подсказывает допустимые значения этих свойств. Т.е писать легко.
Есть еще одна причина. Применение лишних знаков "/". Он еще пригодится. Кроме того, применение знаков "<" и ">" тоже весьма искусственно. Не для этих целей они придумывались. Идеальным вариантом было бы придумать новый знак. Фактически это знаки "начало" и "конец" объекта. И кодировка их есть. Нет графического изображения. Потому оставил как принято.
Остальное не буду комментировать. Посчитал шуткой.


Не надо грузить язык фукциями, операторами и т.д. Каждый тег это тупо объект и ничего больше. Потому только свойства. Некоторые базовые теги, конечно, что-то выполняют (например, арифметические операции) являясь операторами. Но, с точки зрения языка TLL они такие же объекты.
 
меня все это как-то пугает, если не сказать настораживает, эволюция шла от функций к объектам, а вы функции убрали, насчет инкапсуляции я немного не понял, я имел ввиду, как вызывать внутри одного класа функцию другого? и уровни доступа к этим функциям, по Вашим словам, у Вас вроде, как все паблик получается? по мелочам, то ,что редактор добавляет тег в конце класно, но я надеюсь, у вас будет возможность откомпилирвать код без всяких ide :)
 
меня все это как-то пугает, если не сказать настораживает, эволюция шла от функций к объектам, а вы функции убрали, насчет инкапсуляции я немного не понял, я имел ввиду, как вызывать внутри одного класа функцию другого? и уровни доступа к этим функциям, по Вашим словам, у Вас вроде, как все паблик получается? по мелочам, то ,что редактор добавляет тег в конце класно, но я надеюсь, у вас будет возможность откомпилирвать код без всяких ide :)

Вы про какой язык? Про TLL? Так функция тоже объект. Правила образования объектов понятны?
А инкапсуляция и прочие радости классов в языке Lada. Раздел 4. Реализация. Наследование. Интерфейсы. Роли. Стили. Модели. Сценарии.

ну, имейте совесть.. почти 200 человек зашло и ни одного замечения? Все в штаны насрали?
 
Да странно. "Многобукаф" наверное...никто осилить не может.
 
Да странно. "Многобукаф" наверное...никто осилить не может.

Если въехать, то там все просто. И читаться должно как художественная литература.. Я не понимаю почему ни одного вопроса. А ведь интересно было б получить замечания от уважаемого форума.. Ведь это предполагается делать.. А это работа.. Я вроде сказал что команду собираю.. Для интересующихся организую семинары в ХГУ.
 
Вопросы :)

1. зачем все это?
2. в чем преимущества перед существующими языками?
3. области применения языка?
 
Вопросы :)

1. зачем все это?
2. в чем преимущества перед существующими языками?
3. области применения языка?

1. Это не только язык, но и система. Новый подход к программированию позволяет решать задачи принципиально не решаемые в системе windows, linux и т.п. В частности задача электронного документооборота. Обосную отдельно.
2. Преимущества в простоте и мощности. Этот язык одновременно содержит элементы императивного, фунционального, логического программирования и реализует создание, редактирование и хранение обычных текстовых документов и любых других данных (функции языков HTML, XML и т.д.).
3. Область применения любая. От построения систем реального времени благодаря механизму событий, до баз знаний, данных и т.п. и т.д. Основной фишкой является единый формат всех данных. Универсальный редактор являющийся одновременно и транслятором, браузером, и вообще всем, что принято для работы с данными. В частности Exel, UML и т.д.
Благодаря единому формату и единому механизму управления основанному на классах, приложений нет как таковых. Есть классы и библиотеки классов.
Есть еще тонкая деталь. Обычные ООП языки не позволяют создавать объекты содержащие свойства, функции и события не определенные в классе. Это усложняет применение языков в конкретной предметной области. В языке LADA при создании объекта можно дополнить его любыми свойствами и методами не содержащимися в классе.
Можно и дальше писать.. Но для начала этого достаточно. Спрашивайте. Буду отвечать

К этому могу добавить что на языке Lada возможно описание грамматик вместо форм Бэкуса-Наура. И не только описать, а после описания превратить это описание в работающий транслятор языка. Нет просто анализатор синтаксиса как это делает Lex, а полностью работающий транслятор.. Напомню, что редактор и отладчик универсальный..
 
Сам по себе механизм событий не является достаточным условием построения системы реального времени.
Но, является необходимым. Если не успевает обработка события, то выход либо в увеличении мощности, либо распараллеливании (эти средства присутсвуют), либо сушите весла. Так что дело системы дать легкий и простой механизм, а не гарантировать всё и вся.
 
не вижу в этом никакого смысла.
простите, вы на этой "Ладе" и драйвера писать будете? или обновления ОС?
зачем изобретать велосипед заново?
уже и так достаточно много изобретено. тот же SmallTalk, Obj-C, XML, HTML, C# и еще куча очень страшных слов :)
Виртуальная машина опять же ... накой черт она нужна? У всех виртуальных машин одни и те же недостатки, и в вашей скорее всего тоже самое будет. Резон это делать? Только для того что "Это сделал Я"?.
 
не вижу в этом никакого смысла.
простите, вы на этой "Ладе" и драйвера писать будете? или обновления ОС?
зачем изобретать велосипед заново?
уже и так достаточно много изобретено. тот же SmallTalk, Obj-C, XML, HTML, C# и еще куча очень страшных слов :)
Виртуальная машина опять же ... накой черт она нужна? У всех виртуальных машин одни и те же недостатки, и в вашей скорее всего тоже самое будет. Резон это делать? Только для того что "Это сделал Я"?.

Вы мелко берете. Это действительно новый подход. И вопрос драйверов, это вопрос класса устройств.. А Lada допускает группу классов. Например группа модемов.. А каждый класс модемов может иметь отличия.. Описание класса и, таким образом, драйвер по большому счету должен содержаться в самом устройстве..И обновляться там же..В себе.. Для этого есть в языке механизм программирования автоматов. Это для случаев когда проектируется специальное устройство.. Типа видеокарты.. А можно и динамически в устройство перегрузить класс, и он будет выполняться как часть программы..ну, как автомат или объект класса.. Это принципиально не сложно. Неоходимо только стандарт на электрическую часть.. Где свойства, где события на шине.. А можно и то, что есть привести к стандартам lada.. А потом посмотрим что будет потом... Это по любому будущее.. и к нему надо приходить... Как минимум драйвера не будут теряться от устройств.. Загрузил описание класса с самого устройства и работай..

Кстати, такой поход загрузки устройства имеющего свой процессор и память позволяет реализовывать системы реального времени. Просто несколько таких устройств загружаются описанием своего класса и выполняються как объекты независимо.. Десять их или двадцать или сто.. Но они работают в реальном времени параллельно и синхронизируються событиями..

Как, например, такая схема.. Есть звуковая карта, но она временно свободна.. Мы в нее загрузили описание класса который нам сейчас необходим, и это устройство поработало как параллельный процесс..
 
Срочно патентуйте! Билл Гейтс и Стив Джобс удавятся от зависти!

А можно будет, к примеру, загрузить в звуковую карту класс сетевой и прошвырнуться по Инету? Только непонятно, куда витую пару втыкать... А, придумал! Мы сразу загрузим класс с Wi-Fi и все дела. ;)
Загрузить можно. И это делается сейчас в мобилках. Естественно, если нет приблуды, то она не рабтает. Так К750i можно прошить как w850 и наоборот. Если в w850 нет фотоаппарата, то он и не работает.. А в К750 нет некоторых кнопок, которые есть у w850. Модели могу путать.. Но кажись так.. А патентовать есть что.. Но, сначала надо сделать.. Хотелось бы не общих вопросов, а уже по существу документов. Понимаю что все заняты. Но, не прочитав, нечего обсуждать.. А общие слова, они только слова..

Здесь по большому счету ничего нового. Вопрос только в соблюдении стандартов.
 
Бегло просмотрел примеры кода:

  • сложно набирать код. О чём Вы думали, когда добавляли символ (оператор swap)
    attachment.php
    ?
  • Data J: Int32 ' Тридцати двух байтное значение

    Лично я считал, что переменная типа Int32 должна быть размеров в 32 бита... :confused:
 

Вкладення

  • arrows.PNG
    arrows.PNG
    242 байт · Перегляди: 986
Бегло просмотрел примеры кода:

  • сложно набирать код. О чём Вы думали, когда добавляли символ (оператор swap)
    attachment.php
    ?


  • Лично я считал, что переменная типа Int32 должна быть размеров в 32 бита... :confused:

Это как пример. Знак не догма.. А по поводу сложности набора продумана клавиатура тип Лебедева где изображение знаков меняется в зависимости от контекста. В принципе это не сложно. И предусмотрено. Так универсальный редактор имеет несколько панелей. Общий, текущей библиотеки и активного объекта.
Общая панель имеет стандартный набор элементов управления открыть, сохранить файл и т.п..
Панель библиотеки содержит набор элементов управления соответсвующим ее общим свойствам.
Панель объекта содержит набор элементов управления соответствующий свойствам активного объекта. Описание свойств берется из описания класса. Так как редактирование по сути и есть изменение свойств объекта, то весь процесс редактирования и состоит в манипуляциях с соответствующими элементами управления. Так свойства имеющие булевое значение представлено кнопками. Свойства имеющие перечислимое значение - раскрывающимися списками.. и т.д.. Создатель класса может предоставить свой механизм редактирования свойств объекта отличный от стандартного набора.
Это я к тому, что использование знаков в языке может так же динамически меняться.. Почти как на экране тачскрин. Это расширяет возможности клавиатуры.. Не говоря уже про програмистские заморочки.. Типа нажал комбинацию знаков и на экране появились знаки которых нет в клавиатуре.. Это не вопрос, короче говоря.. Щас нам подскажут еще пару сотен вариантов..

По поводу переменной INT32.. Та опять.. разве вопрос в названиях? У меня все крепче зреет уверенность, что можно обойтись вообще без двоичных представлений. Вот как в Эрлане.. Это уже с разработчиками обсудим как будет эффективней.. Аргументы есть в пользу Эрлановского подхода.

Сори. Редактирование объекта заключается не только в изменении свойств, но и в удалении и создании объекта. Удаление очевидно. Делаем объект активным (нажимаем мышкой) и клавиша Del. Создание объекта возможно двумя методами. Самый простой это из переносом (дроп-даун) из панели классов (заполняется классами библиотеки), и второй вариант набиранием текста. Каждая синтаксическая конструкция порождает объект. Согласно грамматике языка. Причем это не обязательно буквы.. Грамматику могу составлять любые объекты. Например, электрические элементы. Конденсаторы, микросхемы и т.д.
 
гг Язык написаный на xml))) Идея неплоха, но безсмыслена... xml и С++ уже создали, придумать что то новое в языках может и возможно, но наверное каким нибудь крутым математиками и программистам. А этот язык можно написать и продать студенту как лабораторную работу)))
 
гг Язык написаный на xml))) Идея неплоха, но безсмыслена... xml и С++ уже создали, придумать что то новое в языках может и возможно, но наверное каким нибудь крутым математиками и программистам. А этот язык можно написать и продать студенту как лабораторную работу)))

Где вы увидели xml? И, я как раз математик. Объясню в чем недостаток XML для применения в ООП. Вот вы начали писать тег A и изменяете шрифт тегом B. Так вот получается что тег А (и так же тег B) нельзя воспринимать (или выполнять или хранить) как целостный объект. В xml он (Тег А) воспринимается как последовательность и так же выполняется. Последовательность с определенными правилами для выполнения. Правильно было бы иметь целостный объект. От последовательности мы никуда не денемся, так как хранение данных и загрузка все равно происходит последовательно. Но, хотелось бы что б это были целостные объекты. В такой формулировке если тег А-суть объект, то изменение шрифта должно происходить изменением свойства "Шрифт" этого объекта, а не чем-то даже не могу сказать чем.. в середине не понятно чего в объектной концепции.
Если быть строгим, то в нашем примере если мы изменяем шрифт в середине текста, то должно получиться три объекта. Один с исходным значением шрифта, затем один с измененным шрифтом, и за ним опять объект с исходным значением шрифта.
Этот же нюанс заметнее в кодировке алфавитов. Текст представляет собой последовательность кодов, и естественно, прямая зависимость код-знак. Однако если мы воспринимаем текст как целостный документ, состящим из объектов, то обращаем внимание, что управляющие коды(перевод строки, табуляция и прочие) не являются необходимыми объектами для хранения. Их роль выполнять некие функции, в общем случае, можно их назвать событиями, запускающие определенную процедуру обработки события. И необходимы эти коды только при редактировании текста с клавиатуры. Именно клавиатура (или мышка или тачскрин) создает эти события. Для хранения документа как объекта содержащего множество вложенных объктов, в управляющих кодах нет никакой необходимости. Управляющие коды это не объекты, а скорее правила к которым мы привыкли. Это принципиальный момент. Я понимаю, что это так как мы привыкли и легко воспринимается, но это не правильно принципиально. И вот тот тег B, который в XML изменяет шрифт, это правило, а не объект. Не знаю насколько я доступно объяснил, но я старался..
Если вы скажете, то какая разница, я отвечу, что объекты можно определить по свойствам, по классу и т.д.. Если возникла проблема то по хелпу объекта или хелпу класса. А правила нужно запоминать. Вот этих правил и условностей потихоньку набирается столько, что это мешает сосредоточиться на конкретной задаче. Ну, это и сами программисты уже знают. Что б решить какую-то фигню.. надо еще помнить много-много чего. Такой подход здорово разгрузит мозги. Ничего лишнего помнить не надо будет. Глянул на объект, что-то не понятно глянул на класс.. Все.. Больше ничего знать не надо. Применяй.

В этом кардинальное отличие TLL от XML. Все теги являються объектами, и допускают вложенность. Нет больше никаких нюансов внутри объекта, кроме тех, что описаны в классе.
 
Круто. На деле мы изобрели еще один JSON
 
Назад
Зверху Знизу