Re: А вот вам и новый язык. Зацените. Можно ругать.
От: rfq  
Дата: 30.07.10 08:19
Оценка: 3 (1)
Здравствуйте, batu, Вы писали:

B>Хотелось заменить все языки одним. Фактически получилось два.


Кроме языка, есть понятие "модель вычислений". И язык по отношению к модели вычислений — явление вторичное.
Скажем, Паскаль и С относятся к одной модели вычислений. Писать на том или другом языке в рамках одной модели — дело вкуса и/или удобства.

Чтобы "заменить все языки одним", нужно сначала заменить все модели вычислений одной. Если Вы именно это имеете ввиду, то Вам памятник можно будет поставить. Надо только так и сказать — вот я ввожу универсальную модель вычислений, которая лучше всех до сих пор существовавших, и продемонстрировать
сравнением новой модели с каждой из известных. Увы, сравнений моделей не увидел.

Если же имелось ввиду заменить все языки одним в рамках какой-то одной модели, то это означает лишь, что Вы считаете свой язык удобнее и красивее всех других. Не Вы первый, не Вы последний. Опять же хотелось бы примеров-демонстраций, а не описаний синтаксиса.
Re[2]: А вот вам и новый язык. Зацените. Можно ругать.
От: batu Украина  
Дата: 30.07.10 18:00
Оценка: :))) :)
Здравствуйте, rfq, Вы писали:

rfq>Здравствуйте, batu, Вы писали:


B>>Хотелось заменить все языки одним. Фактически получилось два.


rfq>Кроме языка, есть понятие "модель вычислений". И язык по отношению к модели вычислений — явление вторичное.

rfq>Скажем, Паскаль и С относятся к одной модели вычислений. Писать на том или другом языке в рамках одной модели — дело вкуса и/или удобства.

rfq>Чтобы "заменить все языки одним", нужно сначала заменить все модели вычислений одной. Если Вы именно это имеете ввиду, то Вам памятник можно будет поставить. Надо только так и сказать — вот я ввожу универсальную модель вычислений, которая лучше всех до сих пор существовавших, и продемонстрировать

rfq>сравнением новой модели с каждой из известных. Увы, сравнений моделей не увидел.

rfq>Если же имелось ввиду заменить все языки одним в рамках какой-то одной модели, то это означает лишь, что Вы считаете свой язык удобнее и красивее всех других. Не Вы первый, не Вы последний. Опять же хотелось бы примеров-демонстраций, а не описаний синтаксиса.

Ты прав. Я об этом не рассказал. И прежде всего потому, что это не для всех. Имею я право на маленькую тайну? Совершенно верно, сначала была модель, а язык только реализовывал ее возможности.
К этому могу добавить что слова "Модель вычислений" касаются не только вычислений, а имеют общий смысл представления и обработки объектов. Операции и операторы у меня тоже объекты соответсвующих классов (класса If например). И "вычисление" этих и обычных объектов имеют общую модель. Я имел надежду, что изучающий язык потихоньку поймет суть. Здесь же много толковых ребят. А я не спешу. Работы еще много. Следи. Скоро повится описание еще одного маленького языка (всего 5 операторов и никаких типов кроме десятичных и логических). Он простенький, но там есть элементы из большого проекта. Должно быть любопытно.
Re: А вот вам и новый язык. Зацените. Можно ругать.
От: x-code  
Дата: 30.07.10 18:34
Оценка: 3 (1) +1
Здравствуйте, batu, Вы писали:

B>Тишина. Хоть кто-то скачал что б почитать? Так спорили о перспективном языке.. Хоть бы обматюкали.. и то легче б стало..


Странно, ничего не понял Я давно интересуюсь языками программирования. Естественно, сам разрабатываю свой собственный язык, куда уж без этого
Когда у меня только появился такой интерес, я просто брал существующие языки и задумывался — чего мне в них нехватает? Вот, вспоминаю простой пример: первый курс универа, изучение языка Си. Почему можно написать
func1("Hello world"); // void func1(char *s);

но нельзя
func2({100,200,300}); // void func2(int *a);


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

А в данном случае я честно ничего не понял.
1. Как вы пришли к идее нового языка? Чего вам нехватает в существующих? Каков вообще был ход Вашего мышления, когда вы проектировали этот язык?
2. На основе каких языков он основан? Я смотрю — не то паскаль не то бейсик...
3. Почему не Си-подобный (не тема для холивара, но если более 90% всех программ пишутся на си-подобных языках C/C++/C#/Java/ObjC/JavaScript/PHP/Perl/..., то зачем городить огород и разрывать программистам шаблоны?)
4. Самое главное — в чем фишка-то?
Re[2]: А вот вам и новый язык. Зацените. Можно ругать.
От: batu Украина  
Дата: 31.07.10 00:11
Оценка: -2
Здравствуйте, x-code, Вы писали:

XC>Здравствуйте, batu, Вы писали:


B>>Тишина. Хоть кто-то скачал что б почитать? Так спорили о перспективном языке.. Хоть бы обматюкали.. и то легче б стало..


XC>Странно, ничего не понял Я давно интересуюсь языками программирования. Естественно, сам разрабатываю свой собственный язык, куда уж без этого

XC>Когда у меня только появился такой интерес, я просто брал существующие языки и задумывался — чего мне в них нехватает? Вот, вспоминаю простой пример: первый курс универа, изучение языка Си. Почему можно написать
XC>
XC>func1("Hello world"); // void func1(char *s);
XC>

XC>но нельзя
XC>
XC>func2({100,200,300}); // void func2(int *a);
XC>


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

Дополнять к языку это как учить папу трахаться. Язык не возникает откуда-то сверху по наитию. Язык это отражение некой модели. Ее можно назвать "вычислительной" дело не в названии. Но все языки (я имею в виду достойные начиная с фортрана, алгола, ады, с, джавы) являются результатом глубокой проработки и как оно будет "ложится" на архитектуру компьютера с одной стороны, и с другой стороны насколько близко семантически будет отражать природу вещей и "легкость" реализации этой природы. Сбалансировать эти три части и есть задача хорошего языка. Первые языки (ассемблер, фортран, алгол) хорошо "ложились" на компьютер, но вряд ли были семантически близки привычному миру. Но рванули вперед, хотя Lisp и пролог и на комп ложились достаточно хорошо (во всяком случае Lisp, с прологом проблемы эффективности не решены и по сей час.), но реализовывать программы был очень не просто. Еще хуже было с машинами управляемыми потоками данных. Они наиболее близко отражают природу вещей (не команды выполняются последовательно, а приходят данные и инициируют действия) Но там с написанием программ и изобретением языка возникла большая проблема. Потому и не пошли такие системы. Сейчас появилось много новых языков. ООП, прототипные языки. Основные парадигмы остались Императивная, функциональная, логическая и автоматная. Я считаю что современная тенденция идет к слиянию этих парадигм, построение общего синтаксиса, объектного подхода с гибкостью прототипных языков. Кроме того общего синтаксиса требует другая, не вычислительная часть применения компьютеров. Это и документирование, проектирование, базы данных, браузеры они тоже требуют своих языковых средств. Общего синтаксиса требует и нарастающий разрыв в синтаксисе и семантике языков, что порождает конфликты и непонимание между приверженцами какого-то (пусть и замечательного) языка.
Хорошо прошелся! Про парсеры упустил..

XC>А в данном случае я честно ничего не понял.

XC>1. Как вы пришли к идее нового языка? Чего вам нехватает в существующих? Каков вообще был ход Вашего мышления, когда вы проектировали этот язык?
Начал с типов и классов. Но это было давно. Net еще не было. Кстати, посмотри. У меня это разные вещи. Класс порождает объекты, а тип-значения.
XC>2. На основе каких языков он основан? Я смотрю — не то паскаль не то бейсик...
И Си добавь. Фигурные скобки откуда?
XC>3. Почему не Си-подобный (не тема для холивара, но если более 90% всех программ пишутся на си-подобных языках C/C++/C#/Java/ObjC/JavaScript/PHP/Perl/..., то зачем городить огород и разрывать программистам шаблоны?)
Cи нравится. Удобный. Для тех кто привык. Там слишком много не естественных, но оправданых с точки зрения короткой формы обозначений. В принципе это хорошо. В дурака то играешь? И вот представь к правилам игры в дурака добавить правила типа четная карта числовая бъет картинку с таким же номером если считать снизу. А не четная... ну сам придумаешь.. Вот смысл и цель игры при этих новых правилах нисколько не изменится. Появится только дополнительная сушка мозгов. И вместо того что бы думать про саму игру будешь вспоминать все эти искусственные задрочки. А теперь вернемся к Си. Ну, и каким боком там восклицательный знак? Понял куда я клоню?
XC>4. Самое главное — в чем фишка-то?
Если б фишка была она я бы не вылезал с новым языком. Фишек там много. Основные, я вынес в первые три раздела. Это правила именования и формирования текста. Правило объединения объектов в группы и реализация объектов. Т.е. правила создания объектов. Это основное. Есть еще сильная вещь (обрати внимание) события. Это здорово облегчает программирование и стандартизирует взаимодействие между объектами. Кстати, позволяет создавать автоматы. Тоже интересная фича. Ну, оператор, например, новый есть Swith. Операция обмена тоже новая фишка. Распараллеливание с помощью групп.. А выполнение групп с надстрочным значением? Та много.. Вот хотя бы первые три концепции кто б осилил..
Надеюсь я подробно ответил? Если будут вопросы пиши. Всегда рад.
Re[3]: А вот вам и новый язык. Зацените. Можно ругать.
От: x-code  
Дата: 31.07.10 07:32
Оценка: +3
Здравствуйте, batu, Вы писали:

B>Сейчас появилось много новых языков. ООП, прототипные языки. Основные парадигмы остались Императивная, функциональная, логическая и автоматная. Я считаю что современная тенденция идет к слиянию этих парадигм, построение общего синтаксиса, объектного подхода с гибкостью прототипных языков. Кроме того общего синтаксиса требует другая, не вычислительная часть применения компьютеров. Это и документирование, проектирование, базы данных, браузеры они тоже требуют своих языковых средств. Общего синтаксиса требует и нарастающий разрыв в синтаксисе и семантике языков, что порождает конфликты и непонимание между приверженцами какого-то (пусть и замечательного) языка.

B>Хорошо прошелся! Про парсеры упустил..

XC>>А в данном случае я честно ничего не понял.

XC>>1. Как вы пришли к идее нового языка? Чего вам нехватает в существующих? Каков вообще был ход Вашего мышления, когда вы проектировали этот язык?
B>Начал с типов и классов. Но это было давно. Net еще не было. Кстати, посмотри. У меня это разные вещи. Класс порождает объекты, а тип-значения.
Вот уже конкретика, поясни НА ПРИМЕРЕ, что да как. В чем разница, что дает разделение понятий и т.д.

B>Cи нравится. Удобный. Для тех кто привык. Там слишком много не естественных, но оправданых с точки зрения короткой формы обозначений. В принципе это хорошо. В дурака то играешь? И вот представь к правилам игры в дурака добавить правила типа четная карта числовая бъет картинку с таким же номером если считать снизу. А не четная... ну сам придумаешь.. Вот смысл и цель игры при этих новых правилах нисколько не изменится. Появится только дополнительная сушка мозгов. И вместо того что бы думать про саму игру будешь вспоминать все эти искусственные задрочки. А теперь вернемся к Си. Ну, и каким боком там восклицательный знак? Понял куда я клоню?


Нет. Чем тебе не угодил восклицательный знак?
Если говорить чисто о синтаксисе Си, то он безупречен. В С++ есть проблема с конфликтом знаков '>' '<' и шаблонными скобками, но ты явно не об этом

XC>>4. Самое главное — в чем фишка-то?

B>Если б фишка была она я бы не вылезал с новым языком. Фишек там много. Основные, я вынес в первые три раздела.

Может, и вынес, но это понятно лишь тебе У тебя в голове есть какая-то сложная философская модель языка, ты ее пытаешься выразить в тексте, всем кто пытаетя прочитать — ничего не понятно. Все познается в сравнении. Если хочешь донести до людей свои мысли, попытайся КАЖДУЮ фичу, каждое правило, каждую возможность языка продемонстрировать НА ПРИМЕРЕ. И сказать: вот в моем языке это делается так-то, а на C++/C#/Java это было вообще невозможно или требовало 5 экранов кода

B>Это правила именования и формирования текста. Правило объединения объектов в группы и реализация объектов. Т.е. правила создания объектов. Это основное. Есть еще сильная вещь (обрати внимание) события. Это здорово облегчает программирование и стандартизирует взаимодействие между объектами. Кстати, позволяет создавать автоматы. Тоже интересная фича. Ну, оператор, например, новый есть Swith. Операция обмена тоже новая фишка. Распараллеливание с помощью групп.. А выполнение групп с надстрочным значением? Та много.. Вот хотя бы первые три концепции кто б осилил..

B>Надеюсь я подробно ответил? Если будут вопросы пиши. Всегда рад.

Было бы здорово, опять-таки, ПРИМЕРЫ по КАЖДОМУ пункту этого списка. Вот так — на твоем языке, а вот так — на C++/C#/Java. Сравнение реализаций, преимущества твоей реализации, недостатки существующей.

Только так и никак иначе
Re[12]: Вот основные концепции. Затем три первых раздела. Н
От: minorlogic Украина  
Дата: 31.07.10 09:39
Оценка:
Здравствуйте, batu, Вы писали:

B>Здравствуйте, minorlogic, Вы писали:


M>>А назначение языка то какое?

B>Это часть системы. Язык можно использовать, от создания документов, до написания программ.

По аналогии звучит как "инструмент для счастья во всем мире и ремонта холодильников"
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[4]: А вот вам и новый язык. Зацените. Можно ругать.
От: batu Украина  
Дата: 31.07.10 10:20
Оценка:
Здравствуйте, x-code, Вы писали:

XC>Здравствуйте, batu, Вы писали:



XC>>>1. Как вы пришли к идее нового языка? Чего вам нехватает в существующих? Каков вообще был ход Вашего мышления, когда вы проектировали этот язык?

B>>Начал с типов и классов. Но это было давно. Net еще не было. Кстати, посмотри. У меня это разные вещи. Класс порождает объекты, а тип-значения.
XC>Вот уже конкретика, поясни НА ПРИМЕРЕ, что да как. В чем разница, что дает разделение понятий и т.д.
Разница между объектами и значениями (все они объекты мы здесь имеем ввиду объекты-объекты и объекты-значения) принципиальна. Объект может быть только один и равенство объектов означает что это один и тот же объект. Значений может быть сколько угодно и равенство значений это равенство всех свойств разных объектов значений. Отсюда и операция присвоения у объектов это копирование ссылки, а у значения копирование полностью объекта. Есть еще разница в том, что значение выражается текстом или цифрами. Например, Date=1 сентября 1995, Тор=65. Потому определение типов (они создают объекты-значения) оказывают влияние на лексический разбор. И т.д..Вообщем, есть разница, и тебе судить насколько она принципиальна.

B>>Cи нравится. Удобный. Для тех кто привык. Там слишком много не естественных, но оправданых с точки зрения короткой формы обозначений. В принципе это хорошо. В дурака то играешь? И вот представь к правилам игры в дурака добавить правила типа четная карта числовая бъет картинку с таким же номером если считать снизу. А не четная... ну сам придумаешь.. Вот смысл и цель игры при этих новых правилах нисколько не изменится. Появится только дополнительная сушка мозгов. И вместо того что бы думать про саму игру будешь вспоминать все эти искусственные задрочки. А теперь вернемся к Си. Ну, и каким боком там восклицательный знак? Понял куда я клоню?


XC>Нет. Чем тебе не угодил восклицательный знак?

XC>Если говорить чисто о синтаксисе Си, то он безупречен. В С++ есть проблема с конфликтом знаков '>' '<' и шаблонными скобками, но ты явно не об этом
И об этом тоже. Восклицательный знак просто как пример, а так очень его уважаю

XC>>>4. Самое главное — в чем фишка-то?

B>>Если б фишка была одна я бы не вылезал с новым языком. Фишек там много. Основные, я вынес в первые три раздела.

XC>Может, и вынес, но это понятно лишь тебе У тебя в голове есть какая-то сложная философская модель языка, ты ее пытаешься выразить в тексте, всем кто пытаетя прочитать — ничего не понятно. Все познается в сравнении. Если хочешь донести до людей свои мысли, попытайся КАЖДУЮ фичу, каждое правило, каждую возможность языка продемонстрировать НА ПРИМЕРЕ. И сказать: вот в моем языке это делается так-то, а на C++/C#/Java это было вообще невозможно или требовало 5 экранов кода


B>>Это правила именования и формирования текста. Правило объединения объектов в группы и реализация объектов. Т.е. правила создания объектов. Это основное. Есть еще сильная вещь (обрати внимание) события. Это здорово облегчает программирование и стандартизирует взаимодействие между объектами. Кстати, позволяет создавать автоматы. Тоже интересная фича. Ну, оператор, например, новый есть Swith. Операция обмена тоже новая фишка. Распараллеливание с помощью групп.. А выполнение групп с надстрочным значением? Та много.. Вот хотя бы первые три концепции кто б осилил..

B>>Надеюсь я подробно ответил? Если будут вопросы пиши. Всегда рад.

XC>Было бы здорово, опять-таки, ПРИМЕРЫ по КАЖДОМУ пункту этого списка. Вот так — на твоем языке, а вот так — на C++/C#/Java. Сравнение реализаций, преимущества твоей реализации, недостатки существующей.


XC>Только так и никак иначе

Так там есть примеры.
Могу здесь по быстрому. Но, все нюансы (а они не нюансы) будет сложно. Вау.. Здесь не возможно. Скобки и надстрочные значения я здесь не смогу привести. Ну, почему бы не посмотреть примеры в документе? Там все есть... Хотя бы начнем с именования объектов и правил написания текста.. Можно даже пропустить правила описания грамматик. Они в самом начале документа. А потом по порядочку осваивать другие разделы. Я буду отвечать на вопросы.
Re[13]: Вот основные концепции. Затем три первых раздела. Н
От: batu Украина  
Дата: 31.07.10 10:23
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Здравствуйте, batu, Вы писали:


B>>Здравствуйте, minorlogic, Вы писали:


M>>>А назначение языка то какое?

B>>Это часть системы. Язык можно использовать, от создания документов, до написания программ.

M>По аналогии звучит как "инструмент для счастья во всем мире и ремонта холодильников"

С холодильниками будут проблемы. А указаными задачами очень даже справляется. И удобнее чем в частности XML справляестся с единственной задачей. Если интересно, то укажу на принципиальные недостатки XML
Re[4]: А вот вам и новый язык. Зацените. Можно ругать.
От: batu Украина  
Дата: 31.07.10 10:25
Оценка:
Здравствуйте, x-code, Вы писали:

Не знаю где ты смотришь, но здесь http://files.rsdn.ru/91645/LadaNew.rar сравнительно свежая версия
Re[5]: А вот вам и новый язык. Зацените. Можно ругать.
От: x-code  
Дата: 31.07.10 11:04
Оценка:
Здравствуйте, batu, Вы писали:

B>Здравствуйте, x-code, Вы писали:


XC>>Здравствуйте, batu, Вы писали:



XC>>>>1. Как вы пришли к идее нового языка? Чего вам нехватает в существующих? Каков вообще был ход Вашего мышления, когда вы проектировали этот язык?

B>>>Начал с типов и классов. Но это было давно. Net еще не было. Кстати, посмотри. У меня это разные вещи. Класс порождает объекты, а тип-значения.
XC>>Вот уже конкретика, поясни НА ПРИМЕРЕ, что да как. В чем разница, что дает разделение понятий и т.д.
B>Разница между объектами и значениями (все они объекты мы здесь имеем ввиду объекты-объекты и объекты-значения) принципиальна. Объект может быть только один и равенство объектов означает что это один и тот же объект. Значений может быть сколько угодно и равенство значений это равенство всех свойств разных объектов значений. Отсюда и операция присвоения у объектов это копирование ссылки, а у значения копирование полностью объекта. Есть еще разница в том, что значение выражается текстом или цифрами. Например, Date=1 сентября 1995, Тор=65. Потому определение типов (они создают объекты-значения) оказывают влияние на лексический разбор. И т.д..Вообщем, есть разница, и тебе судить насколько она принципиальна.

Что-то понял, но какой-то неуловимый смысл... Для чего так? Есть константы и переменные. Есть передача по ссылке и передача по значению. Эти понятия можно комбинировать как угодно. Я могу захотеть передать "объект" как по ссылке, так и по значению. Точно так же имею право передать константу по значению, в твоей терминологии это будет уже объект, хранящий значение? В чем здесь новизна?

B>И об этом тоже. Восклицательный знак просто как пример, а так очень его уважаю

И все же, что с восклицательным знаком-то не так?

B>Так там есть примеры.

B>Могу здесь по быстрому. Но, все нюансы (а они не нюансы) будет сложно. Вау.. Здесь не возможно. Скобки и надстрочные значения я здесь не смогу привести. Ну, почему бы не посмотреть примеры в документе?

Еще раз: в документе непонятно. Напиши hello world на Lada, и еще пару примеров: реализацию двусвязного списка или очереди, сортировку какую-нибудь... С комментариями, и — повторюсь — со СРАВНЕНИЕМ твоей реализации и существующих.

Я вот дошел до первого примера и уже в ступоре
For I=30 To N {J +:= 1}

им дальше по тексту

В результате работы синтаксического анализатора из последовательности лексем будет создан объект класса For с именем I, который в свою очередь может нуждаться в реализации

а я то думал это обычный цикл с параметром...

Это какая-то попытка запихать инструкции (операторы языка) в парадигму ООП?
Re[6]: А вот вам и новый язык. Зацените. Можно ругать.
От: Temoto  
Дата: 31.07.10 11:22
Оценка:
B>>И об этом тоже. Восклицательный знак просто как пример, а так очень его уважаю
XC>И все же, что с восклицательным знаком-то не так?

Извините, что вмешиваюсь, но недостаток восклицательного знака в Си очевиден: неинтуитивная семантика.
Вот сравните:

Ruby:
if messages.empty?  # true - да, список пустой
  user.logout!      # "опасный" метод, модифицирует состояние объекта. Немного истерично, но в этом хотя бы есть смысл.


C
if (!messages) {    // !messages что-это-за-хрень?
  user.logout();
}


Идея такова: чтобы читать код на C/Perl нужно знать эти языки; для Python/Ruby часто достаточно знать английский.
Re[6]: А вот вам и новый язык. Зацените. Можно ругать.
От: batu Украина  
Дата: 31.07.10 13:34
Оценка: -1
Здравствуйте, x-code, Вы писали:

B>>Разница между объектами и значениями (все они объекты мы здесь имеем ввиду объекты-объекты и объекты-значения) принципиальна. Объект может быть только один и равенство объектов означает что это один и тот же объект. Значений может быть сколько угодно и равенство значений это равенство всех свойств разных объектов значений. Отсюда и операция присвоения у объектов это копирование ссылки, а у значения копирование полностью объекта. Есть еще разница в том, что значение выражается текстом или цифрами. Например, Date=1 сентября 1995, Тор=65. Потому определение типов (они создают объекты-значения) оказывают влияние на лексический разбор. И т.д..Вообщем, есть разница, и тебе судить насколько она принципиальна.


XC>Что-то понял, но какой-то неуловимый смысл... Для чего так? Есть константы и переменные. Есть передача по ссылке и передача по значению. Эти понятия можно комбинировать как угодно. Я могу захотеть передать "объект" как по ссылке, так и по значению. Точно так же имею право передать константу по значению, в твоей терминологии это будет уже объект, хранящий значение? В чем здесь новизна?

Не причем здесь новизна. Это классические вещи. Только я четко разделил. Когда есть разные сущности то они и должны быть разными. Присвоение и передачу параметров, это понятно что можно сделать и так и так.Только это чревато. Но вот как с присваиванием быть? Разные знаки делать? Ведь очевидно что суть этих операций разная для класов и типов. А операцию равенства? Для объектов эта операция заключается в равенстве ссылок, а для значений в проверке значения. Вот ты изменил свойство в объекте, например, зарплату или должность.. Объект должен гарантировано остаться тем же самым. И совсем другое дело если ты в объекте-дате изменил месяц! Получился ДРУГОЙ ОБЪЕКТ! Одинаковых объектов-значений могут существовать тысячи одновременно, а объект один и навсегда.

B>>И об этом тоже. Восклицательный знак просто как пример, а так очень его уважаю

XC>И все же, что с восклицательным знаком-то не так?
Да не задрачивай..
B>>Так там есть примеры.
B>>Могу здесь по быстрому. Но, все нюансы (а они не нюансы) будет сложно. Вау.. Здесь не возможно. Скобки и надстрочные значения я здесь не смогу привести. Ну, почему бы не посмотреть примеры в документе?

XC>Еще раз: в документе непонятно. Напиши hello world на Lada, и еще пару примеров: реализацию двусвязного списка или очереди, сортировку какую-нибудь... С комментариями, и — повторюсь — со СРАВНЕНИЕМ твоей реализации и существующих.


XC>Я вот дошел до первого примера и уже в ступоре

XC>
XC>For I=30 To N {J +:= 1}
XC>

XC>им дальше по тексту
XC>

В результате работы синтаксического анализатора из последовательности лексем будет создан объект класса For с именем I, который в свою очередь может нуждаться в реализации

XC>а я то думал это обычный цикл с параметром...

XC>Это какая-то попытка запихать инструкции (операторы языка) в парадигму ООП?

Рассказываю. Когда ты пишешь буквы они тоже объекты. Потом из букв сконструировал слово (в нашем примере For) так вот как слово это самостоятельный объект и другого класса чем буквы, т.е. со своими собственными свойствами. Если у букв есть шрифты, размер и прочее (кстати, я категорически против что б буквы имели свойство язык), а у слова свои свойства как у самостоятельного объекта воспринимаемого как единое целое а не то из чего оно состоит. Класс и свойства этого объекта (создание объекта For класса "Lexem" ) определяется при лексическом анализе. Как и все остальные лексемы. А уже при трансляции в синтаксическом анализаторе из последовательности лексем и знаков согласно синтаксису создается объект класса For. Да, это такой же объект. Вот и если речь идет о программе то создается объекты-инструкции. Это еще один тип объектов плюс к объектам-значениям.
Дальше совсем просто. Если мы хотим создать форму BB то так и пишем Form BB. Так в результате трансляции создастся объект этого класса.
А теперь проблема!
Int I=10 что создаст при трансляции? Обычно в языках в такой форме синтаксиса создается (скрытая от глаз) инструкция срабатывающая во время выполения (а не трансляции), и создающая динамически целую переменную где-то в выделеной области памяти.
У меня создается именно целое значение =10 в этом месте. Для того, что бы во время выполнения создать такое значение (или такие значения если это в классе и есть вариант одновременного вызова) необходимо иметь еще одну инструкцию которую необходимо применить к этому объекту для динамического создания. И эта инструкция есть. Даже три! New, Dim и Var. Т.е. если мы хотим создать динамичекий объект о время выполнения это выглядит так New Int I=10.
Re[6]: А вот вам и новый язык. Зацените. Можно ругать.
От: batu Украина  
Дата: 31.07.10 13:47
Оценка: :))
Здравствуйте, x-code, Вы писали:



XC>Это какая-то попытка запихать инструкции (операторы языка) в парадигму ООП?

Да. Кстати, мои поздравления. Ты первый на планете, который дошел до такого уровня вопросов. Так и получается если мы хотим создать базу данных товара на складе, то определяем класс товара (Модель) , и просто создаем объекты-товары
Сlass Модель
{
Dim Int(Размер, Цена)

}
Модель1 Товар1 (Размер=25, Цена=45}
Модель1 Товар2 (Размер=27, Цена=56}

Модель1 Товарn (Размер=28, Цена=66}

И, заметь, это не программа! Это просто данные.
Re[7]: А вот вам и новый язык. Зацените. Можно ругать.
От: x-code  
Дата: 31.07.10 17:15
Оценка:
Здравствуйте, Temoto, Вы писали:

T>Идея такова: чтобы читать код на C/Perl нужно знать эти языки; для Python/Ruby часто достаточно знать английский.


Может быть... Но лично я не люблю, когда языки программирования пытаются приблизить к английскому. Получается неизменно паскаль.
Синтаксис — это важная составляющая языка, и ее важность в том, чтобы программист (именно программист, а не домохозяйка!) мог легко читать исходники на других языках, и быстро в них разбираться.
Есть традиционный, сложившийся синтаксис, не один десяток языков, на которых восклицательный знак это логическое отрицание. Это ни хорошо и ни плохо, это просто есть и все Стандарт де-факто. Зачем придумывать что-то еще?
Re[7]: А вот вам и новый язык. Зацените. Можно ругать.
От: x-code  
Дата: 31.07.10 17:26
Оценка:
Здравствуйте, batu, Вы писали:

B>>>Разница между объектами и значениями (все они объекты мы здесь имеем ввиду объекты-объекты и объекты-значения) принципиальна. Объект может быть только один и равенство объектов означает что это один и тот же объект. Значений может быть сколько угодно и равенство значений это равенство всех свойств разных объектов значений. Отсюда и операция присвоения у объектов это копирование ссылки, а у значения копирование полностью объекта. Есть еще разница в том, что значение выражается текстом или цифрами. Например, Date=1 сентября 1995, Тор=65. Потому определение типов (они создают объекты-значения) оказывают влияние на лексический разбор. И т.д..Вообщем, есть разница, и тебе судить насколько она принципиальна.



B>Не причем здесь новизна. Это классические вещи. Только я четко разделил. Когда есть разные сущности то они и должны быть разными. Присвоение и передачу параметров, это понятно что можно сделать и так и так.Только это чревато. Но вот как с присваиванием быть? Разные знаки делать? Ведь очевидно что суть этих операций разная для класов и типов. А операцию равенства? Для объектов эта операция заключается в равенстве ссылок, а для значений в проверке значения. Вот ты изменил свойство в объекте, например, зарплату или должность.. Объект должен гарантировано остаться тем же самым. И совсем другое дело если ты в объекте-дате изменил месяц! Получился ДРУГОЙ ОБЪЕКТ! Одинаковых объектов-значений могут существовать тысячи одновременно, а объект один и навсегда.


В С++ есть операторы точка, стрелка, два двоеточия, для РАЗНЫХ случаев, но смысл один — "accessor", доступ к внутренностям составного объекта по имени. В C# и Java благополучно это убрали, и ИМХО правильно сделали.
А ты предлагаешь разделить абстракцию присваивания на две части. И бедные программеры опять будут думать "ну какой-же оператор здесь применить?"

XC>>Это какая-то попытка запихать инструкции (операторы языка) в парадигму ООП?

B>Рассказываю. Когда ты пишешь буквы они тоже объекты. Потом из букв сконструировал слово (в нашем примере For) так вот как слово это самостоятельный объект и другого класса чем буквы, т.е. со своими собственными свойствами. Если у букв есть шрифты, размер и прочее (кстати, я категорически против что б буквы имели свойство язык), а у слова свои свойства как у самостоятельного объекта воспринимаемого как единое целое а не то из чего оно состоит. Класс и свойства этого объекта (создание объекта For класса "Lexem" ) определяется при лексическом анализе. Как и все остальные лексемы. А уже при трансляции в синтаксическом анализаторе из последовательности лексем и знаков согласно синтаксису создается объект класса For. Да, это такой же объект. Вот и если речь идет о программе то создается объекты-инструкции. Это еще один тип объектов плюс к объектам-значениям.
B>Дальше совсем просто. Если мы хотим создать форму BB то так и пишем Form BB. Так в результате трансляции создастся объект этого класса.

ИМХО, ты как-то неуловимо путаешь этапы компиляции и выполнения программы. При лексическом анализе в классическом понимании этого слова не происходит ничего, кроме того что поток исходного текста программы разбивается на лексемы, просто для удобства дальнейшего синтаксического анализа.

B>А теперь проблема!

B>Int I=10 что создаст при трансляции? Обычно в языках в такой форме синтаксиса создается (скрытая от глаз) инструкция срабатывающая во время выполения (а не трансляции), и создающая динамически целую переменную где-то в выделеной области памяти.
B>У меня создается именно целое значение =10 в этом месте. Для того, что бы во время выполнения создать такое значение (или такие значения если это в классе и есть вариант одновременного вызова) необходимо иметь еще одну инструкцию которую необходимо применить к этому объекту для динамического создания. И эта инструкция есть. Даже три! New, Dim и Var. Т.е. если мы хотим создать динамичекий объект о время выполнения это выглядит так New Int I=10.

Не понял в чем проблема.
Ты предлагаешь 'int i=10' сделать объявлением константы, не порождающим никакого кода? А смысл? Чем это отличается от конструкции с макросами на том же си?
#define I 10
int i = I;
Re[6]: А вот вам и новый язык. Зацените. Можно ругать.
От: FR  
Дата: 31.07.10 17:47
Оценка:
Здравствуйте, x-code, Вы писали:

