LINUX.ORG.RU

ANI, новый язык программирования

 ani,


0

0

Под лицензией GPL v3 выпущен anic, компилятор с экспериментального языка программирования ANI.

Язык ANI сочетает в себе объектно-ориентированность, компиляцию в машинный код, полную встроенную поддержку параллелизма и статическую типизацию

>>> Подробности

★★★★★

Проверено: Shaman007 ()

В тексте новости какая-то скучность, по ссылке какая-то революционность (не специалист ни разу, просто показалось констрастным).

t184256 ★★★★★
()
"Hello, World!" ->std.out

это вроде и ничего. но вот те примеры, что там есть - жесть какая-то :)

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

Да, первый пример отпугивает своей обескураживающей неочевидностью :)

t184256 ★★★★★
()

> Под лицензией GPL v3 выпущен anic, компилятор с экспериментального языка программирования ANI

Вызывающе неверная информация.

Q: Do the examples compile yet? I didn't find the code generation module in the repository.

A: Good observation, and the answer is not yet. There are two more things to get done before the compiler is functional: one is type flow checking and the other is code gen.

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

Ну и что. >we're very much alpha dev, and the I'm aware that the examples from the tutorial don't
fully compile — yet.
But we're getting there!

Зато >we're trying to be platform agnostic, relying only on classic posix/gcc stuff

Karapuz ★★★★★
() автор топика

> Под лицензией GPL v3 выпущен anic

дрочер? посадите обратно где сидел и не выпускайте больше

zyoung
()

>Try to imagine, if you will, the amount of time and effort it would take you to write a bug-free, efficiently multithreaded real-time clock + infix calculator hybrid application in a language like C.

While you're thinking, here's a terse but complete implementation in ANI:

@std.in; a=[[0\]]; op=[[' '\]]; b=[[0\]]; r=[[0\]]; 0 { clock => [[int ms]] { («\r» + ms/1000.0 + ":" + a + op + b + «=» + r) ->std.out; 1 std.delay (ms+1) clock} }; inLoop => {\in->a \in->op \in->b inLoop}; \\op ?? {'+': (\a+\b) '-': (\a-\b) '*': (\a*\b) '/': (\a/\b) : 0} ->r;

oh shi~

anonymous
()

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

shty ★★★★★
()

> Язык ANI сочетает в себе объектно-ориентированность, компиляцию в машинный код, полную встроенную поддержку параллелизма и статическую типизацию

За исключением встроенной поддержки параллелизма все это уже умеет C++ и подобные.

m0rph ★★★★★
()

Претензии к синтаксису — признак быдло-monkey-кодера.

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

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

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

т.е. читабельность кода - вещь необязательная?

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

>т.е. читабельность кода - вещь необязательная?
Конечно! Спроси у спецов из M$ - они тебе скажут, что это даже вредно. И ещё, ты брейнфак видел?

fractaler ★★★★★
()

Зло атакует!

The language couldn't possibly be simpler...

«Hello, World!» ->std.out



4.2. На FALSE это так выглядит:

«Hello World»


Feel the diff, как говорится.

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

> т.е. читабельность кода - вещь необязательная?

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

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

anonymous
()

шизанутая\ фигня

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

Пускаем опрос, какой язык на это претендует?

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

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

Это\ не опрвдывает \шизанутость [[вроде\ этой]].

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

Вы, полагаю, путаете «читаемость» с «привычностью синтаксиса».

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

можно спросить у гуру, что делает, например, эта примитивная функция?

(defun sample_fun (n k)
  (declare (integer n))
  (declare (type (integer 0 *) k)) 
  (labels ((expt0 (x k a) *
             (declare (integer x a) (type (integer 0 *) k)) *
             (cond ((zerop k) a) *
                   ((evenp k) (expt1 (* x x) (floor k 2) a)) *
                   (t (expt0 (* x x) (floor k 2) (* x a))))) 
           (expt1 (x k a) *
             (declare (integer x a) (type (integer 1 *) k)) *
             (cond ((evenp k) (expt1 (* x x) (floor k 2) a)) *
                   (t (expt0 (* x x) (floor k 2) (* x a)))))) *
    (expt0 n k 1)))
lester ★★★★
()

мну, когда сильно напьётся, тоже начинает всякие языки программирования изобретать… но мать моя женщина, столько я точно не выпью >_<

зы: вот бы увидеть гибрид С и юзверских определений атрибутов функций и переменных как в перле… ^_^'

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

Это\ не опрвдывает \шизанутость [[вроде\ этой]].

Blub paradox в действии.

То, что тебе (из-за твоего низкого уровня развития как программиста) кажется «шизанутостью», для людей с более высоким уровнем развернётся в мощную и стройную концепцию.

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

если их все изучать никакого времени на работу не останется


То то и оно. Языки придумывают чтобы решить задачу быстрее и эффективнее. Пока язык изучишь, придумаю новую задачу, для которой появится более эффективный язык...

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

Сайт гуглокода кагбэ намекает адресом страницы


Чётко подмечено, однако

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

То, что тебе (из-за твоего низкого уровня развития как программиста) кажется «шизанутостью», для людей с более высоким уровнем развернётся в мощную и стройную концепцию.

Серьезно? Ну тогда как человек более высокого уровня ты конечто же с легкостью обоснуешь чем:

l = [[int\\]] <- {1,2,3,4};

лучше чем

let l = [1;2;3;4];;

или сделаем скидку на отсутствие инференса:

let l:int list = [1;2;3;4];;

просвети меня о гуру высокого развития в чем моща и стройнойсть этой концепции.

r ★★★★★
()

Даёшь больше языков программирования, хороших и разных! :)

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

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

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

k0valenk0_igor ★★★
()

Велосипедная мастерская работает? Сколько уже велосипедов с квадратными колесами наизобретали?

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

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

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

Всё-таки записывать математические формулы приятнее в обычной инфиксной нотации. Возможно, если б я писал кучу расчётов на лиспе (чур меня, уж лучше хаскелль/математика), то есть шанс, что для меня такая запись была бы такой же лёгкой для воспрития, как и красивые формулы после TeX'a. Жду лисп-фанатиков, может они такое переваривают на уровне спинного мозга?

suzuki
()

А язык-то веселый, однако:

In fact, the way pipes work, all of them flow at the same time. What this means for ANI programs is that if you write
A;
B;
then A and B happen at the same time, not one after the other!111

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

> все очевидно :)

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

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

> Никто не мешает в Лиспе использовать инфиксную нотацию.

Вопрос был про конкретный код.

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

> I'll begin with a shockingly controversial statement: programming languages vary in power.

Воистину. Шокирует. Он серьезно?

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

Похоже, что скоро среди них получится один хороший и остальные будут похоронены (количество в качество), т.к. действительность требует что-то нового.

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

> Не верю

для вас понять 13-ть строчек кода - это что-то нереальное? тем-более если алгоритм легко узнаваем?

lester ★★★★
()
2,3 + ->std.out // prints 5

Поляки! Они выворачивают мозг.

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

Для тебя понять русский язык и несколько предложений на нём - это что-то нереальное? Не нужно передёргивать. Я же писал про лёгкость восприятия 1) инфиксной нотации и 2) красивых формул после ТеХ. А так же написал, что да, код понять можно, но это сложнее п1 и п2. Так понятнее?

suzuki
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.