LINUX.ORG.RU

Новый язык программирования для русскоговорящих

 , ,


2

1

Синтаксис от Хаскеля, семантика от Ракета.

факториал(сч) =
  если (сч == 1)
    1
    сч * факториал (сч - 1)

фибоначчи(сч) =
  если (сч < 3)
       1
       пусть рекурсия (н-1 1 ; н 2; тек-сч 3)
         если (сч == тек-сч) н $ рекурсия н (н + н-1) $ тек-сч + 1

Будет ещё конструкция надо-быстро с семантикой от Си (и использованием gcc).

Исходники: https://github.com/Kalimehtar/russian-lang

Пакет для Ракета: https://pkgd.racket-lang.org/pkgn/package/russian-lang

Документация: https://docs.racket-lang.org/russian-lang/index.html

★★★★★

Ответ на: комментарий от anonymous

@monk какие планы далее?

Пишу блок надо-быстро. Идея в том, что синтаксис должен оставаться максимально единообразным. Получается что-то вроде:

    момент-смещения(тело * т; 
                   двойная-точность момент-x; 
                   двойная-точность момент-y; 
                   двойная-точность момент-z) 
        =
        т *^ скорость-x := - момент-x / МАССА-СОЛНЦА
        т *^ скорость-y := - момент-y / МАССА-СОЛНЦА
        т *^ скорость-z := - момент-z / МАССА-СОЛНЦА
        вернуть т -- отсюда выводится тип возврата
        -- можно с явным типом
        -- вернуть $ тело * т
    
    момент-x = 0.0  -- двойная точность выводится из типа значения
    момент-y = двойная-точность 0.0 -- явный тип
    момент-z = 0.0
    цикл (ч = 0; ч < длина; ++ ч)   
         момент-x += тела[ч] ^ скорость-x * тела[ч] ^ масса;
         момент-y += тела[ч] ^ скорость-y * тела[ч] ^ масса;
         момент-z += тела[ч] ^ скорость-z * тела[ч] ^ масса;
    момент-смещения тела момент-x момент-y момент-z

после компиляции получится

    body* offsetMomentum(body *b, double px, double py, double pz){
        b->vx = -px / SOLAR_MASS;
        b->vy = -py / SOLAR_MASS;
        b->vz = -pz / SOLAR_MASS;
        return body;
    }

        double px = 0.0;
        double py = 0.0;
        double pz = 0.0;
        for(unsigned i=0; i < bodies.size(); ++i) {
            px += bodies[i].vx * bodies[i].mass;
            py += bodies[i].vy * bodies[i].mass;
            pz += bodies[i].vz * bodies[i].mass;
        }
        offsetMomentum(bodies,px,py,pz);

Рабочей версии компилятора пока нет.

monk ★★★★★ ()
Ответ на: комментарий от anonymous

Интересно, что ты думаешь о принятии Русью христианства)

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

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

monk ★★★★★ ()
Ответ на: комментарий от monk

И какой же традиции я по-твоему следую?

Сам-то можешь отвтетить?

Небось, живешь на территории насильно захваченном у коренных народов и живешь на максимальном отдалении от своих предков. Ни традиции предков знать и применять не можешь, ни традиции коренных жителей не перенял.

Сферический конь в вакууме, обсуждающий про традиции по случайным цитатам из художественных фантастических рассказов.

И «русский язык программирования» пишешь не на основе исследований русского языка, традиций, а занимаешься карго-культом басурманских традиций.

anonymous ()
Ответ на: комментарий от anonymous

А ты не думал, что карго-культ возникает не на пустом месте?

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

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

В древней Руси люди поклонились Иисусу, чтобы им построили такие же красивые храмы как в Византии.

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

В любом случае карго-культ фиксирует подчинённое и зависимое положение и затрудняет создание своих аналогов (потому что первые свои экземпляры хуже полученных, а до вторых дело уже не доходит).

Китайцы, в отличие от меланезицев, начали разбираться в технологиях «западных варваров» и теперь разрабатывают собственные технологии, а не строят аэродромы из соломы.

Жители севера Европы, в отличие от русских, стали сами развивать архитектуру и научились строить замки и храмы не хуже римских и византийских. В результате Петру I пришлось импортировать архитекторов из Италии и Германии.

monk ★★★★★ ()
Ответ на: комментарий от anonymous

Но вы haskell используете. Что за задачи?

Для Haskell? Обработка текстовых шаблонов на линуксе. Там сложно 1С запустить. Да и с текстом работа у 1С не самое сильное место.

monk ★★★★★ ()
Ответ на: комментарий от monk

В древней Руси люди поклонились Иисусу, чтобы им построили такие же красивые храмы как в Византии.

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

Пруфы имеются?

anonymous ()
Ответ на: комментарий от monk

Да и с текстом работа у 1С не самое сильное место.

Давненько для 1С 7.7 сделал ActiveX, который предоставлял всю функциональность CString.
Выглядело это так:

 VpString = "xxx123yyyyyy123zzz123xxxx123zzz";
	     
 oCString = CreateCString( VpString );
 
// ---------------- 
// --- Test FormatV
//
 if  2 = 2  Then
   
  oSafeArray = "";

  спПараметры = СоздатьОбъект( "СписокЗначений" );


  if  2 = 2  Then

// VpFormat = "%5le первое число %10le второе число";
   VpFormat = "%5.lf первое число %10.lf второе число %s";

   спПараметры.ДобавитьЗначение( 444      );
   спПараметры.ДобавитьЗначение( 555      );
   спПараметры.ДобавитьЗначение( "а вот и строка" );

  endif;   
  
  CreateSafeArrayForFormat( 
   oSafeArray, 
   спПараметры
  );

  VpРезультат = "123";
  
//VpFormat = "%s целое значение %s вещественное значение";

  VpРезультат = глOLEExSup.ВызватьОЛЕМетод(
   oCString,
   "FormatV",
   VpFormat,
   oSafeArray
  );
   
  Сообщить( "FormatV: VpРезультат = " + VpРезультат );

 endif;                                                    // Test FormatV

Как известно в 1С 7.7 все переменные являются объектами типа Variant.
AtctiveX собственно и позволял «наплодить» строковых объектов и использовать их вместо/совместно 1С переменными.

То бишь была бы потребность в чем-либо …
Интересно то, что 1С-ники сказали - «Не нужно».
Не обижаюсь на них

Что с них взять?  
Но щеки надувать умеют ...

Владимир

anonymous ()
Ответ на: комментарий от monk

В древней Руси люди поклонились Иисусу, чтобы им построили такие же красивые храмы как в Византии.

Песец. Словесное описание образа.

По остальным тезисам-образам такое же «однозначное» (от слов одно значение) словесное описание.

anonymous ()
Ответ на: комментарий от anonymous

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

Я встречал людей, на полном серьезе верящих в зеленых человечков и масонский заговоры, при том люди были вполне «устроенные» в этой жизни, то есть с работой, машиной, квартирой.

Разговоры про америку лично мне слышать смешно, потому что я, например, как «сторонник» «запада», отнюдь не сторонник США. США очень похожа на Россию во многом, точнее на поздний СССР, в котором я не жил.

anonymous ()
Ответ на: комментарий от anonymous

Давненько для 1С 7.7 сделал ActiveX, который предоставлял всю функциональность CString.

В линуксе его было бы сложно использовать. К тому же 1С хочет лицензию за каждое место запуска программы.

monk ★★★★★ ()
Ответ на: комментарий от anonymous

как «сторонник» «запада», отнюдь не сторонник США.

И в чём разница между «западом» и США?

P.S. Что ж вы все безымянные, различать тяжело, когда точка зрения личная стоановится.

monk ★★★★★ ()
Ответ на: комментарий от anonymous

Пруфы имеются?

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

И пришли мы к немцам, и видели в храмах их различную службу, но красоты не видели никакой. И пришли мы в Греческую землю, и ввели нас туда, где служат они Богу своему, и не знали - на небе или на земле мы: ибо нет на земле такого зрелища и красоты такой, и не знаем, как и рассказать об этом, - знаем мы только, что пребывает там Бог с людьми, и служба их лучше, чем во всех других странах. Не можем мы забыть красоты той, ибо каждый человек, если вкусит сладкого, не возьмет потом горького; так и мы не можем уже здесь пребывать

сделали компьютеры, сотовые телефоны и операционные системы: так прямо в этой ветке утверждается, что всё должно быть по-английски, иначе не удастся узнать новые знания, изречённые Заморскими Эльфами. И когда противятся действиям Президента, то в качестве аргумента, почему так делать нельзя, люди приводят санкции, из-за которых Заморские Эльфы не дадут своим поклонникам в России новые компьютеры и сотовые телефоны (а то, что производится без них, стократно хуже).

monk ★★★★★ ()
Ответ на: комментарий от monk

В линуксе его было бы сложно использовать. К тому же 1С хочет лицензию за каждое место запуска программы.

Есть такое.
Ныне вот технологическую платформу разрабатываю, которая и в Linux и в Windows функционирует.

PS: Работы очень МНОГО.
Надеюсь в этом году все же начну разрабатывать GUI /с scratch/, которое будет использовать мета дату базу.
Точнее даже не GUI, а графический движок, включающий и GUI.
Самые важные фичи будут в том:

  • Работа с графикой будет возможна в run-time /перекомпиляций всяких там не будет. Разработчикам игр понравится./;
  • 2D и 3D будет поддержано /пока будет использован OpenGL/;

Владимир

anonymous ()
Ответ на: комментарий от monk

для меня «запад» это США + западная европа.

западная европа - это про милосердие (сорян за пафос) и личную свободу. Вот это мне близко.

США это больше про исполнение гимна по утрам в школах и флаг на каждом пятом доме. Хотя законы там соблюдаются, и не важно кто ты: реднек или крупный чиновник. Да и оружие у людей пока не отняли.

anonymous ()
Ответ на: комментарий от anonymous

Надеюсь в этом году все же начну разрабатывать GUI /с scratch/, которое будет использовать мета дату базу.

Красиво. Что-то уже есть? И какое лицензирование предполагается?

monk ★★★★★ ()
Ответ на: комментарий от monk

Красиво. Что-то уже есть? И какое лицензирование предполагается?

В law я - ВАЛЕНОК.
Будет бесплатна /исходники «баксовикам» не отдам ни задаром, ни за деньги/.
Если Господу будет угодно, то опубликую исходники без всяких условий.

Владимир

anonymous ()
Ответ на: комментарий от anonymous

западная европа - это про милосердие (сорян за пафос) и личную свободу. Вот это мне близко.

С первым в целом согласен. Про личную свободу — удивлён. Всю жизнь считал, что Западная Европа про законность, а не про свободу. По крайней мере с момента образования Евросоюза. Наглядная иллюстрация: https://habr.com/ru/post/446822/

В США, пмсм, свободы больше (если не брать очень крупные города).

monk ★★★★★ ()
Ответ на: комментарий от rmu

При этом никаких вопросов к «русскости». Но почему-то у кого получается писать «по-русски» не занимаются насильным внедрением «русскости».

anonymous ()
Ответ на: комментарий от anonymous

Будет бесплатна /исходники «баксовикам» не отдам ни задаром, ни за деньги/.

Тогда она должна быть чем-то выгодна тебе. Иначе через несколько лет ты на неё забьёшь и окажется, что её можно запустить только в эмуляторе.

monk ★★★★★ ()
Ответ на: комментарий от monk

Тогда она должна быть чем-то выгодна тебе. Иначе через несколько лет ты на неё забьёшь и окажется, что её можно запустить только в эмуляторе.

Эээээ …
Технологическая платформа нужна лишь для того, чтобы разработать много проектов … /«голь на выдумку хитра»/.
Да и /скорее всего/ без всякого сопровождения лет двадцать исправно работать будет …
Через двадцать лет вспомню об этом посте.

PS: Не хотелось бы публиковать исходники, но скорее всего Господу будет угодно иное.
Так что …

Владимир

anonymous ()
Ответ на: комментарий от monk

… выгодна тебе.

Моя «выгода» в том, … /надеюсь ты уже догодался/.
А «баксы» мне нужны конечно:

  • Оплатить комунальные услуги, интернет, …;
  • И не более того.

Владимир

anonymous ()
Ответ на: комментарий от anonymous

… догодался

догадался /… ошибки моей молодости «дают знать»/.

Не зря учительница по русскому языку приходила поговорить о «моих знаниях» с моим отцом и мамой.
Сочинения на темы «классики» всегда были «не по душе мне» /как и сама «классика»/.

Как-то после очередного прихода учительницы пришлось написать сочинение на какую-то патриотическую тему.
Сестра /Царство ей Небесного/ посоветовала - «Возьми «Комсомольскую правду» и «Правда» и повытягивай из них текст».

Первое место на районной олимпиаде занял. 

Весь в отца.
Он как-то в реферат по политэкономии поэму Пушкина «забухал».
А он коммунистом был /влетело ему за это хорошо/.

Владимир

anonymous ()
Ответ на: комментарий от anonymous

йопта, я занял третье место на олимиаде по праву, хотя все уроки в школе прогуливал и школу ели закончил. Эта ща я образованный как аспирант_сява.mp3

anonymous ()
Ответ на: комментарий от anonymous

ну смотря кому что нравится. а во-вторых, это ведь закономерно: сделать что-то крутое сложнее чем сделать очередное хз

Не об этом речь.
Банально качество записи /звучание/ отвратительное.

Владимир

anonymous ()