XC>Это какая-то попытка запихать инструкции (операторы языка) в парадигму ООП?


В Smalltalk давно запихали.

А топикстарер похоже бредит
Re[8]: А вот вам и новый язык. Зацените. Можно ругать.
От: batu Украина  
Дата: 31.07.10 18:27
Оценка: -1
Здравствуйте, x-code, Вы писали:

XC>Здравствуйте, batu, Вы писали:


B>>Не причем здесь новизна. Это классические вещи. Только я четко разделил. Когда есть разные сущности то они и должны быть разными. Присвоение и передачу параметров, это понятно что можно сделать и так и так.Только это чревато. Но вот как с присваиванием быть? Разные знаки делать? Ведь очевидно что суть этих операций разная для класов и типов. А операцию равенства? Для объектов эта операция заключается в равенстве ссылок, а для значений в проверке значения. Вот ты изменил свойство в объекте, например, зарплату или должность.. Объект должен гарантировано остаться тем же самым. И совсем другое дело если ты в объекте-дате изменил месяц! Получился ДРУГОЙ ОБЪЕКТ! Одинаковых объектов-значений могут существовать тысячи одновременно, а объект один и навсегда.


XC>В С++ есть операторы точка, стрелка, два двоеточия, для РАЗНЫХ случаев, но смысл один — "accessor", доступ к внутренностям составного объекта по имени. В C# и Java благополучно это убрали, и ИМХО правильно сделали.

XC>А ты предлагаешь разделить абстракцию присваивания на две части. И бедные программеры опять будут думать "ну какой-же оператор здесь применить?"
Не придумывай за меня. В этом смысле я предлагаю оставить один оператор присваивания, смысл которого будет зависить от классов объектов. Причем весьма логично. Но, дальше таки будет два оператора присваивания. Смысл их расскажу позже, по мере усваивания материала. С классами это не связано.

B>>Рассказываю. Когда ты пишешь буквы они тоже объекты. Потом из букв сконструировал слово (в нашем примере For) так вот как слово это самостоятельный объект и другого класса чем буквы, т.е. со своими собственными свойствами. Если у букв есть шрифты, размер и прочее (кстати, я категорически против что б буквы имели свойство язык), а у слова свои свойства как у самостоятельного объекта воспринимаемого как единое целое а не то из чего оно состоит. Класс и свойства этого объекта (создание объекта For класса "Lexem" ) определяется при лексическом анализе. Как и все остальные лексемы. А уже при трансляции в синтаксическом анализаторе из последовательности лексем и знаков согласно синтаксису создается объект класса For. Да, это такой же объект. Вот и если речь идет о программе то создается объекты-инструкции. Это еще один тип объектов плюс к объектам-значениям.

B>>Дальше совсем просто. Если мы хотим создать форму BB то так и пишем Form BB. Так в результате трансляции создастся объект этого класса.

XC>ИМХО, ты как-то неуловимо путаешь этапы компиляции и выполнения программы. При лексическом анализе в классическом понимании этого слова не происходит ничего, кроме того что поток исходного текста программы разбивается на лексемы, просто для удобства дальнейшего синтаксического анализа.

Так вот что-то же происходит! Лексемы таки образуются! А ведь это объекты! И не только для синтаксического анализа. Вполне реально для трансляции нам необходимо будет анализировать свойства этих объектов. Например, у меня нет требования уникальности имени. А для некоторых классов уникальнность только внутри класса. Да и текст от имен надо будет отличать. А это все в свойствах лексемы! Почему, например, нельзя одинм именем назвать и класс и объект? Ведь по положению в синтаксисе мы вполне можем разобраться. А если есть неоднозначность, то необходимо указать. Как? Да изменением свойств вот этой самой лексемы! В обычном языке один и тот же текст может являться и глаголом и существительным. Классом и объектом! Например: "Каждый мужчина должен построить дом...." здесь "дом" в смысле класса объектов. А в фразе "Вот дом в котором я живу." слово дом применяется как объект. И по английски "Cup of tee" и "Drink tea" tea- в первом случае объект, а во втором класс.
Короче лексемы нам очень даже нужны как объекты, и нужен доступ для редактирования (т.е. для изменения их свойств) и анализа свойств лексемы. Анализом, занимается, как ты и сказал, синтаксический анализатор. И, вообще, вдумайся. Ты же текст воспринимаешь не в буквах, а в лексемах. Ну, один в один как синтаксический анализатор.

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' не порождает никакого кода (в Ладе), в том смысле как ты его понимаешь. Порождается объект с именем I класса Int со значением 10. И больше ничего. Потому что вот это присвоение (помнишь мы о двух присвоениях говорили?) присваивает значение 10 свойству Value объекта класса Int с именем I. Есть двоичное представление объекта, и вот там где в этом представлении должно находиться значение свойства Value будет находиться значение 10, а там где должно находиться имя объекта будет находиться значение I. Более того мы так и сохраним это значение или много таких значений которые можно и проще создать просто набрав числ "10". Имени не будет. А результат будет тот же. Теперь вспомни, что типы порождают объекты-значения и тем оказывают влияние на лексический анализ. Вот оно это влияние! Type Int влияет на лексический анализ так, что набрав значение "10" при лексическом анализе создается объект этого класса с набраным значением.
А вот такое вот присвоение
I:=10 перед тем как, создаст объект-значение 10 создаст ссылку (там тоже есть варианты адресации) на объект с именем I и сформирует объект-инструкцию которая при выполнении присвоит объекту по этой ссылке значение 10, хранящееся здесь же.
Re[9]: А вот вам и новый язык. Зацените. Можно ругать.
От: x-code  
Дата: 01.08.10 11:33
Оценка: +2
Здравствуйте, batu, Вы писали:

B>Так вот что-то же происходит! Лексемы таки образуются! А ведь это объекты! И не только для синтаксического анализа. Вполне реально для трансляции нам необходимо будет анализировать свойства этих объектов. Например, у меня нет требования уникальности имени. А для некоторых классов уникальнность только внутри класса. Да и текст от имен надо будет отличать. А это все в свойствах лексемы! Почему, например, нельзя одинм именем назвать и класс и объект? Ведь по положению в синтаксисе мы вполне можем разобраться. А если есть неоднозначность, то необходимо указать. Как? Да изменением свойств вот этой самой лексемы! В обычном языке один и тот же текст может являться и глаголом и существительным. Классом и объектом! Например: "Каждый мужчина должен построить дом...." здесь "дом" в смысле класса объектов. А в фразе "Вот дом в котором я живу." слово дом применяется как объект. И по английски "Cup of tee" и "Drink tea" tea- в первом случае объект, а во втором класс.

B>Короче лексемы нам очень даже нужны как объекты, и нужен доступ для редактирования (т.е. для изменения их свойств) и анализа свойств лексемы. Анализом, занимается, как ты и сказал, синтаксический анализатор. И, вообще, вдумайся. Ты же текст воспринимаешь не в буквах, а в лексемах. Ну, один в один как синтаксический анализатор.

Ты ОПРЕДЕЛЕННО путаешь процесс компиляции и процесс исполнения программы
Изучи как осуществляется процесс компиляции. Разберись с этапами.
Лексемы образуются при лексическом анализе. Это просто разбиение текста на кусочки, не более того! Каждому кусочку ставится в соответствие код типа из множества {Идентификатор, Число, Строка, Оператор, Разделитель, Комментарий}. И для операторов и ключевых слов — еще одно число, внутренний номер оператора/ключевого слова. Числа преобразуются в бинарную форму, строки преобразуются с учетом escape-последовательностей, комментарии и разделители выкидываются. И все!

То, что ты описываешь, отдаленно напоминает описание процесса компиляции программы, при этом в твоем описании все этапы перемешаны совершенно немыслимым образом.
Какое это отношение имеет к "новому языку программирования" — вообще непонятно.

В общем, почитай ту же книгу Дракона что-ли
Re[4]: А вот вам и новый язык. Зацените. Можно ругать.
От: Eugeny__ Украина  
Дата: 02.08.10 09:23
Оценка: +2
Здравствуйте, x-code, Вы писали:

XC>Было бы здорово, опять-таки, ПРИМЕРЫ по КАЖДОМУ пункту этого списка. Вот так — на твоем языке, а вот так — на C++/C#/Java. Сравнение реализаций, преимущества твоей реализации, недостатки существующей.


Сам уже жду хоть чего-то. А то все одни абстракции с обещаниями сделать что-то реальное за пару месяцев. При этом ни одного нормального примера, который бы показал хоть минимальное преимущество перед существующими языками, я не увидел.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[7]: А вот вам и новый язык. Зацените. Можно ругать.
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 03.08.10 04:32
Оценка:
Здравствуйте, Temoto, Вы писали:

T>Извините, что вмешиваюсь, но недостаток восклицательного знака в Си очевиден: неинтуитивная семантика.

T>Вот сравните:

T>Ruby:

T>
T>if messages.empty?  # true - да, список пустой
T>  user.logout!      # "опасный" метод, модифицирует состояние объекта. Немного истерично, но в этом хотя бы есть смысл.
T>


А отрицание условия будет if !messages.empty?
Здесь Руби придерживается той же традиции.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.