Создание интерпритатора.
Описание: Internet Explorer Browser UI Library
Версия: 7.0.5346.5
Поризводитель: Корпорация Мелкософт
Весит аж 4.86 MB!
В архиве 2.09 MB. Сами понимаете скинуть на форум не могу :(
А у меня всё так же просит мелкософтскую библиотеку. На компе у меня тоже её нету.:(
А ты ее куда поместил ?
Ау у меня её нету. Я же сказал. Но пример( на этом языке программирования ), работает нормально. Ошибок 339 больше нет. А вот исходник на Visual Basic всё так же просит библиотеку.
Я на скорую руку наклепал примерчик, в нём реализовано следующее
1. Возможность опредялять сколько ячеек памяти нужно выделить для работы интерпритатора (Ячеек в смысле массива т.е. сколько элементов массива переменных будет использоваться, причём с таким расчётом что на одну перемменныю уходит 2-е ячейки)
Это делает директива #$SizeMemory количество ячеек
2. Возможность объявления переменных и их инициализация при объявлении.
var VIL=123
Пока это всё. Прошу высказать свои предложения и замечания. Если можете сами дополните этот код теми функциями которые считаете нужными и выкладывайте на форуме.
:D :)
:D Как LCQ что-ли, очень необычный язык.:D
[QUOTE=ace lighting]Например синтакси состоящий из знаков препинания, или из знаков(+,-,*,/...)[/QUOTE]
Зачем же так необычно. :D
Я думаю сначала нужно определится для каких задач будет нужен наш язык.
И какой уровень безопасности он будет подерживать, т.е. насколько вредоносные сценарии на нём можно будет написать.
Вообще-то будет прикольно сделать логико-алгоритмический язык, т.е. помесь Prolog и алгоритмического языка. Можно руководствоваться следующим принципом "с миру по нитке", ну вобщем возмём всё лучшее.
:cool:
-Можно взять основу Visual Bsic'a.
-Тока сделать стандартные контролы по красивее
-И чтобы библиотека стандартных контролов весила мало
Короче много всего.
Пролога я не знаю, к сожалению
Хотя говорят на нём разрабатывают искуственный интелект...
Вообщем подождём что скажет Bard. По моему он тоже горел желанием помочь.
Да, и еще, по поводу интерпритатора: я думаю что можно сделать два удобнух способа полуитерпритатора: 1. создать интерпритатор как отдельный исполняемый файл и запихнуть в еге ресурсы текст программы. 2. сделать что-то вроде сценария, например VBScript, чтобы не запихивать каждый раз программу в ресурсы.
Особый синтаксис некчему, он будет утомлять ламера и грузить програмера. Я щитаю (и не только я) что синтаксис языка должен быть понятным, простым, удобным и главное функциональным.
И еще одна вещь: хотелось бы подключить возможность WinAPI, чтобы язык мог пользоваться почти всеми привилегиями языков высокого уровня. Ето я беру на себя.
А как насчет того, чтобы сделать Visual BASIC 7, но не .Net. Ведь известно, что VB6 очень популярен даже сейчас (2006 год ), но со времени появления Vb.Net в 2000г он ни разу не обновлялся(!!!), более того - VS6 вышла - в 98 году.
>Net не нравится всем потому, что он очень уж сильно отличается от классического! Нет многих полезных компонентов и свойств. Многое изменилось, не стало. Фактически - это другой язык. Он стал похож на С# , только с vb-шным синтаксисиом. Сам vb сошёл на нет.
Что если сделать: vb6(!) объектно-ориентированным(точнее доделать), доработать некоторые элементы.
Эо хорошо, что мы добавим новый синтаксис, как предложил [COLOR="Navy"]ace lighting[/COLOR], но главное - это новые возможности языка, новые идеи и пути развития. :)
Можно, но тогда у программы не будет большого будущего... зарубежом.;)
Кроме того, я вообще за то, чтобы в синтаксисе было как можно меньше изменений - чтобы это был тот же VB6, но имел больше св-в, функций, возможностей потроения контрола...
:)
Да и по-моему вобще - для хорошего языка - было бы неплохо начать с c assemblera???
Извини меня за прямоту, но идея - хуже не предумаеш.
Попроси у Билли сырци VB6, может даст :) Переделывать то что уже сделали ради того чтобы добавить несколько функцый - ох, зачем ?! VB6 и так популярный язык. Все что недоделал Билли - заменяеться поддержкой API, кудаж без нее :)
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function CopyRect Lib "user32" (lpDestRect As RECT, lpSourceRect As RECT) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Sub Form_Load()
Dim rectWindow As RECT, rectCopy As RECT
GetWindowRect Me.hwnd, rectWindow
CopyRect rectCopy, rectWindow
MsgBox "This form's width:" + Str$(rectCopy.Right - rectCopy.Left) + " pixels"
End Sub
Мой вариант:
Лево Как Большой
Верх Как Большой
Право Как Большой
Низ Как Большой
Конец Типа
Часный Декларацыя Функцыя CopyRect Библиотека "user32" (lpDestRect Как RECT, lpSourceRect Как RECT) Как Long
Часный Декларацыя Функцыя GetWindowRect Библиотека "user32" (ByVal hwnd Как Long, lpRect Как RECT) Как Long
Часный Суб Form_Load()
Масив rectWindow Как RECT, rectCopy Как RECT
GetWindowRect Me.hwnd, rectWindow
CopyRect rectCopy, rectWindow
Сообщение "This form's width:" + Строка$(rectCopy.Right - rectCopy.Left) + " pixels"
Конец Суб
Ето просто тупость какая-то, вспоминая Проф5 аж мурашки по спине бегают. Я вовсе не против того что кто-то будет розробатывать русский синтаксис, но ето точно буду не я.
Кстати неплохо бы сделать поддержку библиотеки ComCtl32.dll, чтобы юзать стиль XP.
ComCtl32.dll поддерживаеться всеми виндлзовскими приложениями, главное чтобы манифест присудствовал и во время иницыализации вызывалась функция InitCommonControls, и будет тебе XP....
А вы серъезно что ли писать новый язык на Visual Basic. Для этого assembler юзают::rolleyes:
А так получится сверхмедленный, неоптимальный до ужаса... (вб6 и так по всему уступает С++, Delphi, всему, что на .нет)
Ну ладно... хотя можно конечно... попробовать по неопытности...
Ну ладно русть так
API - не заменяет, а дополняет. Как c помощью АПИ задашь класс в классе(как на С++ или вбнет)? То бишь сделаешь его оопным.
Как с помощью АПИ(дай подумать) приделать событие к line?
Я имею в виду, создать новые возможности написания контролов?
Сразу предупреждаю: lineTo и MoveTo - бесполезно. это .line недоделанный. На контрол он никак не потянет.
А если попытаться с помощью АПИ придать контролу ормы линии, а затем попытаться её использовать типа:
private sub frm_mousedown(x as single, и т д)
Namecontrol.x1 = x
end sub
от такого тормаза ты придёшь в ужас... (я уж не говорю о mousemove)
private sub frm_mousedown(x as single, и т д)
Namecontrol.x1 = x
end sub
от такого тормаза ты придёшь в ужас... (я уж не говорю о mousemove)[/QUOTE]
Че-то я не понял, ты про что?
Ето еще что?
Мы тут разрабатываем интерпретатор, а он нам о контролах талдычит.
А интерпретатор - это только синтаксис по вашему что ли?
Ну всё про то же... про новые возможности языка.
Я в принципе не понимаю смысл написания языка только для того, чтобы функциям другие имена поприсваивать.
P.S. Без обиняков: надо ж немного критики
Точно! Тогда и смысл появляется: макрос который запускает-убивает указанные приложения. Гляньте тут (самое верхнее). Выйдет такая же махина,только много удобней и гибче :)
Чесно говоря я думал немного о другом:D , я как-то почитал (чуть-чуть) о функции SendMessage она отправляет сообщения оконным функциям, если кто может рассказать он ней подробней милости просим в частности хотелось бы узнать какие константы можно использовать в этой функции и для чего. Может благодаря ней скрипт на нашем языке (P.S. Это только гипотеза)может обмениваться информацией с другими приложениями. Если есть возможность сделать это другим способом хотелось бы узнать каким.:cool: :D
Будет API - все шо хош будет!
Ну а как ты предлагаешь организовать поддержку API? :eek: :eek: :eek:
Я же сказал, что беру ето на себя :) Я уже над етим работаю, а когда доделаю, может завтра может после завтра), то скину кже доделанный код. Но если тебе неверицца, то я в режиме реального времени напишу демку по интерпритацыи апи, тока никуда не уходи, сделаю за 15 минут - засекай короче.
Тока надо сменить расширения файлов на правильные:
Project1.zip -> Project1.vbp
Module1.zip -> Module1.bas
Form1.zip -> Form1.frm
Form1.frx.zip -> Form1.frx
Ето из-за того что я три дня назад переустановил винду, и не успел установить архиватор.
Забавно наблюдать как несколько тинейджеров не зная никакой теории и математики обсуждают то о чем понятия не имеют. Ребята! Такие вещи изучают на 2-4 курсе специализированного университета после штудирования толстенных томов по теории программирования, математики и языкам программирования. Если вам так нечего делать - займитесь XML - там много чего интересного можно сделать.