|
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
|
|
Новый язык программирования SPL20.05.2017, 16:30. Показов 9333. Ответов 83
Метки нет (Все метки)
Всем привет!
Я сейчас делаю новый язык программирования, называется SPL (Simple Programming Language). Это высокоуровневый интерпретируемый язык, который реализован в виде UWP приложения для Windows 10. Основное ядро языка уже готово. Желающие протестировать, поделиться своими соображениями и пожеланиями - добро пожаловать! Для тех, кто знает английский язык - у меня уже написана книга про SPL, подробно описывающая структуру языка и снабженная примерами. На русский я ее еще не перевел, потому что пока это рабочий документ, книга постоянно дорабатывается и обновляется. А на английском она потому, что с английского языка ее потом будет проще перевести на русский, чем с русского на английский. Также я готов обсуждать и отвечать на вопросы здесь, на форуме. Вкратце о языке. Он не содержит ключевых слов и очень лаконичен в своей записи. В SPL все переменные имеют автоматический тип, все массивы - динамические гетерогенные. Из любого места можно пользоваться локальными переменными любой функции. #.output("Hello, world!") Печатает текст "Hello, world!". Символ "#" показывает, что функция принадлежит группе системных функций. Приведенная ниже программа печатает то же самое: текст="Hello, world!" печать=#.output печать(текст) Это пример условия, в котором если "a" больше 5, то в "b" заносится 1, иначе в "b" заносится 0: ? a>5 b=1 ! b=0 . Это пример перехода на метку, где "->" это команда перехода, а метка указывается после символа ":": -> метка :метка или так: ->1 :1 Это пример цикла, который печатает цифры от 1 до 10: a=0 > a<10 a+=1 #.output(a) < Это пример определения и использования функции пользователя "diag". Программа в результате печатает число 5 (диагональ катетов длиной 3 и 4): diag(x,y)<=#.sqrt(x^2+y^2) #.output(diag(3,4)) Вот более сложный пример определения и рекурсивного вызова функции "f", которая рассчитывает факториал числа. Программа в результате печатает число 120 (факториал числа 5): f(k)= ?k=1;<=1;. <=k*f(k-1) . #.output(f(5)) В SPL очень много особенностей, некоторые из которых вы не найдете в других языках программирования. Поскольку SPL я делаю в виде UWP приложения, то программа работает на любом типе устройства под управлением Windows 10, а программы пользователя автоматически синхронизируются между вашими устройствами. Программа пока в самом начале развития, в стадии альфа-версии. Но там уже работает редактор кода и есть что тестировать в самом языке. Если кто-нибудь захочет принять участие в бета-тестировании и поближе ознакомиться с SPL - пишите, я поделюсь линком для установки из магазина Microsoft Store. Спасибо за внимание! Добавлено через 50 минут Линк на мою книгу по SPL (англ. яз.): http://kibernetik.pro/forum/vi... =71&t=1717 Текст постоянно дописывается и переписывается, пока язык в процессе разработки. Все, что описано в книге, уже сделано и работает в альфа-версии. Все примеры программ - рабочие.
0
|
|
| 20.05.2017, 16:30 | |
|
Ответы с готовыми решениями:
83
Новый язык программирования Новый язык программирования LUX Язык программирования Яр |
|
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
|
|
| 06.07.2017, 00:04 [ТС] | |
|
Теперь SPL годится для создания самостоятельных UWP приложений благодаря SPL SDK. Эти приложения можно при желании загружать в Microsoft Store.
0
|
|
|
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
|
||||||
| 13.07.2017, 10:30 [ТС] | ||||||
|
SPL теперь имеет в своем арсенале объекты интерфейса. С точки зрения синтаксиса, это просто интерактивные группы.
Пример программы, которая создает на экране кнопку. При нажатии на кнопку программа выводит на экран текст, написанный на кнопке:
0
|
||||||
|
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
|
|
| 26.07.2017, 12:09 [ТС] | |
|
Приложение "SPL" из стадии закрытой беты перешло в стадию открытого бета-тестирования и теперь доступно всем желающим. Подробности на сайте http://kibernetik.pro/spl/
0
|
|
|
199 / 102 / 4
Регистрация: 16.08.2015
Сообщений: 209
|
|
| 27.07.2017, 17:14 | |
|
Чем-то похоже на tcl (который сделан уже много лет назад).
Я правильно понял. что Smart Basic пользуется определённой популярностью? Форум достаточно большой. Я тоже делаю свой язык программирования, ищу, кого привлечь в свой проект. Хотя понятно, что авторы своих языков - это те, кого уговорить на такое сотрудничество удастся в самую последнюю очередь ![]() Добавлено через 1 час 12 минут Я бы советовал использовать больше всяких смайликов, если речь идёт о языке для мобильных устройств. Задействуйте любые значки, к-рые удобно ввести с виртуальной клавиатуры устройства - так текст будет компактнее.
0
|
|
|
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
|
||
| 27.07.2017, 17:20 [ТС] | ||
|
Я не совсем понимаю, о каком привлечении в свой проект вы говорите, но в любом случае это правильно - опубликовать о своем проекте информацию и сказать о том, какое участие вы ожидаете от тех, кто заинтересовался вашим проектом.
0
|
||
|
199 / 102 / 4
Регистрация: 16.08.2015
Сообщений: 209
|
|
| 27.07.2017, 18:00 | |
|
Вы можете найти по моему профилю, но в целом я даже не буду к вам обращаться с таким предложением, и не буду тут занимать место своей рекламой. То, что вы делаете, у вас получается лучше, чем у меня получается то, что я делаю, желаю дальнейших успехов
0
|
|
|
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
|
||
| 27.07.2017, 19:55 [ТС] | ||
|
Для разработчиков языков, мне кажется, интересным и плодотворным может быть такое участие, как сравнение кодов на разных языках одной и той же задачи. Лично мне это всегда дает много пищи для размышления. То есть если вам будет интересно сравнение своего языка с моим, то можете предлагать мне такое "соревнование кодов" - какую-нибудь микро-задачу или просто образец синтаксиса, и свой код для реализации этого. Я приведу пример этого кода на моем языке - и в таком сравнении можно будет отлаживать синтаксис и другие конструкции языка.
0
|
||
|
199 / 102 / 4
Регистрация: 16.08.2015
Сообщений: 209
|
|
| 27.07.2017, 22:54 | |
|
Вряд ли в данном случае имеет смысл. Слишком разные цели создания языков. И кроме того, есть какой-нибудь rosetta code.
0
|
|
|
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
|
|||||||||||||||||
| 02.08.2017, 11:38 [ТС] | |||||||||||||||||
|
Да, значки - это верно. Но тут важно не перегнуть палку - я стараюсь, чтобы SPL не превратился в криптографическую запись в погоне за компактностью. В качестве примера приведу форму записи, которую я недавно добавил для простых условий (когда нужно выполнить всего одно действие при соблюдения условия). Хотя в общем виде в SPL условие записывается так (пример: если a=0, то выполнить функцию f()):
0
|
|||||||||||||||||
|
199 / 102 / 4
Регистрация: 16.08.2015
Сообщений: 209
|
|
| 02.08.2017, 12:48 | |
|
Для этого надо знать, что там есть на клавиатуре. посмотрел на свой андроид - ничего особого нет, значков примерно столько же, сколько на компьютерной клавиатуре. Может быть, имело бы смысл заменять некоторые слова на экране значками, например, вместо output рисовать какую-нибудь стрелочку из юникода.
0
|
|
|
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
|
||
| 02.08.2017, 13:21 [ТС] | ||
|
Отмечу, что в SPL любую функцию легко скопировать, например пч = #.output чтобы дальше уже писать пч("Мой текст")
0
|
||
|
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
|
|||||||||||
| 06.08.2017, 12:40 [ТС] | |||||||||||
|
Программа перевода римских цифр в арабские:
Другая версия программы перевода римских чисел в арабские. Она выглядит попроще и работает немного по-другому.
0
|
|||||||||||
|
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 09.08.2017, 04:31 [ТС] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Пример работы SPL со сложными Unicode строками: (первая строка кода отображается некорректно, поэтому ниже привожу ее еще раз отдельно) t = ["J̲o̲s̲é̲","møøse","𝔘𝔫𝔦𝔠𝔬𝔡𝔢"]
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||