RSDN Wiki Ультракороткий язык программирования RS
Loading…
 
Loading…
 
5(2) 42
ПРЕДИСЛОВИЕ

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

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

Основная цель — это создать очень компактный, черезвычайно легкий в понимании и отладке и при этом мощный язык программирования. На мой взгляд существующие языки в этом классе неоправданно сложны, напоминают шифр и просто мало популярны.
Кодить на нем будет действительно просто и быстро. Ну скажем микро программки вроде реверса, палиндрома, фибоначчи или факториала до 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: Перенесено из 'Компьютерные священные войны'
5(2) 42