Форум программистов, компьютерный форум, киберфорум
Наши страницы

Другие языки программирования

Войти
Регистрация
Восстановить пароль
 
 
Mr_K
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
#1

Новый язык программирования SPL - Программирование

20.05.2017, 16:30. Просмотров 2635. Ответов 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/viewtopic.php?f=71&t=1717
Текст постоянно дописывается и переписывается, пока язык в процессе разработки.
Все, что описано в книге, уже сделано и работает в альфа-версии. Все примеры программ - рабочие.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2017, 16:30
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Новый язык программирования SPL (Программирование):

Новый язык программирования LUX - Программирование
*** Новый язык программирования LUX - особенности программирования. Язык программирования LUX 11-го мая 2006 года, на...

Язык программирования РС/Б - Программирование
На страничке http://www.rs-b.nm.ru можно скачить компилятор (написаный полностью на асм), примеры, и почитать доки. Мне интересно ваше...

Язык программирования Яр - Программирование
Разрабатываю полностью русскоязычный язык программирования для профессионального применения (не учебный). Основные достоинства: -...

Символьный язык программирования - Программирование
Символьный язык программирования. Преамбула. В этом маленьком тексте я попробую описать идею, которая у меня родилась ...

Язык программирования Kotlin - Программирование
Достаточно интересный новый (2011г.) язык Kotlin, предлагающийся компанией JetBrains (как? вы не слышали про JetBrains?:p:rtfm:) на замену...

Icon язык программирования - Программирование
кто знает, где скачать учебник по icon на русском?

83
korvin_
2083 / 1574 / 253
Регистрация: 28.04.2012
Сообщений: 5,670
20.05.2017, 21:56 #2
Цитата Сообщение от Mr_K Посмотреть сообщение
В SPL все переменные имеют автоматический тип
Что это за тип такой?

Цитата Сообщение от Mr_K Посмотреть сообщение
Символ "#" показывает, что функция принадлежит группе системных функций
Зачем это показывать?

Цитата Сообщение от Mr_K Посмотреть сообщение
Это пример перехода на метку, где "->" это команда перехода, а метка указывается после символа ":":
И это во времена, когда большинство языков отказались от goto?

Цитата Сообщение от Mr_K Посмотреть сообщение
В SPL очень много особенностей, некоторые из которых вы не найдете в других языках программирования.
Например? Пока, кроме непривычного синтаксиса, никаких отличительных особенностей не видно.

Цитата Сообщение от Mr_K Посмотреть сообщение
Поскольку SPL я делаю в виде UWP приложения, то программа работает на любом типе устройства под управлением Windows 10, а программы пользователя автоматически синхронизируются между вашими устройствами.
Зачем? Лучше бы кроссплатформенное приложение написал.

Цитата Сообщение от Mr_K Посмотреть сообщение
Но там уже работает редактор кода
Зачем? Для такого простого языка можно использовать любой текстовый редактор. Лучше больше усилий направить на собственно компилятор/интерпретатор.
0
Mr_K
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
20.05.2017, 22:02  [ТС] #3
Цитата Сообщение от korvin_ Посмотреть сообщение
Зачем это показывать?
Встречный вопрос - зачем что-то писать, если нечего сказать?
0
korvin_
2083 / 1574 / 253
Регистрация: 28.04.2012
Сообщений: 5,670
20.05.2017, 22:14 #4
Цитата Сообщение от Mr_K Посмотреть сообщение
Встречный вопрос - зачем что-то писать, если нечего сказать?
Видимо, графомания? Или я ошибаюсь и ты не поэтому пишешь?

У тебя очень странный способ заинтересовывать людей: отвечать на вопросы хамством.
2
Mr_K
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
20.05.2017, 22:28  [ТС] #5
Цитата Сообщение от korvin_ Посмотреть сообщение
Видимо, графомания? Или я ошибаюсь и ты не поэтому пишешь?

У тебя очень странный способ заинтересовывать людей: отвечать на вопросы хамством.
Я вижу, вы не видите разницы между "поделиться своими соображениями и пожеланиями" и своими советами о том, что я должен и что не должен делать.
Я дал линк на мою книгу, где язык описан более подробно. Если что-то непонятно или если есть конкретные вопросы по SPL - спрашивайте. Если просто хотите поумничать про "времена, когда большинство языков отказались от goto" - то просьба делать это в другой теме.
0
korvin_
2083 / 1574 / 253
Регистрация: 28.04.2012
Сообщений: 5,670
20.05.2017, 23:40 #6
Цитата Сообщение от Mr_K Посмотреть сообщение
Я вижу, вы не видите разницы между "поделиться своими соображениями и пожеланиями" и своими советами о том, что я должен и что не должен делать.
Я задал уточняющие вопросы о причинах принятых решений. И высказал свои соображения. Но, я так понимаю, на самом деле ты не готов
Цитата Сообщение от Mr_K Посмотреть сообщение
обсуждать и отвечать на вопросы здесь, на форуме
Зачем тогда вообще эта тема? Попиарить язык и книгу?

Цитата Сообщение от Mr_K Посмотреть сообщение
Я дал линк на мою книгу, где язык описан более подробно.
Зачем тратить на это время, если ты не привёл ни одной причины, почему это стоит сделать? Языков тысячи самых разных, чем по-твоему, должен быть интересен твой? Это основной вопрос.

Цитата Сообщение от Mr_K Посмотреть сообщение
Если что-то непонятно или если есть конкретные вопросы по SPL - спрашивайте.
Я и спросил.

Цитата Сообщение от Mr_K Посмотреть сообщение
Если просто хотите поумничать про "времена, когда большинство языков отказались от goto" - то просьба делать это в другой теме.
Я констатировал факт. Метки и переходы по ним общепринято считаются негативным механизмом, ухудшающим структуру кода в большинстве случаев, поэтому нелохо бы было объяснить причины, по которым ты реализовал их в своём языке.
0
Mr_K
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
21.05.2017, 00:36  [ТС] #7
Цитата Сообщение от korvin_ Посмотреть сообщение
Зачем тратить на это время, если ты не привёл ни одной причины, почему это стоит сделать? Языков тысячи самых разных, чем по-твоему, должен быть интересен твой? Это основной вопрос.
Дело даже не в языке, сам посебе синтаксис языка - это дело второе. Назначение SPL - быть языком легкого и быстрого применения. Первично здесь именно приложение. То есть: клик на иконку приложения - окно редактора - короткий и эффективный код - программа работает - результат получен. Результат самый разный - построенный график, сетевое приложение, небольшая игра. Программа может быть одна строка, если нужно просто посчитать формулу. Программа может быть десять строк, сто строк или больше - но самое главное - ни одной лишней строки, которая не была бы рабочей частью вашего алгоритма. Причем что важно - чтобы это можно было бы сделать одинаково легко и просто и на ноутбуке, и на смартфоне, и на планшете - быстро и эффективно. Может быть языков и тысячи, но таких приложений у меня на компьютере нет. Можно конечно запустить Visual Studio, но языки типа C, основанные на работе библиотек, требуют многочисленных подготовительных действий в коде прежде чем доберешься до написания самого алгоритма программы. Да и не работает VS, к примеру, на смартфоне.

Сделаю небольшое отступление. SPL - это не первый мой язык. У меня уже есть собственная версия языка BASIC, которая называется "smart BASIC" и работает на iOS. Это очень продвинутая и при этом простая версия языка, причем программу, написанную на smart BASIC, можно даже опубликовать в App Store и она будет работать как самостоятельное iOS приложение. Но для Windows я такого приложения не знаю. Поэтому и появилось приложение SPL.
В SPL я решил не привязываться к реализации какого-то существующего языка, а сделать собственный синтаксис. Максимально простой, максимально эффективный. Simple Programming Language. Причем сам функционал у SPL будет очень широким. Поэтому назначение языка SPL - максимально снять с программиста необходимость набирать код, который не несет алгоритмической нагрузки.

Цитата Сообщение от korvin_ Посмотреть сообщение
Я констатировал факт. Метки и переходы по ним общепринято считаются негативным механизмом, ухудшающим структуру кода в большинстве случаев, поэтому нелохо бы было объяснить причины, по которым ты реализовал их в своём языке.
Потому что если не сделать метки, то первое, что я услышу - а где же метки? Где переходы, которые есть в любом популярном языке программирования?

На самом деле, в SPL есть не только метки и переходы на метки, но и "визиты" меток. Иногда бывает нужно выполнять какую-то часть кода из разных мест в программе, при этом не вынося эту часть кода в отдельную функцию. Для этого в SPL есть "визит" метки, после которого управление передается назад в то место, откуда посещалась метка (аналог GOSUB/RETURN в BASIC).

Так что функционал меток в SPL расширен для максимального удобства. Ведь никто силой не заставляет использовать метки, если этого не требуется.
0
magirus
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
27746 / 15653 / 946
Регистрация: 15.09.2009
Сообщений: 67,839
Записей в блоге: 78
21.05.2017, 00:56 #8
Цитата Сообщение от Mr_K Посмотреть сообщение
Я сейчас делаю новый язык программирования
а зачем?

Добавлено через 53 секунды
тем более интерпретируемый?
0
Mr_K
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
21.05.2017, 01:08  [ТС] #9
Цитата Сообщение от magirus Посмотреть сообщение
а зачем?

Добавлено через 53 секунды
тем более интерпретируемый?
См. предыдущий пост, первую часть.
0
magirus
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
27746 / 15653 / 946
Регистрация: 15.09.2009
Сообщений: 67,839
Записей в блоге: 78
21.05.2017, 01:10 #10
в том то и дело что прочел...
0
Mr_K
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
21.05.2017, 01:19  [ТС] #11
Цитата Сообщение от magirus Посмотреть сообщение
в том то и дело что прочел...
Тогда встречный вопрос - зачем по-вашему вообще нужны языки программирования? И на досуге можете подумать о том, почему язык программирования не один единственный.
0
Dmitriy_M
1406 / 1289 / 121
Регистрация: 20.03.2009
Сообщений: 4,593
Записей в блоге: 11
21.05.2017, 01:21 #12
Цитата Сообщение от Mr_K Посмотреть сообщение
сам посебе синтаксис языка - это дело второе.
Когда программист приходит работать в новую компанию, то ему приходится читать большое количество кода. Поэтому в Python и Golang уделяют внимание читаемости.

Цитата Сообщение от Mr_K Посмотреть сообщение
Но для Windows я такого приложения не знаю.
Microsoft Small Basic
0
Mr_K
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
21.05.2017, 01:30  [ТС] #13
Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Когда программист приходит работать в новую компанию, то ему приходится читать большое количество кода. Поэтому в Python и Golang уделяют внимание читаемости.
Замечательно. Поскольку в SPL я уделил большое внимание читаемости. Можно сравнить, если хотите.
Проще, чем в SPL, навряд ли возможно. А сложнее и читаемее - это вовсе не синонимы.

Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Microsoft Small Basic
Я могу запустить его у себя на смартфоне, чтобы, например в дороге, погонять на нем программы?
0
_Ivana
3229 / 1857 / 157
Регистрация: 01.03.2013
Сообщений: 5,085
Записей в блоге: 5
21.05.2017, 02:46 #14
Могу высказать пожелание - можно переименовать язык в SPJ (simple programm joy/joke/etc), ну и аллюзии к https://ru.wikipedia.org/wiki/%D0%9F...BC%D0%BE%D0%BD конечно
0
Mr_K
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
21.05.2017, 03:54  [ТС] #15
Цитата Сообщение от _Ivana Посмотреть сообщение
Могу высказать пожелание - можно переименовать язык в SPJ (simple programm joy/joke/etc), ну и аллюзии к https://ru.wikipedia.org/wiki/%D0%9F...BC%D0%BE%D0%BD конечно
Можете. А зачем?
0
21.05.2017, 03:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2017, 03:54
Привет! Вот еще темы с ответами:

Что за язык программирования? - Программирование
что за язык программирования &gt; restart:with(networks): &gt; new(G):V:=$1..14:addvertex(,G): &gt; v1:=1:#источник &gt;...

Определить язык программирования - Программирование
:umnik: #!/usr/bin/env python # -*- coding: utf-8 -*- def Cord ( char ) : num = ord(char) if num &lt; 32 : ...

Язык программирования GRASS - Программирование
У кого-нибуть есть информация по этому языку программирования? Поисковые системы выдают информацию что что это какой-то бейсико-подобный...

Язык программирования Pike - Программирование
Пайк (англ. Pike — «щука») — динамический интерпретируемый объектно-ориентированный язык программирования с C/C++-подобным синтаксисом. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru