Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 21.12.10 11:11
Оценка: 5 (2) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :)))
ПРЕДИСЛОВИЕ

Родилась идея создать язык:
А) Простой
Б) Ультракороткий

Для начала давайте определим, для чего вообще нужен еще один из тысяч языков.

Основная цель — это создать очень компактный, черезвычайно легкий в понимании и отладке и при этом мощный язык программирования. На мой взгляд существующие языки в этом классе неоправданно сложны, напоминают шифр и просто мало популярны.
Кодить на нем будет действительно просто и быстро. Ну скажем микро программки вроде реверса, палиндрома, фибоначчи или факториала до 1 минуты.
А закодить шахматы займет ну может 1 час.

Пренебречь можно — скоростью работы интерпретатора, основная цель это разработка синтаксиса. Хороший и быстрый интерпретатор можно отложить на перспективу.

Условия разработки — проект интерпретатора будет разрабатываться как опен сорс на шарпе.

Использоваться будет — пока что в академических целях

ВВОДНАЯ В ЯЗЫК

Традиционно знакомство с создания простейшей программы начинается с Hello World!
На языке RS это будет выглядеть так:
'Hello World!

Но можно записать и короче ( это же ультракороткий язык ).

[Пустая строка]

Эта строка тоже выведет фразу Hello World!

Основные арифметические операции будут выглядеть традиционно:

(2+3)*8/2+1

Примечание: скобки пока в интерпретаторе не поддерживаются сделаю попозже

Обьявить обычную переменную можно так

Х:=5

Здесь мы обьявляем переменную и присваиваем ей значение 5

Обьявить массив целых чисел, допустим от 1 до 9 можно так:
1..9

Можно и динамически указать диапазон массива.
Х:=5
Arr:=1..X

Теперь мы можем написать свою первую программу, например нахождения факториала.
1..5\*

ДРУГИЕ ПРИМЕРЫ

Еще примеры программ:
//2. фибоначчи
E X:=1..10
E X.(I+2):=X.I+X.(I+1)
E X

//3. сортировка пузырьком
E X:=1..10
E X.I>X.J?X.I:=:X.J
E X

//4. палиндром
E X:=1,2,3,2,1
E B:=True
E B:=B&(X.(5/2-I)=X.(5/2+I))
E B

//5. revers
E X:=1..5
E X.(5/2-I):=:X.(5/2+I))
E X

//6. проверка на простое число
E X:=6
E X%2..(X-1)\<

23.12.10 14:12: Перенесено модератором из 'Философия программирования' — kochetkov.vladimir
26.09.11 16:41: Перенесено из 'Компьютерные священные войны'
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 21.12.10 11:33
Оценка:
Да, есть первый наброски интерпретатора, здесь:

http://code.google.com/p/rsinterpretator/

О нем можно много рассказывать и он уже умеет довольно много.
Например он умеет работать с дробными числами:

1./5 + 1./5 = 2./5

Но главное, для чего это все задумывалось, я хочу в нем развить идеи аспектного программирования.
Думается оно даже более перспективно чем ООП.
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re: Ультракороткий язык программирования RS
От: ononim  
Дата: 21.12.10 11:34
Оценка: +1 :))) :)
PC_>Основная цель — это создать очень компактный, черезвычайно легкий в понимании и отладке и при этом мощный язык программирования. На мой взгляд существующие языки в этом классе неоправданно сложны, напоминают шифр и просто мало популярны.
PC_>Кодить на нем будет действительно просто и быстро. Ну скажем микро программки вроде реверса, палиндрома, фибоначчи или факториала до 1 минуты.
PC_>А закодить шахматы займет ну может 1 час.
Вот так появился перл...
Как много веселых ребят, и все делают велосипед...
Re[2]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 21.12.10 11:39
Оценка:
Здравствуйте, ononim, Вы писали:

PC_>>Основная цель — это создать очень компактный, черезвычайно легкий в понимании и отладке и при этом мощный язык программирования. На мой взгляд существующие языки в этом классе неоправданно сложны, напоминают шифр и просто мало популярны.

PC_>>Кодить на нем будет действительно просто и быстро. Ну скажем микро программки вроде реверса, палиндрома, фибоначчи или факториала до 1 минуты.
PC_>>А закодить шахматы займет ну может 1 час.
O>Вот так появился перл...

На Перле можно закодить шахматы, например, за 1 час студенческой не набитой рукой ?
А пузырек, пускай пример и примитивный, можно закодить и протестить за одну минуту ?
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[2]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 21.12.10 11:45
Оценка: :)
Здравствуйте, ononim, Вы писали:

PC_>>Основная цель — это создать очень компактный, черезвычайно легкий в понимании и отладке и при этом мощный язык программирования. На мой взгляд существующие языки в этом классе неоправданно сложны, напоминают шифр и просто мало популярны.

PC_>>Кодить на нем будет действительно просто и быстро. Ну скажем микро программки вроде реверса, палиндрома, фибоначчи или факториала до 1 минуты.
PC_>>А закодить шахматы займет ну может 1 час.
O>Вот так появился перл...

Взял тут примерчики от перла


@array = (1,2,3,4); # записали в массив @array четыре элемента
print $array[2]; # напечатать третий элемент


у меня примерно так


array:= 1,2,3,4
array.2


Кстате шифтовые символы стараюсь не использовать, жалею программистов
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[3]: Ультракороткий язык программирования RS
От: diver_ru  
Дата: 21.12.10 11:46
Оценка: 4 (2) +2 :)
Здравствуйте, PC_2, Вы писали:

PC_>На Перле можно закодить шахматы, например, за 1 час студенческой не набитой рукой ?

PC_>А пузырек, пускай пример и примитивный, можно закодить и протестить за одну минуту ?

А на вашем языке можно закодить шахматы за 1 час студенческой ненабитой рукой?

По теме, думается такое чрезмерное сокращение синтаксиса не добавит программе понятности.
Получится еще один APL или типа того.

Вот пример краткого и понятного языка (на изучение уйдет минут 20),
создан для решения code-golf задач. Несмотря на то, что язык прост, программы на нем придется долго курить
Re[4]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 21.12.10 11:49
Оценка: -3 :)
Здравствуйте, diver_ru, Вы писали:

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


PC_>>На Перле можно закодить шахматы, например, за 1 час студенческой не набитой рукой ?

PC_>>А пузырек, пускай пример и примитивный, можно закодить и протестить за одну минуту ?

_>А на вашем языке можно закодить шахматы за 1 час студенческой ненабитой рукой?


Я к этому иду. Даже есть приблизительные наброски. Код шахмат займет от 300 байт до 1 кб.

_>По теме, думается такое чрезмерное сокращение синтаксиса не добавит программе понятности.

_>Получится еще один APL или типа того.

Поэтому APL, K, J языки ущербны. Они достаточно кратки чтобы выписать квик сорт в 40 байт, но "птичьи".
Используют юникод, может торчать вполне незакрывающаяся скобка и тп.

_>Вот пример краткого и понятного языка (на изучение уйдет минут 20),

_>создан для решения code-golf задач. Несмотря на то, что язык прост, программы на нем придется долго курить

Вот возможность одновременно и простого (для кодинга) и короткого по обьемам исходников языка хотелось бы и обсудить.
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[4]: Ультракороткий язык программирования RS
От: Sinix  
Дата: 21.12.10 11:57
Оценка:
Здравствуйте, diver_ru, Вы писали:

_>Вот пример краткого и понятного языка (на изучение уйдет минут 20),

_>созЭто _до_ обфускатора, да?
~]{:@0?:^~!{@p}*10,@9/^9/=-@^9%>9%-@3/^9%3/>3%3/^27/={+}*-{@^<\+@1^+>+}/1}do

дан для решения code-golf задач. Несмотря на то, что язык прост, программы на нем придется долго курить
Re[5]: Ультракороткий язык программирования RS
От: Sinix  
Дата: 21.12.10 11:58
Оценка: 3 (1) +2 :)
Здравствуйте, diver_ru, Вы писали:

_>Вот пример краткого и понятного языка (на изучение уйдет минут 20),

_>создан для решения code-golf задач. Несмотря на то, что язык прост, программы на нем придется долго курить

Это _до_ обфускатора, да?
~]{:@0?:^~!{@p}*10,@9/^9/=-@^9%>9%-@3/^9%3/>3%3/^27/={+}*-{@^<\+@1^+>+}/1}do
Re[6]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 21.12.10 12:02
Оценка: :))) :)
Здравствуйте, Sinix, Вы писали:

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


_>>Вот пример краткого и понятного языка (на изучение уйдет минут 20),

_>>создан для решения code-golf задач. Несмотря на то, что язык прост, программы на нем придется долго курить

S>Это _до_ обфускатора, да?

S>
S>~]{:@0?:^~!{@p}*10,@9/^9/=-@^9%>9%-@3/^9%3/>3%3/^27/={+}*-{@^<\+@1^+>+}/1}do
S>


Да, это ДО обфускатора.
Это недоязыки, ничего общего не имеющего с проста+краткость
Например Квик Сорт у меня выглядит примерно вот так, хоть пока и не работает в трансляторе:

//7. квик сорт
E ( S.I.J<S.I.(S.I.Len/2)?
S.(I*2+1):
S.(I*2+2)
),=S.I.J

Это ультрапонятный короткий и лаконичный код
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[7]: Ультракороткий язык программирования RS
От: Sinix  
Дата: 21.12.10 12:09
Оценка: 1 (1) +6
Здравствуйте, PC_2, Вы писали:

PC_>//7. квик сорт

E ( S.I.J<S.I.(S.I.Len/2)?
    S.(I*2+1):
    S.(I*2+2)
   ),=S.I.J

PC_>Это ультрапонятный короткий и лаконичный код
Без обид, но скобочки выше выглядят серьёзней

Если серьёзно, читаемость кода _без_ детального изучения спецификации куда важнее сэкономленных пикселей на экране. И лично я абракадабре выше предпочту
list.Sort();

Не так круто, да. Зато удобно и понятно.
Re[7]: Ультракороткий язык программирования RS
От: Mamut Швеция http://dmitriid.com
Дата: 21.12.10 12:10
Оценка: 1 (1) +10
PC_>Например Квик Сорт у меня выглядит примерно вот так, хоть пока и не работает в трансляторе:

PC_>//7. квик сорт

PC_>E ( S.I.J<S.I.(S.I.Len/2)?
PC_> S.(I*2+1):
PC_> S.(I*2+2)
PC_> ),=S.I.J

PC_>Это ультрапонятный короткий и лаконичный код


Что в нем понятного? Такая же невменяемая каша. Имхо


dmitriid.comGitHubLinkedIn
Re[8]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 21.12.10 12:23
Оценка: :)
Здравствуйте, Sinix, Вы писали:

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


PC_>>//7. квик сорт

S>
S>E ( S.I.J<S.I.(S.I.Len/2)?
S>    S.(I*2+1):
S>    S.(I*2+2)
S>   ),=S.I.J
S>

PC_>>Это ультрапонятный короткий и лаконичный код
S>Без обид, но скобочки выше выглядят серьёзней

Ну это чисто твое субьективное мнение.
Даже если у тебя на листике будет код той программы, 2 минуты тебе не хватит чтобы все эти закарючки просто без ошибочно набрать.
У меня же квик сорт можно написать за 2 минуты, с нуля. На пузырек мне например хватит 30 секунд. И это факт, я считаю.

S>Если серьёзно, читаемость кода _без_ детального изучения спецификации куда важнее сэкономленных пикселей на экране. И лично я абракадабре выше предпочту

S>
S>list.Sort();
S>

S>Не так круто, да. Зато удобно и понятно.

А что мешает мне оформить функцию Сорт в функцию и ее также использовать ?
Просто код библиотеки будет занимать например не 1000 строк, а 200.
И написана будет быстрее раз в пять... И багов будет меньше, потому что код лаконичный, а не стеково-адресная арифметика в говнокоде...
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[8]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 21.12.10 12:24
Оценка: :))) :))) :))) :)))
Здравствуйте, Mamut, Вы писали:

PC_>>Например Квик Сорт у меня выглядит примерно вот так, хоть пока и не работает в трансляторе:


PC_>>//7. квик сорт

PC_>>E ( S.I.J<S.I.(S.I.Len/2)?
PC_>> S.(I*2+1):
PC_>> S.(I*2+2)
PC_>> ),=S.I.J

PC_>>Это ультрапонятный короткий и лаконичный код


M>Что в нем понятного? Такая же невменяемая каша. Имхо


Сейчас нет времени обьяснять, но обьяснить код можно на пальцах. Уж поверьте. Все очень и очень просто.
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[9]: Ультракороткий язык программирования RS
От: Vintik_69 Швейцария  
Дата: 21.12.10 12:32
Оценка: +4 :)
PC_>Ну это чисто твое субьективное мнение.
PC_>Даже если у тебя на листике будет код той программы, 2 минуты тебе не хватит чтобы все эти закарючки просто без ошибочно набрать.
PC_>У меня же квик сорт можно написать за 2 минуты, с нуля. На пузырек мне например хватит 30 секунд. И это факт, я считаю.

На любом популярном языке можно написать квиксорт за 2 минуты. И пузырек за 30 секунд. При чем тут вообще синтаксис?
Re[10]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 21.12.10 12:33
Оценка:
Здравствуйте, Vintik_69, Вы писали:

PC_>>Ну это чисто твое субьективное мнение.

PC_>>Даже если у тебя на листике будет код той программы, 2 минуты тебе не хватит чтобы все эти закарючки просто без ошибочно набрать.
PC_>>У меня же квик сорт можно написать за 2 минуты, с нуля. На пузырек мне например хватит 30 секунд. И это факт, я считаю.

V_>На любом популярном языке можно написать квиксорт за 2 минуты. И пузырек за 30 секунд. При чем тут вообще синтаксис?


"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re: Ультракороткий язык программирования RS
От: TheBeard Россия  
Дата: 21.12.10 12:38
Оценка:
А как будет выглядеть интерпретатор RS, написанный на RS?
Re[2]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 21.12.10 12:44
Оценка: :)
Здравствуйте, TheBeard, Вы писали:

TB>А как будет выглядеть интерпретатор RS, написанный на RS?


львиная доля языка еще не реализована,
сложно сказать. Но очевидно тоже в несколько раз короче.
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[9]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 21.12.10 12:47
Оценка: +2
Здравствуйте, PC_2, Вы писали:

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


PC_>>>//7. квик сорт

PC_>>>E ( S.I.J<S.I.(S.I.Len/2)?
PC_>>> S.(I*2+1):
PC_>>> S.(I*2+2)
PC_>>> ),=S.I.J

PC_>>>Это ультрапонятный короткий и лаконичный код


M>>Что в нем понятного? Такая же невменяемая каша. Имхо


PC_>Сейчас нет времени обьяснять, но обьяснить код можно на пальцах. Уж поверьте. Все очень и очень просто.


Т.е. ультрапонятности все-таки нет, раз нет времени на объяснение ультрапонятных вещей.
Re[10]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 21.12.10 12:49
Оценка: :)
Здравствуйте, samius, Вы писали:

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


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


PC_>>>>//7. квик сорт

PC_>>>>E ( S.I.J<S.I.(S.I.Len/2)?
PC_>>>> S.(I*2+1):
PC_>>>> S.(I*2+2)
PC_>>>> ),=S.I.J

PC_>>>>Это ультрапонятный короткий и лаконичный код


M>>>Что в нем понятного? Такая же невменяемая каша. Имхо


PC_>>Сейчас нет времени обьяснять, но обьяснить код можно на пальцах. Уж поверьте. Все очень и очень просто.


S>Т.е. ультрапонятности все-таки нет, раз нет времени на объяснение ультрапонятных вещей.


я же ответил, что этот пример пока не работает.
Могу обьяснить любой другой пример который работает на трансляторе.
Просто Квик Сорт я хочу переписать в терминах аспектной парадигмы, которую надеюсь внедрить в этом языке.
Это позволит действительно фантастически быстро кодить программы
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.