Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Всем привет. Вот помню когда-то давно (летом) я начал писать с нуля свой язык програмирования на neobook, а парсер языка на пхп. В итоге помучался 2 недели, глаза были краснющие, и бросил на время из-за своей сложности. В итоге я подсчитал для интереса (весь код спихнул в один файл) всего было написано мной около 1300 строчек, 32700 символов)))) В самом необуке около 60 обьектов, использовано 5 плагинов. У меня такой вопрос стоит ли дальше продолжать его писать? Не будет ли потом на свалке валяться?
А теперь о самом языке.
Язык работает вот так: сперва через neophp загружается парсер языка, который переводит язык в пхп, потом запускается компилятор bambalam exe to php compiler (сам написан на пхп и я внедрил его в неопхп), а сам компилятор приклепляет ресурсы к стюбу.
Синтаксис для интереса (привожу пример программы, указывающей кол-во градусов между стрелками часов):
Код
while [r] == "" `
write Enter hour time [.26.] read t1
write Enter minute time [.26.] read t2
if [t1]>=12 ` math [t1]-12`t1 end math [t1] + [t2]/60`k1 math [t2]/5`k2 math [k1]-[k2]`k3 php global $k3; $k3=abs($k3); math [k3]*30`k3 if [k3]>=180 ` math [k3]-180`k3 end
write [k3]* readln r
end
Сейчас язык написан около на 80% для выхода на альфа версию, написан очень коряво . В нем пока множество багов, не доступны (не написаны) многие (около 50 процентов) стандартные команды. Если буду продолжать писать то планирую даже сделать возможность создания gui программ.(уже есть идеи)
А вот скриношоты
#define i *want #define set (char*) #define get (char) #define want = #define another char #define but ;
т.е. по смыслу "язык" это некая своя интерпретация на основе php ?
Цитата (bestful)
У меня такой вопрос стоит ли дальше продолжать его писать? Не будет ли потом на свалке валяться?
если честно, то думаю будет валяться. Свой язык это не просто набор интерпретированных операторов чего-либо (в данном случае php), а целая организованная структура, со своими правилами, фичами... даже не описать вкратце. это все сложно, и не думаю что это особо реализуемо таким образом. Хотя, возможно, ты и представляешь что делаешь... да и потом, есть же php develstudio. Где, в общем-то, и так все притянуто за уши, а ты хочешь еще одну "прокладку" внедрить... Как задавать вопросы
Визуальный редактор полностью написан на необуке с использованием плагинов. Ну по сути программа парсит мой язык на php, а потом пихает пхп код в ресурсы файла stub.exe (например как в необуке файл NBPlay5.exe) А любая команда языка это функция написанная на пхп. Планирую написать множество функций (то же редактирование реестра например) В файл стюба можно пихать файлы, добавлять пхп расширения.(пока не реализовано) Вообще-то я хочу свой язык написать со своим синтаксисом. + Сам язык похож на необук.Даже например реализовал при 2 нажати на команду вывод диалога с описанием, ее свойствами. Хотя по сути 1 альфа версия на 80 процентов готова (есть уже 20 команд, 2 главных оператора (планирую луп сейчсас делать) , все компилируется, готовый ехе файл весит около 540 кб) Или мне стоит забросить свою бредовую идею? Я ответ на этот вопрос и сам не знаю. Иногда мне кажеться, что все получится, главное не надо бросать, а иногда что это сильно бредовая идея, ведь в мире уже тысячи языков. Хотя альтернативу того же необук не встречал (devel studio имеет свои недостатки, mmbuilder свои) #define i *want #define set (char*) #define get (char) #define want = #define another char #define but ;
Иногда мне кажеться, что все получится, главное не надо бросать, а иногда что это сильно бредовая идея, ведь в мире уже тысячи языков.
ты сам ответил на свой вопрос, обычно такие вещи пишут если чем-то серьезно не устраивают имеющиеся реализации языковых платформ. Как тебе сказать, может вещь сама по себе будет вполне рабочая, но какова будет целевая аудитория пользователей этой вещи? Какие серьезные недостатки других языков здесь будут решены, либо предоставлены отсутствующие возможности или удобства, фичи? Я так понимаю, мы сравниваем с php. Что нам даст, помимо переиначенного php синтаксиса твое изобретение? К примеру, ты говорил о недостатках devstudio, какие они и можешь ли ты их решить?
Добавлено (30 Декабря 2012, 20:52) --------------------------------------------- еще к примеру, есть такая поделка как Алгоритм2. Фичи - программирование на русском языке ,реализация всего этого добра, насколько я понял, на Visual Basic (бредовый выбор но за старания 5+ если это так, это было бы непросто сделать). В целом, полная хрень, но имела своих поклонников, видимо в силу своей оригинальности. Как задавать вопросы
Ладно, раскрою себя. Пишу это для себя, так как это интересно мне + хочется одну фичу сделать (нигде ее нет). Может когда напишу пару версий и народ пойдет, кто знает. Я и думал бросать это дела, но мне жалко много времени потраченое на это. Вот кидаю сам язык (проверка синтаксиса там отключена, есть баги, и нет половина команд)
Добавлено (30 Декабря 2012, 21:06) --------------------------------------------- Ссылка для скачивания - http://rghost.ru/42629021
#define i *want #define set (char*) #define get (char) #define want = #define another char #define but ;
Все работает, он пишет, что не нашел файл проекта(во вкладке new не запускается),или проект пустой. Чтобы протестировать прогу нужно: 1)Создать пустой файл с расширением eal. 2)Открыть с помощью и выбираем eal.exe 3)Пишем код, сохраняем и компилируем (кнопка запуск не работает пока)
Добавлено (01 Января 2013, 13:50) --------------------------------------------- Примечание: build and save пока только компилирует. Когда хотите протестировать програму обязательно сохраните а потом компилируете. Я об этих особенностях уже давно забыл, исправлю в следующей улучшеной версии
#define i *want #define set (char*) #define get (char) #define want = #define another char #define but ;
---При сохранении не добавляется расширение файла *.eal ---Сохранение тоже не помагает
Выбираю пример Открыть time.eal Компилировать и сохранить Выполнить. Выводится окно с заголовком "Build", сообщением "Error" или вовсе ничего. Win7 Pro SP1 x64; NBv5.5.4rus,v5.6.2rus, v5.7.0en, Opera
Народ, нашел фатальный баг! Замените файл ealc/sync.es. В этом месте компилятор искал один файл не в той папке.(у меня нашел) http://rghost.ru/42657913 #define i *want #define set (char*) #define get (char) #define want = #define another char #define but ;
я начал писать с нуля свой язык програмирования на neobook, а парсер языка на пхп.
Двоякое чувство возникает, когда читаешь подобные вещи.... С одной стороны, совершенно очевидно, что практической перспективы у подобной разработки - ноль. Но, с другой стороны, такие проекты позволяют хорошо тренировать и развивать мозги. Вот и думай тут: надо или не надо? - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Да, конечно, с точки зрения "тренировки ума" надо! Но, может быть, лучше сосредоточить усилия на более практичных и полезных вещах? Не знаю...
Цитата (bestful)
было написано мной около 1300 строчек, 32700 символов))))
Гм... bestful, знайте - в моей поделке под названием "плагин zmFunctions" только на реализацию одной команды zmFindFiles потребовалось более 500 строк кода Delphi.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Ого. А сколько плагин для интереса писал? Я блин эти строчки писал более 100 человекочасов. #define i *want #define set (char*) #define get (char) #define want = #define another char #define but ;
А чего тут такого особенного-то? В программировании подобное - норма! Это я все говорил к тому, что большие возможности требуют и больших затрат труда и времени, и, естественно, знаний. Как говориться, "без труда..."
А плагин я лепил наскоками (по настроению), время не засекал, но на упомянутую команду ушло вечера два-три, если не ошибаюсь. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Ну по сути это мой первый серьезный проект. А раньше я так просто делал различные несложные програмки .(например eSolve для решения обычных и квадратных уравнений, вводишь уравнение хоть в нестандартном виде оно и решит даже это) И я даже пока не сижу за компьютером много времени. Мне до програмиста еще далековато, но в компах шарю хорошо. Когда есть свободное время, допиливаю свой язычок. (а сперва это был замысел сделать компилятор neobook в php) И кстати какие идейки есть по поводу языка? #define i *want #define set (char*) #define get (char) #define want = #define another char #define but ;
Какого языка? - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
забей (хотя в целях самосовершенствования можно и доделать), займись просто пока расширением общего кругозора. Есть много чего интересного, помимо php, и в плане neobook - подключаемые плагины - c++/powerbasic/delphi можешь .net поковырять тоже интересно Как задавать вопросы
забей (хотя в целях самосовершенствования можно и доделать), займись просто пока расширением общего кругозора. Есть много чего интересного, помимо php, и в плане neobook - подключаемые плагины - c++/powerbasic/delphi
Совершенно верно!
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Скоро через пару дней выйдет улучшенная версия (я понимаю, что в будущем язык скорее всего будет на свалке валяться, но буду продолжать его писать, так как мне это интересно). Теперь давайте по теме. Главной особенностью улучшенной версии будет поддержка обновлений (чтобы не скачивать 100 раз подряд), и другие более мелкие улучшения. А теперь вопрос по поводу обновлений. Я планирую реализовать это так: 1)Каждый раз при запуске программы будет отправляться get запрос site.com/eal/?version 2)Если версия отличается, то программа будет выводить пользователю, что есть обновление (без customwindow) 3) Если пользователь в меню программы нажал на update, то будет отправляться get запрос на site.com/eal/?update . С него будет получаться neobook скрипт Работа необук скрипта : с сайта будет качаться pkg файл проекта, и запускаться через runneobook. Сам проект будет качать запакованый файл и распаковывать с заменой. Я хотел сперва сделать через svn, но мне кажеться что этот вариант лучше. Что выбрать: svn или распаковка архива?
Добавлено (20 Января 2013, 22:06) --------------------------------------------- Блин... Времени остается маловато. (еще и готовиться к 2 республиканским олимпиадам) Улучшенную версию доделал. Планирую делать первую альфа версию и сам сайт (будет долго). (первоначальное название будет ealstudio.tk) У меня столько новых идей, но времени мало. Планирую реализовать: - Многопоточность в пхп (скорее всего эмулятор) - Вызов win32api функций (kernel32, user32) - Вызов обычных dll функций - Стандартные команды языка - Написать обертку к некоторым пхп расширениям. И кстати автор плагина hpwcolormemo создал улучшенный плагин под именем hpwplusmemo. Теперь слева в мемо появился номер строки. Я не программист, я только учусь) Когда выйдет первая альфа версия, то обязательно отпишусь. До поры до времени
#define i *want #define set (char*) #define get (char) #define want = #define another char #define but ;
bestful, в этом случае написать свой язык программирования на NeoBook - замечательная идея! Кроме тренировки мозгов это очень оригинальный проект и отличный способ показать возможности самой среды NeoBook! Так что если "горит", то надо непременно доделать. Оформить замысел до работоспособной и надежной версии (удобной для реализации каких-то определенных задач), чтобы ясно и однозначно показать, что и это в NeoBook возможно! Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
Как-то дела обстоят не очень. Пока за это долгое время сделал не много. Переписал само ядро парсера, которое уже лучше прошлого. Но сейчас уже начал заниматься моим проектом. Скажу не много. Самая первая версия позволит уже и окна создавать) Но от необука останется мало (только сам редактор кода с подсветкой, сам же редактор окон будет писаться на этом же языке, одновременно будет усовершенствоваться и сам язык) Кстати, я вчера твиттер создал и самую первую оконную программу.. Кому интересно:
Twitter: link MD5 Hasher: link #define i *want #define set (char*) #define get (char) #define want = #define another char #define but ;