html текст
All interests
  • All interests
  • Design
  • Food
  • Gadgets
  • Humor
  • News
  • Photo
  • Travel
  • Video
Click to see the next recommended page
Like it
Don't like
Add to Favorites

«Национальные» языки программирования из песочницы

Когда мне в очередной раз пришлось столкнуться с 1С, я заинтересовался, существуют ли ещё какие-либо языки программирования с ключевыми словами не на английском. Что не удивительно, таких языков оказалось не так уж и мало, и как я и предполагал, большинство из них предназначено либо для обучения программированию, либо созданы энтузиастами и поэтому не предназначены для серьёзных разработок. Ниже я предлагаю вам обзор нескольких таких языков (которые мне показались наиболее интересными). Естественно, статья написана исключительно в ознакомительных целях и в ней нет выводов о том, нужны ли такие языки или нет.

1) GOTO++

Сайт: http://www.gotopp.org/
Языки: французский, английский

Начнем, пожалуй, с самого необычного языка. GOTO++ является эзотерическим языком программирования, в котором ключевые слова представляют собой смесь английского и французского языков.
Язык примечателен необычным набором функций, ключевых слов и синтаксических конструкций, которые по задумке автора должны мешать написанию кода. Например:

• Для записи аргументов функции необходимо, чтобы они стояли правее левой скобки (при этом местонахождение правой скобки не имеет значение).
• Комментарии пишутся после ключевого слова GOTO.
• Для группировки математических операций вместо круглых скобок используются фигурные, причём расположенные в обратном порядке (}{).
• Целочисленные, вещественные и символьные литералы записываются с использованием спецсимволов.
I=*(3)
J=?-90,5
K=*`a'
• Функция GOTOGOTO даёт возможность перехода на одну из меток с указанной после знака вопроса вероятностью (при этом, если суммарное значение вероятности меньше 100%, то появляется шанс на переход на следующую строчку программы):
§100
GOTOPRINTDUTEXTE(); «Hello universe»
§2989
GOTOPRINTDUTEXTE(); «Hello world»
GOTO После выполнения функции GOTOGOTO программа с вероятностью 50% перейдёт на метку 2989, с вероятностью 40% на метку 100 и с вероятностью 10% на следующую строчку.
GOTOGOTO() %2989 ?50 %100 ?40
GOTOPRINTDUTEXTE(); «Hello exit»


Более подробно ознакомиться с языком вы можете в официальной документации (на французском): http://www.gotopp.org//doc/html/index.html

Пример программы «99 bottles of beer»:
GOTO 99 bottles of beer

niveaugourou 0

GOTO Vars
msgBtle = « bottle»
msgWall = « of beer on the wall»
msgBeer = « of beer.;n»
msgTake = «Take one down, pass it around, »
newLine = «;n;n»
msgEnd = «Go to the store and buy some more, »
msgNoN = «No more»
msgNon = «no more»
plural = *`s'
beers = *(99)

GOTO Loop
§1
GOTOPRINTDUTEXTE() &msgWall &plural &msgBtle &beers
GOTOPRINTDUTEXTE() &msgBeer &plural &msgBtle &beers *` ' *`,'
GOTOPRINTDUTEXTE() &msgTake
beers = &beers ++ *(-1)
AUTOGOTOZ } &beers eg *(1) {
plural = «»
AC
AUTOGOTOZ } &beers eg *(0) {
beers = &msgNon
plural = *`s'
AC
GOTOPRINTDUTEXTE() &newLine *`.' &msgWall &plural &msgBtle &beers
GOTONONNULPOURLESNULS %1 &beers

GOTO Last verses of the song
GOTOPRINTDUTEXTE() &msgWall &plural &msgBtle &msgNoN
GOTOPRINTDUTEXTE() &msgBeer &plural &msgBtle &msgNon *` ' *`,'
GOTOPRINTDUTEXTE() &msgEnd
GOTOPRINTDUTEXTE() &newLine *`.' &msgWall &plural &msgBtle «99»

2) Lexico

Сайт: lexico.mobi
Язык: испанский

Обучающий объектно-ориентированный язык программирования, созданный на платформе .NET Framework.

В комплекте с компилятором идёт простенькая IDE.
Синтаксически язык похож на C#, но является более многословным. Из особенностей можно выделить необходимость использования ключевого слова copie вместо оператора присваивания, а также то, что объект автоматически инстанцируется при объявлении переменной, если не указать ключевое слово no_crear.
Оператор ветвления в языке имеет следующий вид:

es <условие>?
si:
{
    <выражение_1_если_условие_истинно>
}
no:
{
    <выражение_2_если_условие_ложно>
}



Пример ввода и вывода данных:
tarea
{
    los objetos valor1, valor2, resultado son cantidades //объявляем переменные типа integer
    entre valor1, valor2 //ожидание ввода данных в консоли
    copie valor1*valor2 en resultado

    es resultado > 15?
    si:
    {
        muestre resultado, " > 15"
    }
    no:
    {
        muestre resultado, " <= 15"
    }
}


Пример с созданием графического окна:
clase FormTest derivada_de system.windows.forms.form
{
    privados:
        el objeto valor es un caracter //private поле типа string

    mensajeS:
        FormTest
        {
            copie «FormTest» en valor
            copie valor en FormTest.text
        }
}

3) Mama

Сайт: http://en.eytam.com/mama/
Языки: иврит, идиш, английский

Обучающий язык программирования и среда разработки, предназначенная для создания 3D анимаций и игр. Сама среда платная, но в комплекте идёт бесплатная версия редактора, которая не позволяет работать с 3D, но с помощью которой можно писать простые программы (в том числе и графические).





В платной версии редактора вы можете писать сценарии двумя способами:
• Средствами графического программирования (наподобие как в LabVIEW), путём перетаскивания «плиток» с инструкциями в область редактора.
• При включении параметра enableFreeScripting, становится возможным писать код программы в текстовой форме.

Пример программы с созданием графического окна и рисованием на нём:

На иврите
מחלקה תכנית_ציור יורש חלון
    תגובות ללחיצה על העכבר #
    מתודה תקנית: תגובה לאירוע לחיצה על מקש העכבר # (x, y)מתודה עכבר_נלחץ
        צב.מקום(x, y)
    מתודה תקנית: תגובה לאירוע גרירת העכבר # (x, y)מתודה עכבר_נגרר
         צב.אל(x, y)

הגדר ת=תכנית_ציור() # יצירת עצם מהמחלקה של התכנית — גורם ליצירת חלון ולתחילת תגובה לאירועי העכבר

Попробуйте найти ошибку в данной программе

На идише
קלאס צייכענונג_אפ ינכעראץ פענצטער
    שעפן מויז געשעענישן#
    מעטאד מויז_געדריקט(אקס, ווי) #נארמאל מויז געדריקט אופן
         טשערעפאכע.שטעלע(אקס, ווי) #טשערעפאכע רעפריזענץ דעם איצטיקן פעדער ארט

    מעטאד מויז_דראגד(אקס, ווי) #נארמאל מויז דראגד אופן
        טשערעפאכע.צו(אקס, ווי) #ציען שורה פון א פאזיציע צו די געגעבן איין

דעפינירן אפ=צייכענונג_אפ() #אנהייבן די אפלאקיישאן — שאפן ניו אפלאקיישאן כייפעץ

На английском
class DrawingApp inherits Window

# handle mouse events

method mouse_pressed(x, y) # standard mouse pressed method
    turtle.position(x, y) # turtle represents the current pen location

method mouse_dragged(x, y) # standard mouse dragged method
    turtle.to(x, y) # draw line from current position to the given one

define app=DrawingApp() # start the application — create new Application object





4) Robomind

Сайт: www.robomind.net/
Языки: арабский, болгарский, каталанский, чешский, немецкий, греческий, английский, испанский, французский, венгерский, индонезийский, итальянский, древнееврейский, корейский, нидерландский, польский, португальский, русский, словацкий, словенский, шведский, тайский, турецкий, украинский, китайский

Среда для обучения программированию, в которой нужно управлять исполнителем в лице робота. Робот умеет совершать следующие базовые действия: двигаться, рисовать, смотреть, перетаскивать маяки, а также подбрасывать монетку. В языке доступны основные базовые конструкции, такие как циклы, ветвления и процедуры.



Пример программы, в которой робот двигается вдоль белой дорожки:

На венгерском
jobbra
előre(8)

ismétel
{
    ha(előlFehér){
        előre(1)
    }
    máskép ha(jobbraFehér){
        jobbra
    }
    máskép ha(balraFehér){
        balra
    }
    máskép ha(vanElőlAkadály){
        vége
    }
}

На шведском
höger
framåt(8)

uprepa
{
    om(framåtÄrVit){
        framåt(1)
    }
    annars om(högerÄrVit){
         höger
    }
    annars om(vänsterÄrVit){
        vänster
    }
    annars om(framåtÄrHinder){
        slut
    }
}

На русском
направо
вперед(8)

повтор
{
    если(впередиБелый){
        вперед(1)
    }
    иначе если(справаБелый){
        направо
    }
    иначе если(слеваБелый){
        налево
    }
    иначе если(впередиПрепятствие){
        закончить
    }
}

5) Fjölnir

Сайт: https://notendur.hi.is//~snorri/fjolnirdev
Язык: исландский

Язык программирования, разработанный профессором информатики Исландского университета Снорри Агнарссоном, и пик популярности которого пришёлся на 1980-е годы.

Hello world:
;; Hello world in Fjölnir
«hello» < main
{
    main ->
        stef(;)
        stofn
            skrifastreng(;«Hello, world!»),
        stofnlok
}
*
«GRUNNUR»
;

Язык примечателен своей работой с модулями. В других языках, как правило, модули подключаются перечислением их имён. В Fjölnir пакеты подключаются с помощью алгебраических операций.
В примере ниже («99 bottles of beer») модуль из базовой библиотеки GRUNNUR включается в безымянный модуль, содержащий функцию bottles, а тот в свою очередь включается в главный модуль программы.
«bottles» < main
{
    main ->
        stef(;)
        staðvær i,b
        stofn
            fyrir( i := 100; i > 1; i := i-1) lykkja
                bottles(;i-1),
                skrifastreng(;" on the wall, "),
                bottles(;i-1),
                skrifastreng(;",\ntake one down, pass it around, \n"),
                bottles(;i-2),
                skrifastreng(;" on the wall.\n"),
            lykkjulok,
        stofnlok
}
*
{
    bottles ->
        stef(;n)
        stofn
            val n úr
            kostur 0 þá
                skrifastreng(;«no more bottles»),
            kostur 1 þá
                skrifastreng(;«1 bottle of beer»),
            annars
                skrifa(;n),
                skrifastreng(;" bottles of beer"),
            vallok
        stofnlok
}
*
«GRUNNUR»
;

Подробнее по данной теме вы можете почитать здесь: http://morpho.cs.hi.is/papers/p117-agnarsson.pdf

Ещё один пример программы, производящей расчёт числа Эйлера через разложение Тэйлора, с кратким описанием:
;; Автор: Snorri Agnarsson
«e» < aðal
{
    aðal ->
        ;; перечисление входных параметров
        stef(;)
        ;; объявление переменных
        staðvær n,liður,summa,i
        ;; начало функции
        stofn
            ;; вывод строки на экран
            skrifastreng(;«Программа выводит число Эйлера с указанным числом знаков после запятой.»),
            ;; разрыв строки
            nÿlína(;),
            skrifastreng(;«Сколько вывести знаков после запятой? „),
            ;; считывание значения с клавиатуры
            n:=lesa(;),
            liður:=10 ^ (6+n),
            summa:=0,
            i:=2,

            ;; цикл с расчётом значения
            meðan liður > 0 lykkja
                liður:=liður/i,
                summa:=summa+liður,
                i:=i+1,
            lykkjulok,

            skrifastreng(;“e=2.»),
            ;; вывод числа на экран
            skrifafjöl(;(summa/1000/100+5)/10),

        ;; конец функции
        stofnlok
}
*
«storfjol»
*
«grunnur2»
;

6) Hindi.Net

Сайт: http://www.sktnetwork.com/portfolio/hindi-programming-language
Язык: хинди



Язык программирования с ключевыми словами на хинди. Компилируется в MSIL, а значит, требует наличия .Net Framework. Поддерживается создание только консольных приложений.

Пример:
कार्य खाली मुख्य()
    छोड़ें комментарий

    छोड़ें अंक – переменная типа number
    अंक
    अंक

    छोड़ें पढें – ожидание ввода данных в консоли
    पढें
    पढें

    छोड़ें अगर – if; वरना – else; खत्म अगर – end if
    अगर {अ*प > 20}
        लिखें "> 20"
    वरना
        लिखें "<= 20"
    खत्म अगर

    छोड़ें पंक्ति – переменная типа string
    पंक्ति
    पढें

खत्म कार्य

7) Farsi.NET

Сайт: https://skydrive.live.com/?cid=3753598452050A56&id=3753598452050A56!270
Язык: Персидский

Ещё один язык, написанный под .Net, но с ключевыми словами на персидском языке. Его особенностью является то, что он фактически транслируется в C# и данный сгенерированный код можно посмотреть на специальной вкладке в IDE поставляемой вместе с языком. По этой причине в одном проекте могут быть как классы, написанные на Farsi.NET, так и классы на C#.





8) Scratch

Сайт: http://scratch.mit.edu/
Языки: более 60

Обучающий язык программирования, созданный в MIT Media Lab и предназначенный для создания простых мультфильмов и игр. Является рекордсменом по числу локализаций. Программы на Scratch строятся, как и в Mama, из графических блоков. Вторая версия редактора (сейчас в стадии beta) написана на Adobe Flash.



Основные возможности:
• Работа с растровой графикой
• Работа с векторной графикой (со 2 версии)
• Работа со звуками.
• Поддержка событий.
• Существует возможность публиковать свои работы на специальной страничке: beta.scratch.mit.edu/explore/projects/all/



На этом, пожалуй, я закончу данный обзор. Если вас вдруг заинтересовала эта тема, список других языков вы можете посмотреть по ссылке: http://en.wikipedia.org/wiki/Non-English-based_programming_languages
Читать дальше
Twitter
Одноклассники
Мой Мир

материал с habrahabr.ru

1

      Add

      You can create thematic collections and keep, for instance, all recipes in one place so you will never lose them.

      No images found
      Previous Next 0 / 0
      500
      • Advertisement
      • Animals
      • Architecture
      • Art
      • Auto
      • Aviation
      • Books
      • Cartoons
      • Celebrities
      • Children
      • Culture
      • Design
      • Economics
      • Education
      • Entertainment
      • Fashion
      • Fitness
      • Food
      • Gadgets
      • Games
      • Health
      • History
      • Hobby
      • Humor
      • Interior
      • Moto
      • Movies
      • Music
      • Nature
      • News
      • Photo
      • Pictures
      • Politics
      • Psychology
      • Science
      • Society
      • Sport
      • Technology
      • Travel
      • Video
      • Weapons
      • Web
      • Work
        Submit
        Valid formats are JPG, PNG, GIF.
        Not more than 5 Мb, please.
        30
        surfingbird.ru/site/
        RSS format guidelines
        500
        • Advertisement
        • Animals
        • Architecture
        • Art
        • Auto
        • Aviation
        • Books
        • Cartoons
        • Celebrities
        • Children
        • Culture
        • Design
        • Economics
        • Education
        • Entertainment
        • Fashion
        • Fitness
        • Food
        • Gadgets
        • Games
        • Health
        • History
        • Hobby
        • Humor
        • Interior
        • Moto
        • Movies
        • Music
        • Nature
        • News
        • Photo
        • Pictures
        • Politics
        • Psychology
        • Science
        • Society
        • Sport
        • Technology
        • Travel
        • Video
        • Weapons
        • Web
        • Work

          Submit

          Thank you! Wait for moderation.

          Тебе это не нравится?

          You can block the domain, tag, user or channel, and we'll stop recommend it to you. You can always unblock them in your settings.

          • habrahabr.ru
          • домен habrahabr.ru

          Get a link

          Спасибо, твоя жалоба принята.

          Log on to Surfingbird

          Recover
          Sign up

          or

          Welcome to Surfingbird.com!

          You'll find thousands of interesting pages, photos, and videos inside.
          Join!

          • Personal
            recommendations

          • Stash
            interesting and useful stuff

          • Anywhere,
            anytime

          Do we already know you? Login or restore the password.

          Close

          Add to collection

             

            Facebook

            Ваш профиль на рассмотрении, обновите страницу через несколько секунд

            Facebook

            К сожалению, вы не попадаете под условия акции