![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
UniBomb |
|
|||
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург |
Добрый день. Сначала сопливая предыстория.
Началось всё очень давно, 20 минут назад. Я захотел создать интерпретатор/компилятор какого-нибудь языка. Я долго сидел и выбирал язык - хотелось создать чего-то полезное, чем могли бы пользоваться сотни тысяч человек во всём мире. Ещё хотелось чего-нибудь посложней - так сказать разминка для мозгов. Ну ещё и прославится конечно ![]() И вот, потратив целых 7 минут обеденного времени я его написал. Не бахвальства ради должен признать, что интерпретатор удался на славу. Лицензия на интерпретатор естественно beer-ware. Все интересующиеся могут ознакомится с его исходным кодом:
И тут я задумался - а ведь потенциал языка огромен, с его помощью можно делать намного больше. Посему предложение - а давайте вместе разовьём этот язык! Продемонстрируем весь неиспользованный потенциал! Не дадим забыть этот прекрасный язык! Это сообщение отредактировал(а) UniBomb - 4.12.2009, 12:51 |
|||
|
||||
kosmonaFFFt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 538 Регистрация: 14.4.2008 Где: Иннополис |
ИМХО интерпретатор не очень, ибо нет возможности писать большие программы, например HQ999HHQQ++
![]() ![]() -------------------- ![]() |
|||
|
||||
~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград |
UniBomb, Для начала хотя бы дополнить до HQ9++ и HQ9+- ... А так же можно дополнить все это дело какими нить стандартными процедурами... например "2*2"...
Это сообщение отредактировал(а) ~FoX~ - 5.12.2009, 11:08 |
|||
|
||||
GrayCardinal |
|
|||
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 |
На этом не прославишься. :(
|
|||
|
||||
UniBomb |
|
|||
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург |
kosmonaFFFt, это не интерпретатор виноват, а документация на язык
![]() ~FoX~, HQ9++ и HQ9+- не являются кошерными расширениями языка и заведомо ведут в тупиковый путь развития. Надо идти своим путём (ведь всем известно, что велосипедоводство спасёт мир). Насчёт "2*2" - не получится. Максимум "*2". Иными словами - оператор "+" инкрементирует счётчик, так что по логике оператор "*" должен умножать его же. Если дополнить до всех команд, то можно получить следующее: + [value] - увеличивает счётчик на значение value, если оно не задано, то на единицу; * [value] - умножает счётчик на значение value, если оно не задано, то на само себя; / [value] - делит счётчик на значение value, если оно не задано, то на само себя; - [value] - уменьшает счётчик на значение value, если оно не задано, то на единицу; Ещё чего стоил бы ввести - деление на ноль. Ну почему нигде нельзя делить на это замечательное число? Пусть хоть в этом языке это можно делать. Результат деления на ноль - операция не определённая, так что пусть эта конструкция возвращает рандомное число. С другой стороны - действительно было бы неплохо доработать этот язык до Тьюринг-полного. Но тогда нужно будет вводить типы данных. Какие нужны в первую очередь? GrayCardinal, невидимый тег irony для кого придумывали ![]() |
|||
|
||||
RockClimber |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре |
Ну раз это lunch edition и под лицензией beerware - то и главные типы должны быть beer и lunch. А то как иначе определить, кто перед кем должен "ку" делать? -------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
Shaggie |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 570 Регистрация: 21.12.2006 Где: outer space |
А вот если доработать язык до HQ9#, то вся слава твоя будет! Посему первое, что надо сделать, это компилировать программу на нашем замечательном языке в LLVM-байткод. |
|||
|
||||
~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград |
Деление на ноль возвращает бесконечность...В зависимости от деления на +0 или -0 вернется +бесконечность или -бесконечность соответственно...
Нафига типы? пойдем по пути брейнфака! "<", ">" перемещаемся по ячейкам бесконечно ленты, S - записать данные L - прочитать данные из ячейки...Дальше как описано можно изощрятся... Нужно предусмотреть интерфейс куда все это дело можно выводить - экран, файл, принтер, поток етц. |
|||
|
||||
UniBomb |
|
||||||
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург |
Не совсем так. Деление на ноль вызывает неопределённость, а вот бесконечность получается при делении на бесконечно малую величину. В любом случае можно оставить рандом как фичу))) О, а если вместо ленты оставить один единственный счётчик (типа как аккумулятор), но с возможностью его сохранять в стеке. Ну т.е. как в асме:
ну так нет ничего проще)))
Ну вот так всегда - делаешь-делаешь что-то полезное, потом приходит GrayCardinal, дописывает в конце # и забирает себе всю славу :( RockClimber, бир к ланчу - это профит, а не сущности в языке ![]() Добавлено @ 12:16 ё-мае, уже треть обеда просидел в этой теме, думаю не успею сделать всё в этот раз ((( Это сообщение отредактировал(а) UniBomb - 7.12.2009, 12:24 |
||||||
|
|||||||
~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград |
||||
|
||||
UniBomb |
|
|||
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург |
А может ну его, издевательство это? ![]() ![]() Добавлено через 2 минуты и 48 секунд О, а пусть ещё эта ячейка может иметь произвольный тип данных ![]() ![]() |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 |
Друзья, по моему вы в своей фантазии несколько отошли от идеологии языка.
Язык - интерфейс взаимодействия программиста и вычислительной машины. Каждый язык надо рассматривать с двух сторон. Со стороны машины и со стороны программиста Основная идея языка HQ9+ - позволить программисту очень просто осваивать те задачи, которые обычно ему трудно даются. Вспомните сколько времени у вас заняло написание самого первого хелловорда в вашей жизни.. Сколько времени ушло чтобы понять что присваивание и равенство - суть разные понятия. Сколько времени ушло на понимание что есть суть цикл. Как радовались когда "поняли" как этот код может воспроизвести себя сам. Благодаря HQ9+, у начинающего программиста появилась возможность очень просто и быстро пройти эти фазы. HQ9+ дружественен прежде всего к программисту. Более того - к начинающему, мало опытнтному программисту. BrainFuck же наоборот. Он более дружественен к машине. Он минимизирует количество операций, которые необходимо выполнять машине. Пытаясь развить HQ9+ заимствованием из BrainFuck вы губите обе идеи. Я думаю HQ9+ обязательно надо дополнить рекурсией. Понимание рекурсии, обычно, требует от новичков много усилий. Классический же пример рекусрии - ханойские башни./*факториал, как пример рекурсии не интересен, потому что новичек, приступая к изучению рекурсии, обычно уже знает о циклах и понимает абсурдность решения факториала рекурсией*/ Думаю следующий шаг - HQ9+H При вводе H, должна решаться задача ханойских башен с высотой башни равной текущему значению внутреннего счетчика. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
SoWa |
|
|||
![]() Харекришна ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 |
UniBomb, когда новую версию зарелизишь? ))
-------------------- Всем добра ![]() |
|||
|
||||
UniBomb |
|
|||
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург |
Zloxa, Ты не совсем нас понял. Та лёгкость, с которой HQ9+ позволяет решать задачи, стоящие перед начинающими программистами никуда не денется, а наоборот даже дополнится. Взять к примеру твоё предложение дополнить язык оператором H. Этот оператор добавится в ближайшую версию.
С другой стороны - у языка не имеющего недостатков (а вед все мы прекрасно понимаем - HQ9+ идеальный язык) может быть ещё непокрытые задачи. Так например тренировка мозга. Почему не научить человека не только справляться с задачами, но ещё и думать? Никто ведь не может сказать, с каким задачами придётся столкнуться начинающему гуру в дальнейшем. А по поводу BrainFuck - приглядись - в нашем случае от брейнфака позаимствовано ровно столько, сколько в нём позаимствовано например от Java. И в качестве контр-аргумента скажу, что мы специально остановились на HQ9+, а не на HQ9+PSL. Это значит, что у нас рождается новый язык, в который мы закладываем новые идеи для всестороннего развития языка. А вот какой именно частью пользоваться - пусть решает сам программист. Ну и напомню, что наш язык называется HQ9+ Lunch Edition. SoWa, со дня на день. Я столкнулся с некоторыми трудностями, но я работаю над собой. |
|||
|
||||
~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград |
Наверное большинство программистов в первую очередь сталкиваются с проблемой рекурсивного поиска файлов...
А еще начинающие, с присущим им максимализмом хотят написать самый злостный вирус во вселенной ![]() ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила раздела «Флейм» | |
|
Добро пожаловать в «Флейм». В разделе не действуют многие правила:
Строго запрещено:
Напоминаем о существовании волшебной кнопочки "Репорт". Если вы увидели сообщение, несовместимое с жизнью, просьба подвести на нее курсор и клацнуть левой клавишей мышки. Тем самым вы сможете призвать злого, но жутко справедливого джина-модератора, который нашлет порчу на злостного нарушителя. Кстати - счётчик сообщений здесь не растёт. Глас Винграда:
Глас Философии:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Sneg0k |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Флейм | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |