zen

Dec. 30th, 2006 06:27 pm
avva: (Default)
[personal profile] avva

Я придумал язык программирования под названием Zen. Каждая программа на языке Zen выглядит как один символ - юникодный символ смайлика:

При этом программа делает то, что задумано.

Вот пример программы, которая считает количество символов в потоке ввода, и выдает на вывод это число в шестнадцатеричном виде:

А это - пример очень простой базы данных, с языком, который поддерживает подмножество SQL - только простые виды SELECT, INSERT, UPDATE и DELETE:

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

Date: 2006-12-30 04:37 pm (UTC)
From: [identity profile] yurri.livejournal.com
Мне кажется, в последнем примере выбран неэффективный путь.

Алгоритмическая красота тоже важна, особенно на этапе проектирования.

Date: 2006-12-30 04:42 pm (UTC)
From: [identity profile] avva.livejournal.com
Согласен - мне просто казалось, что так новичку в языке будет проще объяснить. Но в принципе да, можно красивее и компактнее то же самое передать, конечно.

Date: 2006-12-30 04:50 pm (UTC)
From: [identity profile] e-dikiy.livejournal.com
Ман! (http://209.85.129.104/search?q=cache:rz978NvWC38J:lib.babr.ru/index.php%3Fbook%3D1588+%D0%BC%D0%B0%D0%BD+%D0%B6%D0%B0%D0%BB%D0%BE%D0%B1%D0%BD%D0%BE&hl=en&ct=clnk&cd=1&client=opera)

Date: 2006-12-30 05:36 pm (UTC)
From: [identity profile] tejblum.livejournal.com
А что делает самая первая программа на Zen в этом посте (которая во второй строчке)?

Date: 2006-12-30 05:37 pm (UTC)
From: [identity profile] dimrub.livejournal.com
Ну, блин, и вопросики у вас: "Hello, world!" ясный пень!

Я уже люблю его!

Date: 2006-12-30 05:54 pm (UTC)
From: [identity profile] ex-feuerbach769.livejournal.com
Черт, это самый мультипарадигменный язык из всех что я видел!
Ждем ебилдов интерпретатора и компилятора!

Date: 2006-12-30 05:56 pm (UTC)
From: (Anonymous)
DWIM!

Re: Я уже люблю его!

Date: 2006-12-30 05:58 pm (UTC)
From: [identity profile] ex-feuerbach769.livejournal.com
Блин, туплю. Компилятор и интерпретатор легко реализовать на этом же языке.

Date: 2006-12-30 06:02 pm (UTC)
From: [identity profile] avva.livejournal.com
Я уже написал компилятор Zen, причем на самом Zen. Осталось только с bootstrapping'ом разобраться, но это уже мелочи.

Date: 2006-12-30 06:02 pm (UTC)
From: [identity profile] arpad.livejournal.com
I tried to copy-paste your example, but the fllowing code crashes my system when I attempt to run it:



Date: 2006-12-30 06:11 pm (UTC)
From: [identity profile] ex-feuerbach769.livejournal.com
Еще один очевидный плюс языка -- нативная поддержка юникода, да.

Date: 2006-12-30 06:12 pm (UTC)
From: [identity profile] os80.livejournal.com
А давайте загадаем... Пусть в будущем году появится пусть не такой мощный, но хотя бы приближающийся к этому язык программирования!!!

Date: 2006-12-30 06:14 pm (UTC)
From: [identity profile] ygam.livejournal.com
Я в 1993 году одному своему знакомому рассказывал о языке программирования Beta, в котором понятие класса и процедуры объединено в одно - паттерн. Он сказал: а почему нельзя придумать язык программирования, в котором не только понятие класса и процедуры, а и все остальные понятия будут объединены в одно. Я ему ответил: дзен-буддист тебя бы ударил определением языка по голове, и тебе бы все стало одно.

Date: 2006-12-30 06:15 pm (UTC)
From: [identity profile] ex-feuerbach769.livejournal.com
Кстати, единственное сообщение об ошибке, которое может выдавать компилятор, выглядит так:

Date: 2006-12-30 06:23 pm (UTC)
From: [identity profile] avva.livejournal.com
Да, предыдущий комментатор прав.

Date: 2006-12-30 06:45 pm (UTC)
From: (Anonymous)
http://ling.ucsd.edu/~barker/Iota/

Date: 2006-12-30 06:57 pm (UTC)
From: [identity profile] getman.livejournal.com
Судя по диапазону значений, этот смайлик - матерный.

Date: 2006-12-30 07:11 pm (UTC)
From: [identity profile] slobin.livejournal.com
DWIMC!

... Восход нас ждёт на краю земли ...

Date: 2006-12-30 07:12 pm (UTC)
From: [identity profile] bladekill.livejournal.com
=))) Можно спросить, а чем эти три строки отличаются? )))

Date: 2006-12-30 07:34 pm (UTC)
From: [identity profile] tejblum.livejournal.com
Это же написано прямо в посте -- они делают разные вещи.

Date: 2006-12-30 07:36 pm (UTC)
From: [identity profile] bladekill.livejournal.com
Ладно, я не программер и ваши шутки мне не понятны ((

Date: 2006-12-30 07:38 pm (UTC)
From: [identity profile] 9iam.livejournal.com
Видимо, кармой.

Date: 2006-12-30 07:38 pm (UTC)
From: [identity profile] vbif9.livejournal.com
...но крайне тяжел для использования. Ведь каждый раз нужно что-то задумывать...

Date: 2006-12-30 08:03 pm (UTC)
From: [identity profile] egorfine.livejournal.com
Пока предвижу сложности с GUI. Надо же создать всю обвязку - IDE разработчика, дизайнер экранных форм и т.п.

Date: 2006-12-30 08:29 pm (UTC)
From: [identity profile] lordakryl.livejournal.com
Старый добрый ASCII-код дает почти те же результаты, при этом ещё и обладает повышенной кросс-платформенностью, т.к. не использует функции перевода в юникод, появившиеся только в win2000/xp (или в определенных библиотеках linux/unix):

:)

Date: 2006-12-30 08:31 pm (UTC)
From: [identity profile] airatburganov.livejournal.com
Господа, специально для вас я готов предложить продвинутый IDE для языка Zen. Демо версия приведена ниже.

Рабочее название проекта - IntelliZ Zen
Если проектом заинтересуется кто-нибудь из инвесторов, обращайтесь ко мне, я, в принципе, готов развивать это IDE дальше.

+1

Date: 2006-12-30 08:47 pm (UTC)
From: [identity profile] jerom.livejournal.com
Чрезмерно нов язык avva сейчас. За программы :-), :-( и даже ~=0/0-[~~ я!

Re: Я уже люблю его!

Date: 2006-12-30 09:36 pm (UTC)
From: [identity profile] http://users.livejournal.com/_glav_/
>Ждем ебилдов
прочиталось "ждём дебилов".. много думал.. :)

Date: 2006-12-30 09:49 pm (UTC)
From: [identity profile] al-zatv.livejournal.com
добавил help по операторам языка и документацию на IDE для новичков. Скачивайте вот отсюда - ☺.

Date: 2006-12-30 09:50 pm (UTC)
From: [identity profile] al-zatv.livejournal.com
тьфу, читать не "help по операторам языка" а "help по операторУ языка".

Date: 2006-12-30 09:53 pm (UTC)
From: [identity profile] al-zatv.livejournal.com
Нет, должно быть три сообщения об ошибках.
1) входной файл пуст
2) ошибочный символ во входном файле
3) текст после окончания программы
вы привели сообщение только для ошибки 1.

Date: 2006-12-30 11:28 pm (UTC)
From: [identity profile] aburachil.livejournal.com
А я как раз работаю сейчас над книгой "Задачи по языку Зен". Вот первая дюжина задач.

1. Что напечатает следующая программа: "☺"?

2. Что напечатает следующая программа: "☺"?

3. Что напечатает следующая программа: "☺"?

4. Что напечатает следующая программа: "☺"?

5. Что напечатает следующая программа: "☺"?

6. Что напечатает следующая программа: "☺"?

7. Что напечатает следующая программа: "☺"?

8. Что напечатает следующая программа: "☺"?

9. Что напечатает следующая программа: "☺"?

10. Что напечатает следующая программа: "☺"?

11. Что напечатает следующая программа: "☺"?

12. Что напечатает следующая программа: "☺"?

К сожалению, сама никак не могу решить седьмую.

Date: 2006-12-31 12:10 pm (UTC)
From: [identity profile] ex-feuerbach769.livejournal.com
Во втором не вижу необходимости. По-моему, компилятор должен быть достаточно интеллектуален, чтобы догадаться, что программист имел в виду, даже если в программе допущено несколько незначительных ошибок.

Что касается третьего -- предлагаю интерпретировать текст после окончания программы как встроенную документацию.

Date: 2006-12-31 12:15 pm (UTC)
From: [identity profile] ex-feuerbach769.livejournal.com
Я вообще не понимаю, зачем программам на Zen что-то печатать. Это же побочные эффекты.
По-моему, если программа делает то что надо, она может делать это молча.
Так что, при всем уважении, Ваши программы далеки от реальности и представляют разве что теоретический интерес.

Date: 2006-12-31 01:10 pm (UTC)
From: [identity profile] kinuski.livejournal.com
Единственное сообщение об ошибке должно выглядеть , только я не помню код юникодного символа WTF...

Date: 2006-12-31 07:13 pm (UTC)
From: [identity profile] bobuk.livejournal.com
Компилятор Zen не может выдать сообщение об ошибке, потому что в Zen нельзя написать программу с ошибкой!

Date: 2007-01-01 07:34 am (UTC)
From: [identity profile] kamarado.livejournal.com
Это почище чем toki pona

Date: 2007-01-01 03:35 pm (UTC)
From: [identity profile] mivlad.livejournal.com
Мне удалось написать на Zen архиватор, который любой файл сжимает в самораспаковывающийся (при наличии интерпретатора Zen) архив всего в несколько байт размером. Вот архив с исходным текстом:



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

Date: 2007-01-06 01:02 am (UTC)
From: [identity profile] mindszenty.livejournal.com
Мне удалось реализовать при помощи этого языка забавный AI-complete хак. Программа, исходный код которой приведён ниже, генерирует произвольные программы на языке Zen, демонстрирующие возможности этого языка и преимущества его по сравнению с другими языками.


From: [identity profile] mura-vey.livejournal.com
А как бы вы перевели на русский слово "bootstrapping"?

Date: 2007-01-11 12:03 pm (UTC)
From: [identity profile] goh-dan.livejournal.com
Коллега, позвольте указать Вам на очевидное преобразование: ☺

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 30th, 2025 07:53 am
Powered by Dreamwidth Studios