Язык программирования Санда
-
- Сообщения: 31
- Зарегистрирован: 23.03.21 11:29
Язык программирования Санда
#русскоязычныйязыкпрограммирования
Вопрос о необходимости даже не обсуждается. Просто делаем потихоньку.
Загрузку товаров в ККМ себе сделал уже на этом языке.
Через год перепишу систему закупок, а еще через год весь учет перепишу.
Никаких дополнительных установок и настроек не требуется. Просто скачайте и разверните.
Под линуксом (Дебиан, Федора) работает, но пакет для установки пока не сделан.
http://www.ritminform.ru/topicTry.htm
Вопрос о необходимости даже не обсуждается. Просто делаем потихоньку.
Загрузку товаров в ККМ себе сделал уже на этом языке.
Через год перепишу систему закупок, а еще через год весь учет перепишу.
Никаких дополнительных установок и настроек не требуется. Просто скачайте и разверните.
Под линуксом (Дебиан, Федора) работает, но пакет для установки пока не сделан.
http://www.ritminform.ru/topicTry.htm
Последний раз редактировалось ритминформ 10.06.21 09:31, всего редактировалось 2 раза.
Re: Язык программирования Санда
Ого, отличные новости! Даже не знаю, как реагировать. Я правильно понимаю, что источниками являются dbase и 1C?
На самом деле есть несколько проектов в этом направлении. Видимо, нужно составить какой-то каталог.
Из того, что сразу припоминается - https://oscript.io/ 1Script = 1Скрипт, Гонец (умер), Перфолента и был ещё интересный проект http://gendoc.ru/
Я не занимаюсь проектами автоматизации и они не стоят в списке ближайших целей. Но было бы здорово, если бы "учётники" как-то объединили свои усилия. Понимаю, что это утопия.
На самом деле есть несколько проектов в этом направлении. Видимо, нужно составить какой-то каталог.
Из того, что сразу припоминается - https://oscript.io/ 1Script = 1Скрипт, Гонец (умер), Перфолента и был ещё интересный проект http://gendoc.ru/
Я не занимаюсь проектами автоматизации и они не стоят в списке ближайших целей. Но было бы здорово, если бы "учётники" как-то объединили свои усилия. Понимаю, что это утопия.
-
- Сообщения: 31
- Зарегистрирован: 23.03.21 11:29
Re: Язык программирования Санда
Не совсем понял вопроса.
Язык мне нужен для полного отказа от 1С и Microsoft. Работа с БД, естественно, постепенно реализуется.
Например, наработки есть в testDataBase.prg
Нет проектов в этом направлении. Я смотрел.
БудДен писал(а): ↑23.03.21 15:28"Из того, что сразу припоминается - https://oscript.io/ 1Script = 1Скрипт, Гонец (умер), Перфолента и был ещё интересный проект http://gendoc.ru/"
Это всё не совсем то. Например, перфолента - майкрософтовский NET да ещё и не интерпретатор.
-
- Сообщения: 31
- Зарегистрирован: 23.03.21 11:29
Re: Язык программирования Санда
За эту ссылку спасибо. Посмотрю.
Re: Язык программирования Санда
Вопрос был для того, чтобы понять, на что этот язык похож, не читая документации. Например, на Clipper, с которого я начинал? Или больше на 1С? На чём написан? Не хотите портировать на Оберон/ЯОС? Это даст максимальную независимость от Microsoft, да и от Linux заодно, т.к. ЯОС может работать в режиме операционной системы.
Я хотел бы, чтобы можно было писать учётные приложения на ЯОС, и мы, кажется, даже обсуждали это с автором "Перфоленты" или другого подобного проекта, но .NET слишком развитая платформа, с неё переходить на ЯОС, где мало всего, будет несподручно. Если ваш язык ещё мало развит и едва началась работа с СУБД, то может быть больше смысла.
Например, в ЯОС есть свой графический тулкит. Если вы делаете Linux/Windows, то вам придётся брать что-то из Qt, wxWidgets, tk, не приведи Бог Electron, fltk и т.п. - это всё дополнительные слои и дополнительные источники проблем. Если вы будете под ЯОС, то графический тулкит в принципе находится под нашим контролем и в нём всего один слой - это гораздо приятнее. Хотя он весьма не развит.
Как бы Вы охарактеризовали основные отличия своего проекта, на основании которых Вы говорите, что других подобных проектов нет?
Я хотел бы, чтобы можно было писать учётные приложения на ЯОС, и мы, кажется, даже обсуждали это с автором "Перфоленты" или другого подобного проекта, но .NET слишком развитая платформа, с неё переходить на ЯОС, где мало всего, будет несподручно. Если ваш язык ещё мало развит и едва началась работа с СУБД, то может быть больше смысла.
Например, в ЯОС есть свой графический тулкит. Если вы делаете Linux/Windows, то вам придётся брать что-то из Qt, wxWidgets, tk, не приведи Бог Electron, fltk и т.п. - это всё дополнительные слои и дополнительные источники проблем. Если вы будете под ЯОС, то графический тулкит в принципе находится под нашим контролем и в нём всего один слой - это гораздо приятнее. Хотя он весьма не развит.
Как бы Вы охарактеризовали основные отличия своего проекта, на основании которых Вы говорите, что других подобных проектов нет?
Re: Язык программирования Санда
Можно просмотреть за пару минут. Пара типов данных, пара управляющих конструкций.
Но вообще для этих целей, когда язык минималистичен, лучше делать развернутый пример, отражающий все его ключевые особенности.
Для корпоративных приложений автоматизации бизнеса и работы с БД есть, например, дизель-паскаль, там интерпретатор. Полгода назад заявлена поддержка русского языка, но не смотрел. Там FireBird, которая с неплохо переведенным руководством, т.к. она крутится на Мосбирже.
-
- Сообщения: 31
- Зарегистрирован: 23.03.21 11:29
Re: Язык программирования Санда
Круть! Я на клиппере не начинал, а продолжал. Очень уважаю этот язык. Много лет на нем писал.
P.S.
Вам сколько лет? :O
Стараюсь придерживаться стиля 1С там, где это не противоречит парадигме.
С++. Где пока не могу отказаться, использую Qt. Стараюсь импользовать её возможности как можно меньше.
Язык должен жить отдельно как Питон или Бейсик.
Пока не до этого.
Сталаюсь делать так, чтобы перекомпилировать можно было под любую ОС. Например, на iOs, по идее, должен работать.
Я буду иметь в виду.БудДен писал(а): ↑23.03.21 18:34Я хотел бы, чтобы можно было писать учётные приложения на ЯОС, и мы, кажется, даже обсуждали это с автором "Перфоленты" или другого подобного проекта, но .NET слишком развитая платформа, с неё переходить на ЯОС, где мало всего, будет несподручно. Если ваш язык ещё мало развит и едва началась работа с СУБД, то может быть больше смысла.
Приятно иметь дело с разбирающимся человеком. :)
Я думаю, что это в перспективе сделаем.
Я считаю, что язык надо иметь под максимальным количеством операционок.
Хороший вопрос.
Я считаю, что только 1С может сравниться.
Например:
1. У меня нет строгой типизации переменных как и в 1С.
2. Это интерпретатор (отличие от перфодленты, как я понял)
3. Конструктор форм.
4. 2 языка (как 1С)
5. (пока не реализовано, но в планах стоит с самого начала) Передача кода как параметра (аналог клипперного блока кода).
Я подумаю над тем, чтобы более подробно (для себя) описать отличия. Я принял к сведению Ваш фопрос и сделал для себя выворды.
-
- Сообщения: 31
- Зарегистрирован: 23.03.21 11:29
Re: Язык программирования Санда
Согласен.
Но пока не до этого.
Кое что можно посмотреть в папке prgTest.
Например, помощь, вызываваемая из меню MDI или по командже MANU из графической консоли, фактически запускает программу testHelpLocalInterpretatorUtf8.prg
-
- Сообщения: 31
- Зарегистрирован: 23.03.21 11:29
Re: Язык программирования Санда
Можно запустить
- простейшую анимацию testAnimation.xml (форма в режиме исполнения)
- тест для школьников по геометрии testGeometry.xml (форма в режиме исполнения)
- testPixmap.prg и testPixmap1.prg (программы) разбирают графические изображения
- работа с JSON - testJson.prg и testJsonToValueList.prg
- ну и совсем простое пример_квадратноеУравнение_простоеРешение1.prg
- простейшую анимацию testAnimation.xml (форма в режиме исполнения)
- тест для школьников по геометрии testGeometry.xml (форма в режиме исполнения)
- testPixmap.prg и testPixmap1.prg (программы) разбирают графические изображения
- работа с JSON - testJson.prg и testJsonToValueList.prg
- ну и совсем простое пример_квадратноеУравнение_простоеРешение1.prg
Re: Язык программирования Санда
Я 1973 года.
Немного покритикую:
В целом ок, ставим процесс на паузу, ждём, пока/если Вы дозреете до версии под ЯОС. ЯОС тоже пока будет зреть, там многого не хватает (например, https). А по презентации лучше всего сделать видеоролик и всё там показать.
Ещё рекомендую попасть в этот каталог: http://compiler.su/entuziasty-razrabotc ... roekty.php
Думаю, для этого достаточно оставить комментарий на сайте - список явно со временем растёт.
Немного покритикую:
- динамическая типизация - это плохо, т.к. не позволяет сделать удобную среду разработки - из-за недостатка информации в тексте будет гораздо хуже работать автодополнение и переход к определению. Например, в C#, наверное, 90% кода со статической типизацией и 10%, где это нужно - с динамической. И плюс вывод типов, который позволяет меньше указывать типы напрямую. Пропорции можно насколько-то менять. Например, можно упростить контейнеры, если они будут хранить "любой объект" - тогда исчезнут все эти ковариантности и прочее. Примерно так сделано в лиспе - там встроенные контейнеры хранят любой объект. Но 0 статической и 100% динамической - это явно не золотая середина.
- чистый интерпретатор - это плохо, т.к. он медленный. Лучше всего - как в лиспе, когда можно смешивать интерпретируемый и компилируемый код, а также менять отдельные процедуры и типы, не прекращая выполнения программы. Естественно, это сложнее реализовать, чем интерпретатор, но оно того стоит.
В целом ок, ставим процесс на паузу, ждём, пока/если Вы дозреете до версии под ЯОС. ЯОС тоже пока будет зреть, там многого не хватает (например, https). А по презентации лучше всего сделать видеоролик и всё там показать.
Ещё рекомендую попасть в этот каталог: http://compiler.su/entuziasty-razrabotc ... roekty.php
Думаю, для этого достаточно оставить комментарий на сайте - список явно со временем растёт.
-
- Сообщения: 31
- Зарегистрирован: 23.03.21 11:29
Re: Язык программирования Санда
Я 68-го. Очень приятно, что писали на одном и том же.
Ок.
Даже не обсуждается.БудДен писал(а): ↑23.03.21 19:51[*] динамическая типизация - это плохо, т.к. не позволяет сделать удобную среду разработки - из-за недостатка информации в тексте будет гораздо хуже работать автодополнение и переход к определению. Например, в C#, наверное, 90% кода со статической типизацией и 10%, где это нужно - с динамической. И плюс вывод типов, который позволяет меньше указывать типы напрямую. Пропорции можно насколько-то менять. Например, можно упростить контейнеры, если они будут хранить "любой объект" - тогда исчезнут все эти ковариантности и прочее. Примерно так сделано в лиспе - там встроенные контейнеры хранят любой объект. Но 0 статической и 100% динамической - это явно не золотая середина.
Язык создается не для программистов, (даже типа, 1с-ники и ПХП-шники и Питонщики), а для простых людей. Простой человек имеет право не отличать unsigned int от double. Ему для нработы необходимо и достаточно понятия "число".
1С показывает вполне приемлемые результаты. А быстрее и не надо.БудДен писал(а): ↑23.03.21 19:51"[*] чистый интерпретатор - это плохо, т.к. он медленный. Лучше всего - как в лиспе, когда можно смешивать интерпретируемый и компилируемый код, а также менять отдельные процедуры и типы, не прекращая выполнения программы. Естественно, это сложнее реализовать, чем интерпретатор, но оно того стоит. "
В примере с анимацией даже специально поставлена задержка:
Код: Выделить всё
для кадрНомер=1 по списокКадров.количество() цикл
для задержкаИндекс=1 по 1000 цикл
задержкаИндекс=задержкаИндекс;
конецЦикла;
рядТекущий = кадрНомер;
текущееИзображение= списокКадров.значениеПолучить(кадрНомер);
// memoryDisplayVARS();
обновить();
// сообщить(кадрНомер);
конецЦикла;
Спасибо за совет. приму к сведению.
Спасбо! И про ЯОС тоже буду иметь в виду.БудДен писал(а): ↑23.03.21 19:51В целом ок, ставим процесс на паузу, ждём, пока/если Вы дозреете до версии под ЯОС. ЯОС тоже пока будет зреть, там многого не хватает (например, https). А по презентации лучше всего сделать видеоролик и всё там показать.
Ещё рекомендую попасть в этот каталог: http://compiler.su/entuziasty-razrabotc ... roekty.php
Думаю, для этого достаточно оставить комментарий на сайте - список явно со временем растёт.
Последний раз редактировалось ритминформ 23.03.21 21:20, всего редактировалось 1 раз.
Re: Язык программирования Санда
Лучше делать байт-код, потому что почти также просто, как интерператор и скорость проседает совсем незначительно, а динамические возможности сохраняются.БудДен писал(а): ↑23.03.21 19:51чистый интерпретатор - это плохо, т.к. он медленный. Лучше всего - как в лиспе, когда можно смешивать интерпретируемый и компилируемый код, а также менять отдельные процедуры и типы, не прекращая выполнения программы. Естественно, это сложнее реализовать, чем интерпретатор, но оно того стоит.
-
- Сообщения: 31
- Зарегистрирован: 23.03.21 11:29
Re: Язык программирования Санда
MihalNik писал(а): ↑23.03.21 20:10Лучше делать байт-код, потому что почти также просто, как интерператор и скорость проседает совсем незначительно, а динамические возможности сохраняются.БудДен писал(а): ↑23.03.21 19:51чистый интерпретатор - это плохо, т.к. он медленный. Лучше всего - как в лиспе, когда можно смешивать интерпретируемый и компилируемый код, а также менять отдельные процедуры и типы, не прекращая выполнения программы. Естественно, это сложнее реализовать, чем интерпретатор, но оно того стоит.
100%
Именно так и плоанируется. Но пока не до этого. Это потом.
-
- Сообщения: 31
- Зарегистрирован: 23.03.21 11:29
Re: Язык программирования Санда
Я тут не понял что имеется в виду.
У меня контейнер Класс ValueList (СписокЗначений) http://www.ritminform.ru/sanda/help/class_VALUELIST.htm и контейнер ValueTable (ТаблицаЗначений) http://www.ritminform.ru/sanda/help/cla ... ETABLE.htm хранят любые объекты. Не совсем понимаю какие с этим сложности.
Что имеете в виду?
Re: Язык программирования Санда
Вывод типов - это когда в коде написано
И компилятор сразу автоматически определяет, что б - это число. Насчёт unsigned int - это не отсутствие типов, а лишь степень их подробности или даже скорее то, подо что они заточены. Например, в том же лиспе (это мой любимый язык) есть тип "число", и можно сказать, что переменная имеет тип "число". Число делится на целое и плавающее, плавающее делится на одинарной и двойной точности, целое делится на ограниченное и неограниченное. Если в какой-то задаче нас не интересует, что конкретно за число, а просто нужно число, то мы так и пишем - "переменная б типа число", не детализируя. Это по той причине, что лисп создавался как язык для рассуждений. В Си и подобных языках типы нужны по той причине, что они в какой-то степени определяют необходимый объём памяти для хранения такого числа - ведь это языки для общения с железом. Хотя там это сделано довольно плохо. Всякие int64 - ещё ничего, а просто int - это какой-то ад, потому что в стандарте его размер чётко не определён.
Код: Выделить всё
б := 5
Последний раз редактировалось БудДен 23.03.21 22:40, всего редактировалось 1 раз.
Re: Язык программирования Санда
Не во всех языках такое есть. На мой взгляд, это скорее хорошо, но иногда можно запихнуть свиное рыло в калашный ряд, т.е. ошибиться - и тогда это плохо. Статическая типизация от этого защищает (в какой-то степени). Дальше, если в среде разработки мы пишем: "мойКонтейнер.ЗначениеПолучить(5)." и далее нажимаем Tab для автодополнения. То, если у нас нет статической типизации, то чем среда разработки заполнит список автодополнений? Либо всем, либо ничем. Если же известно, что мойКонтейнер хранит, скажем, веб-страницы, то в автодополнение сразу понятно, что может встретиться URL, исходныйТекст и т.п. В этом преимущества более подробной типизации. Недостаток - в том, что теряется непринуждённость работы с контейнерами. Например, если нужно скопировать данные из одного контейнера в другой, нужно следить за типами данных и в каком-то случае это может просто не получиться. Сложнее расширять программу и т.п. Т.е. есть у любого варианта и плюсы и минусы. Тем не менее, есть такая закономерность: для маленьких программ типизация скорее мешает, а для больших она скорее помогает.
-
- Сообщения: 31
- Зарегистрирован: 23.03.21 11:29
Re: Язык программирования Санда
Я не понимаю.
Это - операция присвоения.
И интерпретатор тоже самое делает.
Да. Но это определяет тип данных, которые хранит (представляет) переменная.
Как-то у нас проблемы в терминологии. Я никогда не слышал такой трактовки словосочетания "Вывод типов". Для меня это что-то новое.
Я в курсе.БудДен писал(а): ↑23.03.21 22:33Например, в том же лиспе (это мой любимый язык) есть тип "число", и можно сказать, что переменная имеет тип "число". Число делится на целое и плавающее, плавающее делится на одинарной и двойной точности, целое делится на ограниченное и неограниченное. Если в какой-то задаче нас не интересует, что конкретно за число, а просто нужно число, то мы так и пишем - "переменная б типа число", не детализируя. Это по той причине, что лисп создавался как язык для рассуждений. В Си и подобных языках типы нужны по той причине, что они в какой-то степени определяют необходимый объём памяти для хранения такого числа - ведь это языки для общения с железом. Хотя там это сделано довольно плохо. Всякие int64 - ещё ничего, а просто int - это какой-то ад, потому что в стандарте его размер чётко не определён.
Последний раз редактировалось ритминформ 24.03.21 00:32, всего редактировалось 1 раз.
-
- Сообщения: 31
- Зарегистрирован: 23.03.21 11:29
Re: Язык программирования Санда
Ну, пможно и на 0 поделить. :)
"Статическая типизация от этого защищает (в какой-то степени). "
Я в курсе.
Вы рассуждаете как программист. :) Пользователи (люди, которые пишут маленькие программы) этих проблем не испытывают.БудДен писал(а): ↑23.03.21 22:38Дальше, если в среде разработки мы пишем: "мойКонтейнер.ЗначениеПолучить(5)." и далее нажимаем Tab для автодополнения. То, если у нас нет статической типизации, то чем среда разработки заполнит список автодополнений? Либо всем, либо ничем. Если же известно, что мойКонтейнер хранит, скажем, веб-страницы, то в автодополнение сразу понятно, что может встретиться URL, исходныйТекст и т.п. В этом преимущества более подробной типизации.
Я за более чем 20 лет пролграммируя на 1С77 ни разу не испытал таких проблем. :)
Ну, я не сталкивался с такими сложностями. Хотя системы достаточно с большим количеством сущностей создавал.
Да. Я именно так и считаю.
Мне надо, чтобы писали бухгалтеры (как они писали в старой доброй досовской 1С) и менеджеры. А для этого надо делать наиболее просто.
-
- Сообщения: 31
- Зарегистрирован: 23.03.21 11:29
Re: Язык программирования Санда
В интерпретаторах числовые данные не должны для пользователя делиться на типы.
Точно так же, как и строковые. Не должен пользователь забивать себе голову диапазоном представляемых значений.
Мало того! Язык не должен ограничивать пользователя интерпретатора. Т.е. число -1234534534513451346234562345623.2346523456435634651346513434 должно восприниматься спокойно и не вызывать вопросов о способе его хранения в переменной.
У меня такое мнение.
Точно так же, как и строковые. Не должен пользователь забивать себе голову диапазоном представляемых значений.
Мало того! Язык не должен ограничивать пользователя интерпретатора. Т.е. число -1234534534513451346234562345623.2346523456435634651346513434 должно восприниматься спокойно и не вызывать вопросов о способе его хранения в переменной.
У меня такое мнение.
Re: Язык программирования Санда
type inference = вывод типа, вот словарь: https://translate.academic.ru/type%20inference/en/ru/ Ну, может быть, "выведение типа" более однозначно.Как-то у нас проблемы в терминологии. Я никогда не слышал такой трактовки словосочетания "Вывод типов". Для меня это что-то новое.
Если в 1С, то там всё же в основном сущностями наверняка были объекты базы данных (справочники, документы, регистры и что там ещё бывает), которые там в какой-то степени типизированы. Например, невозможно записать в какой-нибудь справочник запись от другого справочника, если у них различаются поля.Хотя системы достаточно с большим количеством сущностей создавал.
Но в общем я не хотел бы спорить, не думаю, что удастся Вас в чём-то переубедить, обычно из этого ничего не выходит - воззрения людей эволюционируют, но на это нужны годы, и причём они могут эволюционировать в разном направлении. Во всяком случае, если когда-то возникнет желание портировать Ваш язык и на ЯОС в том числе, то будет здорово. А пока следите за новостями - я постепенно пилю движок для вот такого словаря:
https://docs.google.com/spreadsheets/d/ ... =606456217
Все, кто делает что-то в ИТ, связанное с русским языком, по идее в нём должны быть заинтересованы, независимо от того, предпочитают ли они статическую или динамическую типизацию и т.п. Но формат таблиц гугл очень неудобен для администрирования. Думаю, в течение месяца-двух доделаю его и тогда будет анонс.
-
- Сообщения: 31
- Зарегистрирован: 23.03.21 11:29
Re: Язык программирования Санда
Блин!!! Определение типа результата! Определение типа значения-результата...БудДен писал(а): ↑24.03.21 01:11type inference = вывод типа, вот словарь: https://translate.academic.ru/type%20inference/en/ru/ Ну, может быть, "выведение типа" более однозначно.
Нет.БудДен писал(а): ↑24.03.21 01:11Если в 1С, то там всё же в основном сущностями наверняка были объекты базы данных (справочники, документы, регистры и что там ещё бывает), которые там в какой-то степени типизированы. Например, невозможно записать в какой-нибудь справочник запись от другого справочника, если у них различаются поля.
Я не 1С-ник, который чуть что - сравочник создает. :) После них конфигурации смотреть невозможно. Я нормальный.
Последний раз редактировалось ритминформ 24.03.21 06:16, всего редактировалось 3 раза.
-
- Сообщения: 31
- Зарегистрирован: 23.03.21 11:29
Re: Язык программирования Санда
У нас, надеюсь, нет предмета спора. Я как человек от ассемблера (цифровой код, бейсик, фортран, паскаль ассемблер и только потом dbase-подобные языки) Вас прекрасно понимаю.
Да, да. Я понял. Вы тоже не забывайте про Санду. Через пару лет она будет пригодна для болььших проектов.БудДен писал(а): ↑24.03.21 01:11Во всяком случае, если когда-то возникнет желание портировать Ваш язык и на ЯОС в том числе, то будет здорово. А пока следите за новостями - я постепенно пилю движок для вот такого словаря:
https://docs.google.com/spreadsheets/d/ ... =606456217
Все, кто делает что-то в ИТ, связанное с русским языком, по идее в нём должны быть заинтересованы, независимо от того, предпочитают ли они статическую или динамическую типизацию и т.п. Но формат таблиц гугл очень неудобен для администрирования. Думаю, в течение месяца-двух доделаю его и тогда будет анонс.
Например, мой учет и система закупок достаточно сложны. А в одном месте у меня крутится разработка ещё круче моего учета. Я планирую их переписать на Санда. Года через два-три.
- Лис [Вежливый]
- Сообщения: 563
- Зарегистрирован: 08.10.18 13:32
Re: Язык программирования Санда
Я заинтересован в толковом словаре. А в словаре переводов - нет. Потому что я не занимаюсь переводами.Все, кто делает что-то в ИТ, связанное с русским языком, по идее в нём должны быть заинтересованы
Словарём занимается Апресян ("Активный словарь русского языка"), но что-то там тема застопорилась на 3-м томе (буквах "з" и "и")...
Re: Язык программирования Санда
Значит, Лис не укладывается в мою идею и можно поправить мою формулировку. Это предоставляется читателю. Насчёт словаря Апресяна - может быть, его тоже надо подключить.
> Определение типа результата!
Ну я же этот термин не придумывал, а взял у кого-то. Во всяком случае, этот пример говорит о важности терминологии :) Но теоретически может быть, что выводится тип не только результата, но и операндов. Например, если мы определяем функцию, то компилятор какого-либо языка может выводить тип аргумента из операций, которые над ним делаются в теле функции. В этом случае "определение типа результата" не подойдёт, хотя не уверен, что в C# такое есть.
Насчёт неважности типа, хочу ещё предостеречь от грабель: "1"+1=11. Чтобы на них не попасть, операция конкатенации не должна обозначаться плюсиком. ЕМНИП в Бейсике сделали правильно, а вот в JS - нет.
> Определение типа результата!
Ну я же этот термин не придумывал, а взял у кого-то. Во всяком случае, этот пример говорит о важности терминологии :) Но теоретически может быть, что выводится тип не только результата, но и операндов. Например, если мы определяем функцию, то компилятор какого-либо языка может выводить тип аргумента из операций, которые над ним делаются в теле функции. В этом случае "определение типа результата" не подойдёт, хотя не уверен, что в C# такое есть.
Насчёт неважности типа, хочу ещё предостеречь от грабель: "1"+1=11. Чтобы на них не попасть, операция конкатенации не должна обозначаться плюсиком. ЕМНИП в Бейсике сделали правильно, а вот в JS - нет.
Re: Язык программирования Санда
История помнит много таких примеров. Бил-Гейтс каждая домохозяйка сможет писать на Бесике . В результате появились программисты.ритминформ писал(а): ↑24.03.21 00:31Мне надо, чтобы писали бухгалтеры (как они писали в старой доброй досовской 1С) и менеджеры. А для этого надо делать наиболее просто.
Каждый пользователь сможет делать запросы на языке SQL. В результате имеем SQL-программист и NoSQL-программистов.
Каждый пользователь сможет создать свой сайт используя HTML. В результате отдельная профессия верстальщик, фронэндер, и JS-программист
JSON сложно упрощаем до человеческого YML, имеем DevOPS.
Выведение типов, оно же вычисления типов. Сложный прием используемый в компиляторах для оптимизации программ.Вывод типов
Но в самом простом случае является обязательной стадией семантического анализа. Рода(Типы) переменных вы должны проставить над переменными и выражениями для вычисления результата. В 3-х оперенной форме для правильной расстановки нужно знать результат типа. И от него плясать.
Там ведь у вас не только у строк +. Но и у целых у дробных. У множеств.
И сцепку строк лучше делать не как в Бесике, а как в ПХП через точку.
-
- Сообщения: 31
- Зарегистрирован: 23.03.21 11:29
Re: Язык программирования Санда
Это не правда. Программисты появились задолго до высказывания Гейтса.
В РФ. В РФ программисты 1С и бухгалтерские работы выполняют. А вот товарищ рассказывал, что где-то за бугром менеджеры сами пишут SQL-запросы.
Да. Практически каждый пользователь может. Точно так же как каждый гендиректор может помыть полы. Уборщицы появились не потому, что директор полы помыть не может.
Я пишу на базе своего жизненного опыта.
Как минимум вчера разговаривал с человеком (коммерческий директор одной из компаний), которого я научил писать за несколько лет. Теперь программисты ему не нужны в принципе. Он их нанимает тогда, когда у самого нет времени что-то написать.
В 90-х годах бухгалтеры сами писали модули для проведения документов и составления отчетов. Возможно, Вы просто не знаете об этом. А я это наблюдал в течении нескольких лет в разных организациях. После этого Нуралиев приложил максимум усилий, чтобы уничтожить созданную 1С, поскольку она оставляла без работы очень большое количество ИТ-специалистов. Теперь ИТ должно Нуралиева в жопу целовать за то, что он сделал за последние 25 лет.
-
- Сообщения: 31
- Зарегистрирован: 23.03.21 11:29
Re: Язык программирования Санда
Вот поэтому я категорически против приведения типов. В 1С, кажется, такое возможно, а у меня - нет. У меня такое запрещено.
Не обязательно. Просто операция "+" не должна выполняться с парой "строка и число". Просто генерируется ошибка времени выполнения.
-
- Site Admin
- Сообщения: 20
- Зарегистрирован: 25.04.18 15:17
Re: Язык программирования Санда
Обсуждение термина type inference отделено в форум по терминологии.
Re: Язык программирования Санда
Я всё же осмелюсь продолжить критику: Вы сначала пишете, что Санда предназначен(а) для простых программ, но на горизонте в Ваших планах уже маячат сложные. Этот путь прошли уже многие языки, включая JavaScript и Python. Они начинались как языки для маленьких программ, потом перерастали себя и в конце концов на определённом этапе задумывались о добавлении статической типизации в той или иной форме. Однако если это не сделано сразу, то потом это уже делается гораздо труднее. Я столкнулся в лиспе ровно с той же ситуацией: без статической типизации ограничены возможности среды разработки. Т.е. я бы на Вашем месте постарался более чётко ответить себе на вопрос: для каких программ предназначен Ваш язык - для маленьких или для больших?
Далее, про "1"+1 - тут вопрос, отличается ли у Вас строка от числа вообще? Вы написали, что типы вообще не нужны. Но я бы посоветовал тогда изучить язык tcl. В нём есть только один тип - строка, и интерпретация этого типа зависит от контекста. Т.е., в определённых случаях строка может восприниматься как число, указатель, открытый файл и т.п. Это наиболее ужасно в плане грабель, однако работать на этом языке приятно. А почему? Я долго не мог понять, а потом понял: в Си объект в памяти будет представлен просто числом (адресом), если не постараться. В тикле же адрес имеет вид строки, и поэтому у всех объектов само собой получаются "говорящие имена". Обычно их образуют в подобие дерева, и они сразу "разложены по полочкам". Разбираться в такой среде и сохранять над ней контроль - гораздо проще. Я до сих пор не могу это осознать, настолько его философия отличается от других, хотя я на нём написал не меньше 100кб кода. Но исходя из того, что у Вас нельзя сложить строку и число, получается, что типы у Вас всё же есть. Но как тогда определить Вашу философию по отношению к типам?
Далее, про "1"+1 - тут вопрос, отличается ли у Вас строка от числа вообще? Вы написали, что типы вообще не нужны. Но я бы посоветовал тогда изучить язык tcl. В нём есть только один тип - строка, и интерпретация этого типа зависит от контекста. Т.е., в определённых случаях строка может восприниматься как число, указатель, открытый файл и т.п. Это наиболее ужасно в плане грабель, однако работать на этом языке приятно. А почему? Я долго не мог понять, а потом понял: в Си объект в памяти будет представлен просто числом (адресом), если не постараться. В тикле же адрес имеет вид строки, и поэтому у всех объектов само собой получаются "говорящие имена". Обычно их образуют в подобие дерева, и они сразу "разложены по полочкам". Разбираться в такой среде и сохранять над ней контроль - гораздо проще. Я до сих пор не могу это осознать, настолько его философия отличается от других, хотя я на нём написал не меньше 100кб кода. Но исходя из того, что у Вас нельзя сложить строку и число, получается, что типы у Вас всё же есть. Но как тогда определить Вашу философию по отношению к типам?
Последний раз редактировалось БудДен 25.03.21 22:31, всего редактировалось 2 раза.
Re: Язык программирования Санда
Хотя я прочитал описание про типы - более-менее понял.
-
- Сообщения: 31
- Зарегистрирован: 23.03.21 11:29
Re: Язык программирования Санда
Опять вопрос терминологии.
"Сложные" vs "большие".
Я прежде всего ориентируюсь на БД и учет. Там не бывает сложных программ.
Прекрасно! Ещё раз говорю. Язык - для простых людей, а не для программистов. Их потребности, как правило, весьма ограничены.
В том же самом екселе 90 процентов юзеров кроме функции СУММ ничего больше не знают. Я уж не говорю о встроенном VB.
Размер в данном случае не имеет значения как и количество строк в электроннойц таблице.
Отличается.
http://www.ritminform.ru/sanda/help/lan ... aTypes.htm
Беглое знакомство с Tcl/Tk прошло лет 10 назад. :)
Типы есть. Наверно, я изначально что-то не так разъяснил.БудДен писал(а): ↑25.03.21 22:28В нём есть только один тип - строка, и интерпретация этого типа зависит от контекста. Т.е., в определённых случаях строка может восприниматься как число, указатель, открытый файл и т.п. Это наиболее ужасно в плане грабель, однако работать на этом языке приятно. А почему? Я долго не мог понять, а потом понял: в Си объект в памяти будет представлен просто числом (адресом), если не постараться. В тикле же адрес имеет вид строки, и поэтому у всех объектов само собой получаются "говорящие имена". Обычно их образуют в подобие дерева, и они сразу "разложены по полочкам". Разбираться в такой среде и сохранять над ней контроль - гораздо проще. Я до сих пор не могу это осознать, настолько его философия отличается от других, хотя я на нём написал не меньше 100кб кода. Но исходя из того, что у Вас нельзя сложить строку и число, получается, что типы у Вас всё же есть. Но как тогда определить Вашу философию по отношению к типам?
-
- Сообщения: 31
- Зарегистрирован: 23.03.21 11:29
Длинная арифметика
Вот приблизительно так.
Пока не думал о пределах. Пока где-то 16-32 знака после запятой и приблизительно 100 тысяч знаков до...
P.S.
Заливать новую версию пока не стал. Неделю-две потестирую ещё. Делал больше месяца так что пара недель ещё подождут...
Пока не думал о пределах. Пока где-то 16-32 знака после запятой и приблизительно 100 тысяч знаков до...
P.S.
Заливать новую версию пока не стал. Неделю-две потестирую ещё. Делал больше месяца так что пара недель ещё подождут...
Re: Язык программирования Санда
Добавьте, пожалуйста, тег # р у с с к о я з ы ч н ы й я з ы к п р о г р а м м и р о в а н и я в первое сообщение (теги плохо работают, но всё равно без них ещё хуже).
Последний раз редактировалось БудДен 10.06.21 11:27, всего редактировалось 2 раза.
-
- Сообщения: 31
- Зарегистрирован: 23.03.21 11:29
Re: Язык программирования Санда
Кстати, я неправильно процитировал тег, там в правилах написано, что нужно разделять буквы пробелами, чтобы оне не выпадали в поиске. Исправляю...
Re: Язык программирования Санда
Не подумайте, что "придираюсь", но моя училка по русскому выпала бы в "осадок", глядя на столь часто употребляемые нами тавтологии:
"русскоязычный язык программирования" (уж лучше "русскоязычное программирование")
Re: Язык программирования Санда
речь идёт именно о языках программирования, а не о русскоязычном программировании (которое может быть и на англоязычных с русскими идентификаторами). То, что слово "язык" применяется два раза, не кажется мне страшным, потому что тут есть человеческие языки и языки программирования. И те, и другие присутствуют в данном ключевом слове.