Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Создание интерпритатора.

1.2K
28 августа 2006 года
PAVEL BASIC
171 / / 24.07.2006
А давайте создадим интерпритатор на VB, я уже несколько раз пробовал, но обычно получается какая-то х@@ня. Если кто может дать какие-нибудь советы милости просим. :)
Страницы:
282
10 сентября 2006 года
Bard
481 / / 26.02.2006
Имя: ieframe.dll
Описание: Internet Explorer Browser UI Library
Версия: 7.0.5346.5
Поризводитель: Корпорация Мелкософт

Весит аж 4.86 MB!
В архиве 2.09 MB. Сами понимаете скинуть на форум не могу :(
282
10 сентября 2006 года
Bard
481 / / 26.02.2006
Я паставил MBScroll.ocx рядом с программой и ошибок никаких не вылетает !
403
10 сентября 2006 года
ace lighting
411 / / 05.05.2006
[QUOTE=][/QUOTE]
А у меня всё так же просит мелкософтскую библиотеку. На компе у меня тоже её нету.:(
282
10 сентября 2006 года
Bard
481 / / 26.02.2006
[QUOTE=ace lighting]А у меня всё так же просит мелкософтскую библиотеку. На компе у меня тоже её нету.:([/QUOTE]

А ты ее куда поместил ?
403
11 сентября 2006 года
ace lighting
411 / / 05.05.2006
[QUOTE=Bard]А ты ее куда поместил ?[/QUOTE]
Ау у меня её нету. Я же сказал. Но пример( на этом языке программирования ), работает нормально. Ошибок 339 больше нет. А вот исходник на Visual Basic всё так же просит библиотеку.
282
11 сентября 2006 года
Bard
481 / / 26.02.2006
Открой .vbp в Болокноте и посмотри на путь к етой библе, если он не совпадает с ее местом нахождения - подправь его.
403
13 сентября 2006 года
ace lighting
411 / / 05.05.2006
В том то и дело, что она там не прописана! Её вообще нигде нет и быть не должно. Где она - я вообще не знаю.
403
13 сентября 2006 года
ace lighting
411 / / 05.05.2006
Но судя по ошибкам она должна быть прицеплена к форме interfaces.frm...
1.2K
14 сентября 2006 года
PAVEL BASIC
171 / / 24.07.2006
Знаете я вот тут подумал и решил что так унас дело не пойдёт, нам нужно с нуля строить интерпритатор (ну почти с нуля).
Я на скорую руку наклепал примерчик, в нём реализовано следующее
1. Возможность опредялять сколько ячеек памяти нужно выделить для работы интерпритатора (Ячеек в смысле массива т.е. сколько элементов массива переменных будет использоваться, причём с таким расчётом что на одну перемменныю уходит 2-е ячейки)

Это делает директива #$SizeMemory количество ячеек

2. Возможность объявления переменных и их инициализация при объявлении.

var VIL=123

Пока это всё. Прошу высказать свои предложения и замечания. Если можете сами дополните этот код теми функциями которые считаете нужными и выкладывайте на форуме.

:D :)
403
14 сентября 2006 года
ace lighting
411 / / 05.05.2006
Нет. Нет. Нет. Давайте определимся, какие задачи должен выполнять интерпретатор? А то мы столько можем всего туда добавить... Лучше делать( читайте реализовать ) определённую задачу!:)
1.2K
14 сентября 2006 года
PAVEL BASIC
171 / / 24.07.2006
Идеи есть?:) :) ;)
403
14 сентября 2006 года
ace lighting
411 / / 05.05.2006
Ну не знаю. Делать язык похожий на Bsaic, по моему, глупо. Надо сделать его необычным! Например синтакси состоящий из знаков препинания, или из знаков(+,-,*,/...)... и т.д. Как думаешь?
1.2K
14 сентября 2006 года
PAVEL BASIC
171 / / 24.07.2006
[QUOTE=ace lighting]Надо сделать его необычным![/QUOTE]

:D Как LCQ что-ли, очень необычный язык.:D

[QUOTE=ace lighting]Например синтакси состоящий из знаков препинания, или из знаков(+,-,*,/...)[/QUOTE]

Зачем же так необычно. :D

Я думаю сначала нужно определится для каких задач будет нужен наш язык.

И какой уровень безопасности он будет подерживать, т.е. насколько вредоносные сценарии на нём можно будет написать.

Вообще-то будет прикольно сделать логико-алгоритмический язык, т.е. помесь Prolog и алгоритмического языка. Можно руководствоваться следующим принципом "с миру по нитке", ну вобщем возмём всё лучшее.


:cool:
403
14 сентября 2006 года
ace lighting
411 / / 05.05.2006
По мне чтобы на нём можно было написать самый смертельный вирус:D А если серьёзно, то я думаю так:
-Можно взять основу Visual Bsic'a.
-Тока сделать стандартные контролы по красивее
-И чтобы библиотека стандартных контролов весила мало
Короче много всего.
Пролога я не знаю, к сожалению
Хотя говорят на нём разрабатывают искуственный интелект...
Вообщем подождём что скажет Bard. По моему он тоже горел желанием помочь.
282
15 сентября 2006 года
Bard
481 / / 26.02.2006
Я вижу нас, тех кто хочет помочь, уже не один. По скольку проект становиться общим, то я думаю что пусть над разными аспектами работы, будут трудиться определенные люди. Например кто-то будет продумывать и совершенствовать интегрированную среду, кто-то будет продумывать синтаксис и <превращять> его в жизнь, кто-то будет делать все по-немножку... Ну надеюсь вы меня поняли. Лично я хотел бы заюзать интегрированную среду (вдохновила мысль ace lighting "-Тока сделать стандартные контролы по красивее")

Да, и еще, по поводу интерпритатора: я думаю что можно сделать два удобнух способа полуитерпритатора: 1. создать интерпритатор как отдельный исполняемый файл и запихнуть в еге ресурсы текст программы. 2. сделать что-то вроде сценария, например VBScript, чтобы не запихивать каждый раз программу в ресурсы.

Особый синтаксис некчему, он будет утомлять ламера и грузить програмера. Я щитаю (и не только я) что синтаксис языка должен быть понятным, простым, удобным и главное функциональным.
И еще одна вещь: хотелось бы подключить возможность WinAPI, чтобы язык мог пользоваться почти всеми привилегиями языков высокого уровня. Ето я беру на себя.
1.8K
16 сентября 2006 года
Валериус
190 / / 14.07.2006
А как вам безумная идея сделать синтаксис русским? :))) То есть вместо буржуйского "If" писать родное "Если"?? :)))
10K
16 сентября 2006 года
АлРАД
58 / / 30.08.2006
Цитата:
Ну не знаю. Делать язык похожий на Bsaic, по моему, глупо. Надо сделать его необычным! Например синтакси состоящий из знаков препинания, или из знаков(+,-,*,/...)... и т.д. Как думаешь?

А как насчет того, чтобы сделать Visual BASIC 7, но не .Net. Ведь известно, что VB6 очень популярен даже сейчас (2006 год ), но со времени появления Vb.Net в 2000г он ни разу не обновлялся(!!!), более того - VS6 вышла - в 98 году.
>Net не нравится всем потому, что он очень уж сильно отличается от классического! Нет многих полезных компонентов и свойств. Многое изменилось, не стало. Фактически - это другой язык. Он стал похож на С# , только с vb-шным синтаксисиом. Сам vb сошёл на нет.
Что если сделать: vb6(!) объектно-ориентированным(точнее доделать), доработать некоторые элементы.
Эо хорошо, что мы добавим новый синтаксис, как предложил [COLOR="Navy"]ace lighting[/COLOR], но главное - это новые возможности языка, новые идеи и пути развития. :)


Цитата:
А как вам безумная идея сделать синтаксис русским? )) То есть вместо буржуйского "If" писать родное "Если"?? ))

Можно, но тогда у программы не будет большого будущего... зарубежом.;)

Кроме того, я вообще за то, чтобы в синтаксисе было как можно меньше изменений - чтобы это был тот же VB6, но имел больше св-в, функций, возможностей потроения контрола...
:)
Да и по-моему вобще - для хорошего языка - было бы неплохо начать с c assemblera???

282
16 сентября 2006 года
Bard
481 / / 26.02.2006
[QUOTE=Валериус]А как вам безумная идея сделать синтаксис русским? :))) То есть вместо буржуйского "If" писать родное "Если"?? :)))[/QUOTE]

Извини меня за прямоту, но идея - хуже не предумаеш.
282
16 сентября 2006 года
Bard
481 / / 26.02.2006
To АлРАД

Попроси у Билли сырци VB6, может даст :) Переделывать то что уже сделали ради того чтобы добавить несколько функцый - ох, зачем ?! VB6 и так популярный язык. Все что недоделал Билли - заменяеться поддержкой API, кудаж без нее :)
403
16 сентября 2006 года
ace lighting
411 / / 05.05.2006
А что русский синтаксис мне нравиться. Нет в этом ничего плохого.:)
282
16 сентября 2006 года
Bard
481 / / 26.02.2006
Ну ладно, посмотрим... Переведи-ка на русский синтакси вот ето:

Код:
Private Type RECT
        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


Мой вариант:

Код:
Часный Тип RECT
        Лево Как Большой
        Верх Как Большой
        Право Как Большой
        Низ Как Большой
Конец Типа
Часный Декларацыя Функцыя 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 аж мурашки по спине бегают. Я вовсе не против того что кто-то будет розробатывать русский синтаксис, но ето точно буду не я.
403
16 сентября 2006 года
ace lighting
411 / / 05.05.2006
Да! Ты прав. Пусть будет единый английский язык.
Кстати неплохо бы сделать поддержку библиотеки ComCtl32.dll, чтобы юзать стиль XP.
282
16 сентября 2006 года
Bard
481 / / 26.02.2006
[QUOTE=ace lighting]Кстати неплохо бы сделать поддержку библиотеки ComCtl32.dll, чтобы юзать стиль XP.[/QUOTE]

ComCtl32.dll поддерживаеться всеми виндлзовскими приложениями, главное чтобы манифест присудствовал и во время иницыализации вызывалась функция InitCommonControls, и будет тебе XP....
10K
16 сентября 2006 года
АлРАД
58 / / 30.08.2006
Bard:
Цитата:
Попроси у Билли сырци VB6, может даст Переделывать то что уже сделали ради того чтобы добавить несколько функцый - ох, зачем ?! VB6 и так популярный язык. Все что недоделал Билли - заменяеться поддержкой API, кудаж без нее

А вы серъезно что ли писать новый язык на Visual Basic. Для этого assembler юзают::rolleyes:

А так получится сверхмедленный, неоптимальный до ужаса... (вб6 и так по всему уступает С++, Delphi, всему, что на .нет)

Ну ладно... хотя можно конечно... попробовать по неопытности...
Ну ладно русть так

API - не заменяет, а дополняет. Как c помощью АПИ задашь класс в классе(как на С++ или вбнет)? То бишь сделаешь его оопным.
Как с помощью АПИ(дай подумать) приделать событие к line?

10K
16 сентября 2006 года
АлРАД
58 / / 30.08.2006
Цитата:
Как с помощью АПИ(дай подумать) приделать событие к line?

Я имею в виду, создать новые возможности написания контролов?

Сразу предупреждаю: lineTo и MoveTo - бесполезно. это .line недоделанный. На контрол он никак не потянет.

А если попытаться с помощью АПИ придать контролу ормы линии, а затем попытаться её использовать типа:
private sub frm_mousedown(x as single, и т д)
Namecontrol.x1 = x
end sub
от такого тормаза ты придёшь в ужас... (я уж не говорю о mousemove)

282
16 сентября 2006 года
Bard
481 / / 26.02.2006
[QUOTE=АлРАД]А если попытаться с помощью АПИ придать контролу ормы линии, а затем попытаться её использовать типа:
private sub frm_mousedown(x as single, и т д)
Namecontrol.x1 = x
end sub
от такого тормаза ты придёшь в ужас... (я уж не говорю о mousemove)[/QUOTE]

Че-то я не понял, ты про что?
282
16 сентября 2006 года
Bard
481 / / 26.02.2006
[QUOTE=АлРАД]Я имею в виду, создать новые возможности написания контролов?[/QUOTE]

Ето еще что?
403
16 сентября 2006 года
ace lighting
411 / / 05.05.2006
[QUOTE=Bard]Ето еще что?[/QUOTE]
Мы тут разрабатываем интерпретатор, а он нам о контролах талдычит.
10K
16 сентября 2006 года
АлРАД
58 / / 30.08.2006
Цитата:
Мы тут разрабатываем интерпретатор, а он нам о контролах талдычит.

А интерпретатор - это только синтаксис по вашему что ли?

10K
16 сентября 2006 года
АлРАД
58 / / 30.08.2006
Цитата:
Че-то я не понял, ты про что?

Ну всё про то же... про новые возможности языка.
Я в принципе не понимаю смысл написания языка только для того, чтобы функциям другие имена поприсваивать.
P.S. Без обиняков: надо ж немного критики

1.2K
17 сентября 2006 года
PAVEL BASIC
171 / / 24.07.2006
Знаете я вот тут подумал, может попробуем реализовать возможности контроля за другими приложениями.
1.8K
17 сентября 2006 года
Валериус
190 / / 14.07.2006
[QUOTE=PAVEL BASIC]Знаете я вот тут подумал, может попробуем реализовать возможности контроля за другими приложениями.[/QUOTE]
Точно! Тогда и смысл появляется: макрос который запускает-убивает указанные приложения. Гляньте тут (самое верхнее). Выйдет такая же махина,только много удобней и гибче :)
1.2K
17 сентября 2006 года
PAVEL BASIC
171 / / 24.07.2006
[QUOTE=Валериус]макрос который запускает-убивает указанные приложения.[/QUOTE]

Чесно говоря я думал немного о другом:D , я как-то почитал (чуть-чуть) о функции SendMessage она отправляет сообщения оконным функциям, если кто может рассказать он ней подробней милости просим в частности хотелось бы узнать какие константы можно использовать в этой функции и для чего. Может благодаря ней скрипт на нашем языке (P.S. Это только гипотеза)может обмениваться информацией с другими приложениями. Если есть возможность сделать это другим способом хотелось бы узнать каким.:cool: :D
282
17 сентября 2006 года
Bard
481 / / 26.02.2006
[QUOTE=PAVEL BASIC]Знаете я вот тут подумал, может попробуем реализовать возможности контроля за другими приложениями.[/QUOTE]

Будет API - все шо хош будет!
1.2K
17 сентября 2006 года
PAVEL BASIC
171 / / 24.07.2006
[QUOTE=Bard]Будет API - все шо хош будет![/QUOTE]

Ну а как ты предлагаешь организовать поддержку API? :eek: :eek: :eek:
282
17 сентября 2006 года
Bard
481 / / 26.02.2006
[QUOTE=PAVEL BASIC]Ну а как ты предлагаешь организовать поддержку API? :eek: :eek: :eek:[/QUOTE]

Я же сказал, что беру ето на себя :) Я уже над етим работаю, а когда доделаю, может завтра может после завтра), то скину кже доделанный код. Но если тебе неверицца, то я в режиме реального времени напишу демку по интерпритацыи апи, тока никуда не уходи, сделаю за 15 минут - засекай короче.
282
18 сентября 2006 года
Bard
481 / / 26.02.2006
Вот и демка.

Тока надо сменить расширения файлов на правильные:

Project1.zip -> Project1.vbp
Module1.zip -> Module1.bas
Form1.zip -> Form1.frm
Form1.frx.zip -> Form1.frx

Ето из-за того что я три дня назад переустановил винду, и не успел установить архиватор.
403
18 сентября 2006 года
ace lighting
411 / / 05.05.2006
Классно! Не знаю как, PAVEL BASIC, но я тебе верю!:)
1.2K
18 сентября 2006 года
PAVEL BASIC
171 / / 24.07.2006
Да вроде всё работает. Тока я не понял как это работает :D :D :D :eek: , но надеюсь разобраться в ближайшее время.
13
19 сентября 2006 года
RussianSpy
3.0K / / 04.07.2006
Предлагаю модераторам перенести это обсуждение в раздел "Юмор".

Забавно наблюдать как несколько тинейджеров не зная никакой теории и математики обсуждают то о чем понятия не имеют. Ребята! Такие вещи изучают на 2-4 курсе специализированного университета после штудирования толстенных томов по теории программирования, математики и языкам программирования. Если вам так нечего делать - займитесь XML - там много чего интересного можно сделать.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог