Форум программистов, компьютерный форум, киберфорум
Наши страницы
Другие языки программирования
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
Mr_K
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
1

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

20.05.2017, 16:30. Просмотров 2830. Ответов 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
Ответы с готовыми решениями:

Новый язык программирования
я изобрел самый лучший язык программирования и самый простой program SAMPLE...

Новый язык программирования LUX
*** Новый язык программирования LUX - особенности программирования. ...

Язык программирования Яр
Разрабатываю полностью русскоязычный язык программирования для...

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

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

83
Mr_K
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
19.09.2017, 03:33  [ТС] 81
Анимация фрактала hopalong. Благодаря такой раскраске цвета переливаются подобно калейдоскопу.
Objective-C
1
2
3
4
5
6
7
8
9
10
11
a = 1 ; b = 3 ; c = 36 'change me
w,h = #.scrsize()
x,y = 0
i = 0
#.drawrotate(w/2,h/2,#.pi/4)
>
  x,y = f(x,y)
  #.drawpoint(x+w/2,y+h/2,#.hsv2rgb(i,1,1):3)
  i += 0.0001
<
f(x,y) <= y+#.sign(x)*#.sqrt(#.abs(.b*x-.c)), .a-x
Новый язык программирования SPL
1
Mr_K
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
21.09.2017, 09:10  [ТС] 82
Фрактальный генератор деревьев:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#.scrclear(0.7,0.8,1)
w,h = #.scrsize()
tree(w/2,h,#.pi*1.5,h*0.27)
 
tree(x,y,a,b)=
  ? b<1, <=
  x1 = x+b*#.cos(a)
  y1 = y+b*#.sin(a)
  p = b*(#.rnd(0.15)+0.85)
  ? p<.h*0.1 'leaf
    #.drawcolor(#.hsv2rgb(120,#.rnd(.5)+.5,#.rnd(.6)+.3):3,.5)
    #.drawsize(.h/80)
    #.drawline(x,y,x1,y1)
  ! 'branch
    #.drawcolor(0.6,0.25,0)
    #.drawsize(p/6)
    #.drawline(x,y,x1,y1)
    #.drawcolor(0.5,0.2,0)
    #.drawsize(p/18)
    #.drawline(x-p/18,y,x1-p/18,y1)
  .
  > i, 0..9-#.rnd(7)
    s = #.rnd(b*0.85)+b*.15
    da = 1-#.rnd(1)*2
    a1 = a+0.75*da
    x1 = x+s*#.cos(a)
    y1 = y+s*#.sin(a)
    db = 1-#.abs(da)*0.05
    tree(x1,y1,a1,(p-.h*0.01-#.rnd(.h*0.06))*db)
  <
.
Новый язык программирования SPL
1
Mr_K
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
12.10.2017, 17:48  [ТС] 83
Фрактал Снежинка
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
levels = 5
w,h = #.scrsize()
flake(w/2,h/2,#.min(w,h)/4,0)
flake(x,y,r,n)=
  > i, 1..12,2
    a = #.pi/6*i
    x1 = x+r*#.cos(a)
    y1 = y-r*#.sin(a)
    #.drawline(x,y,x1,y1)
    ? n<.levels, flake(x1,y1,r/3,n+1)
  <
.
Новый язык программирования SPL
1
Mr_K
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
05.01.2018, 01:02  [ТС] 84
Приложение опубликовано в общем доступе в Microsoft Store: https://www.microsoft.com/ru-ru/store/p/spl/9nf9tncg82p1?rtc=1
0
05.01.2018, 01:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2018, 01:02

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

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

Что за язык программирования?
что за язык программирования &gt; restart:with(networks): &gt;...


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

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

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