Cвалка basic компиляторов

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Cвалка basic компиляторов

Сообщение jangle » 06.07.2011 (Ср) 10:54

Windows Basics list

В основном ради исторического интереса

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Cвалка basic компиляторов

Сообщение Хакер » 06.07.2011 (Ср) 10:58

Чего-ж там VB нет?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Cвалка basic компиляторов

Сообщение jangle » 06.07.2011 (Ср) 11:27

Там нет VB и PowerBasic. И вообще вроде все представленные проекты уже много лет лежат в могиле.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Cвалка basic компиляторов

Сообщение Хакер » 06.07.2011 (Ср) 11:29

Да они по-моему мёртворождённые. Как-то скачал расхваливаемый K-Basic, который называли чуть ли не аналогом VB. А не деле оказалась такая гадость.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Cвалка basic компиляторов

Сообщение jangle » 06.07.2011 (Ср) 11:37

B++ вроде еще живет, да и редактор к нему красивый сделали.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Cвалка basic компиляторов

Сообщение jangle » 06.07.2011 (Ср) 11:50

И вот еще, удалось найти в инет завалах исходники 32-битного компилятора, полностью написанного на VB6.
Сайт разработчика давно умер, но исходник интересный. Генерирует автономные EXE файлы размером от 4 кбайт.
Вложения
LC41SRC.zip
32-битный компилятор Си-подобного языка.
(146.85 Кб) Скачиваний: 140

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Cвалка basic компиляторов

Сообщение Хакер » 06.07.2011 (Ср) 11:53

Исходник интересный? УГ это, а не интересный исходник.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Cвалка basic компиляторов

Сообщение jangle » 06.07.2011 (Ср) 11:59

Почему УГ?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Cвалка basic компиляторов

Сообщение Хакер » 06.07.2011 (Ср) 12:11

Я бы ставил вопрос: почему не УГ?

Куда не ткни, везде дрянь. Вот сейчас опять открыл, ткнул, смотрим, видим распознавание Hex-чисел:
Код: Выделить всё
Function NumberExpression() As Variant
    Dim CToHex As Boolean
    SkipBlank
    If IsSymbol("$") Then Skip: CToHex = True
    While IsNumeric(Mid(Source, SourcePos, 1)) Or Mid(Source, SourcePos, 1) = "-" Or _
          Mid(Source, SourcePos, 1) = "A" Or Mid(Source, SourcePos, 1) = "B" Or _
          Mid(Source, SourcePos, 1) = "C" Or Mid(Source, SourcePos, 1) = "D" Or _
          Mid(Source, SourcePos, 1) = "E" Or Mid(Source, SourcePos, 1) = "F"
            NumberExpression = NumberExpression & Mid(Source, SourcePos, 1)
            Skip
    Wend
    If CToHex = True Then NumberExpression = CLng("&H" & NumberExpression)
End Function

Ну дрянь же. Индусский код в худшем его проявлении.

Или вот ассемблер:
Код: Выделить всё
Sub Expr_Sub(Name As String, Value As Long)
    AddCodeByte &H81, &H2D
    AddCodeFixup Name
    AddCodeDWord Value
End Sub

Sub Expr_MovEAX(Name As String)
    'mov eax,[name]
    AddCodeByte &HA1
    AddCodeFixup Name
End Sub

Sub Expr_MovEAXAdress(Name As String)
    'mov eax,name
    AddCodeByte &HB8
    AddCodeFixup Name
End Sub

Sub Expr_MovECX(Name As String)
    'mov ecx,value
    AddCodeByte &H8B, &HD
    AddCodeFixup Name
End Sub

Что это за шизофренический маразм?

Это же надо быть дебилом, чтобы догадаться создавать по отдельной функции для кодирования каждого возможного варианта употребления каждой доступной инструкции. Потому что вариантов — тьмища. Но мы видим в модуле только 211 строк. Это значит, что ассемблер умеет кодировать 10 % вариантов употребления десяти процентов доступных инструкций.

Что это вообще за блэк-кодинг?
Код: Выделить всё
Sub Expr_Compare(VarI As String, VarII As String)
    Expr_MovEAX VarI
    Expr_MovEDX VarII
    'cmp eax,edx
    AddCodeByte &H39, &HD0
End Sub


Что это за дрянь? Что такое &hD0 (я то знаю, что это значение ModR/M-байта закодированной инструкции). Почему ModR/M жестко вшит в код? Почему его значение не генерируется на основании пары EAX/EDX?

А что если эти регистры окажутся нужня для чего-то другого? Почему утилизируется только возможность производить сравнение только используя именно эту пару регистров?

А линкер, это же просто кошмар. Линкер совсем не линкер, потому что никакой линкующей функциональности в нём нет ни капли. Линкер просто записывает в файл PE-заголовок а затем выкидывает туда сконкатенированный массив, который перед этим заполнили другие модули.

Ну ладно, но как он записывает PE-заголовок?

Код: Выделить всё
Sub InitPEHeader()
    'Signature = "PE"
    AddLinkByte &H50, &H45, &H0, &H0
   
    'Machine 0x014C;i386
    AddLinkByte &H4C, &H1
    'NumberOfSections = 3
    AddLinkByte &H3, &H0
    'TimeDateStamp
    AddLinkByte &H0, &H0, &H0, &H0
    'PointerToSymbolTable = 0
    AddLinkByte &H0, &H0, &H0, &H0
    'NumberOfSymbols = 0
    AddLinkByte &H0, &H0, &H0, &H0
    'SizeOfOptionalHeader
    AddLinkByte &HE0, &H0
    'Characteristics
    AddLinkByte &H8F, &H81
   
    'Magic
    AddLinkByte &HB, &H1
    'MajorLinkerVersion
    AddLinkByte &H1
    'MinerLinkerVersion
    AddLinkByte &H0
    'SizeOfCode
    AddLinkByte &H0, &H0, &H0, &H0
    'SizeOfInitializedData
    AddLinkByte &H0, &H0, &H0, &H0
    'SizeOfUnInitializedData
    AddLinkByte &H0, &H0, &H0, &H0
    'AddressOfEntryPoint
    AddLinkByte &H0, &H20, &H0, &H0
    'BaseOfCode
    AddLinkByte &H0, &H0, &H0, &H0
    'BaseOfData
    AddLinkByte &H0, &H0, &H0, &H0
    'ImageBase
    AddLinkByte &H0, &H0, &H40, &H0
    'SectionAlignment
    AddLinkByte &H0, &H10, &H0, &H0
    'FileAlignment
    AddLinkByte &H0, &H2, &H0, &H0
    'MajorOSVersion
    AddLinkByte &H1, &H0
    'MinorOSVersion
    AddLinkByte &H0, &H0
    'MajorImageVersion
    AddLinkByte &H0, &H0
    'MinorImageVersion
    AddLinkByte &H0, &H0
    'MajorSubSystemVerion
    AddLinkByte &H4, &H0
    'MinorSubSystemVerion
    AddLinkByte &H0, &H0
    'Win32VersionValue
    AddLinkByte &H0, &H0, &H0, &H0
    'SizeOfImage
    AddLinkByte &H0, &H40, &H0, &H0
    'SizeOfHeaders
    AddLinkByte &H0, &H2, &H0, &H0
    'CheckSum
    AddLinkByte &H94, &H6B, &H0, &H0
    'SubSystem = 2:GUI; 3:Console
    AddLinkByte AppType
    AddLinkByte &H0
    'DllCharacteristics
    AddLinkByte &H0, &H0
    'SizeOfStackReserve
    AddLinkByte &H0, &H10, &H0, &H0
    'SizeOfStackCommit
    AddLinkByte &H0, &H10, &H0, &H0
    'SizeOfHeapReserve
    AddLinkByte &H0, &H0, &H1, &H0
    'SizeOfHeapRCommit
    AddLinkByte &H0, &H0, &H0, &H0
    'LoaderFlags
    AddLinkByte &H0, &H0, &H0, &H0
    'NumberOfDataDirectories
    AddLinkByte &H10, &H0, &H0, &H0
   
    'Export_Table
    AddLinkByte &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0
    'Import_Table
    AddLinkByte &H0, &H30, &H0, &H0, &H80, &H0, &H0, &H0
    'ReSource_Table
    AddLinkByte &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0
    'Exception_Table
    AddLinkByte &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0
    'Certificate_Table
    AddLinkByte &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0
    'Relocation_Table
    AddLinkByte &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0
    'Debug_Data
    AddLinkByte &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0
    'Architecture
    AddLinkByte &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0
    'Global_PTR
    AddLinkByte &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0
    'TLS_Table
    AddLinkByte &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0
    'Load_Config_Table
    AddLinkByte &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0
    'BoundImportTable
    AddLinkByte &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0
    'ImportAddressTable
    AddLinkByte &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0
    'DelayImportDescriptor
    AddLinkByte &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0
    'COMplusRuntimeHeader
    AddLinkByte &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0
    'Reserved
    AddLinkByte &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0
End Sub


Что это за очередной адский блэк-кодинг? Какая муха мешала автору объявить UDT, и заполнить его поля нормально, а не через одно место. Автор вообще слышал, что такое константы?

В общем, то же самое (и похлеще) можно сказать и про остальные модули.

P.S.

А вот ещё прикол: автор поддерживает (наверное) в своём языке инлайн-асм. Но чудным образом для обработки инлайн-асма он не использует свой ассемблирующий модуль, а почему-то использует... fasm:
Код: Выделить всё
Public Sub DeclareFasmPath()
    FasmPath = InputBox("Specify the fasm path (ex: C:\fasm164\) without the exe file." & vbNewLine & "You need to have 'flat assembler for DOS' installed. You only require this if you want to use inline assembler. (http://www.flatassembler.net)", "Fasm Path", FasmPath)
    SaveSetting "Libry", "Settings", "FasmPath", FasmPath
End Sub


Почему автор используется внешний ассемблер для обработки инлайн-асма? Очень просто: потому что, как я уже сказал, его ассемблирующий модуль — это просто образец остоя.

Но автор не просто использует внешний fasm, он ещё и делает это самым убогим образом: вместо того, чтобы создать временный файл, автор сохраняет временный исходник прямо в корень диска Ц:

Код: Выделить всё
ProgramID = Shell(FasmPath & "fasm.exe C:\LIA.ASM C:\LIA.EXE", vbHide)


Да, вот так. Как сказал Proxy: «а что, если у меня нет диска C:»?

Но я скажу по другому: а что если у меня уже есть файл C:\LIA.ASM, и это самый важный файл во вселенной, который существует в единственном варианте?

У автора очень простой взгляд на эту проблему:
Код: Выделить всё
    If Dir("C:\LIA.ASM") <> "" Then Kill "C:\LIA.ASM"


Вот так сурово.

В общем, это пример ошеломляюще дрянных практик, как в плане компиляции, так и в плане решения прикладных сопутствующих проблем (вроде создания временных файлов).
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Cвалка basic компиляторов

Сообщение iGrok » 06.07.2011 (Ср) 12:36

По-моему, ещё AutoIt вполне себе используется. И даже обновлялся примерно полгода назад...
label:
cli
jmp label

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Cвалка basic компиляторов

Сообщение jangle » 06.07.2011 (Ср) 12:57

Хакер писал(а):В общем, это пример ошеломляюще дрянных практик, как в плане компиляции, так и в плане решения прикладных сопутствующих проблем (вроде создания временных файлов).


Ну ладно пусть код дрянь. Но ведь компилятор работает же! Много тебе приходилось видеть компиляторов полностью написанных на VB6 которые анализирует Си-подобный язык и генерируют на его основе полноценный Win32 PE EXE, без всяких внешних костылей? Я например первый раз такой вижу.
Жаль только, что он генерирует код для x86, вот если бы для ARM под WinCE цены бы не было. А то чтобы написать маленькую программку для КПК или телефона приходится юзать тормозной .NETCF или тошнотворный Pelles C, а полные мазохисты мучаются с Basic4PPC. Вот бы такой простой язык и для WinCE.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Cвалка basic компиляторов

Сообщение Хакер » 06.07.2011 (Ср) 13:02

jangle писал(а):Ну ладно пусть код дрянь. Но ведь компилятор работает же! Много тебе приходилось видеть компиляторов полностью написанных на VB6 которые анализирует Си-подобный язык и генерируют на его основе полноценный Win32 PE EXE, без всяких внешних костылей? Я например первый раз такой вижу.

Нет, но я делал такой на Си. Вполне мог бы сделать его и на VB6, но не стал из-за отсутствия юнионов, битфиелдов, и указателей. То есть пришлось бы не просто писать код в своё удовольствие, а ещё и иногда обходить ограничения VB.

В общем-то можно забавы ради написать такое. Типа, думали на VB6 нельзя написать компилятор Си? (Почему-то лидер ответов в глупых опросах «чего нельзя написать на ВБ»). А-вот-фиг.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Cвалка basic компиляторов

Сообщение ger_kar » 06.07.2011 (Ср) 15:29

Хакер писал(а):Типа, думали на VB6 нельзя написать компилятор Си? (Почему-то лидер ответов в глупых опросах «чего нельзя написать на ВБ»). А-вот-фиг.
Ну Хакер, тебе пора уже давно присвоить звание "Разрушителя легенд про VB", ты и без компилятора Си уже неплохо отличился. Я до сей поры пребываю в легком шоке от твоих изобретений :) ИМХО намного лучше было бы изобрести встроеннный ассемблер в VB. Сам то ассемблер написать не такая уж большая проблема, но вот совместить его с VB, что бы это все совместно и весело работало, тут все очень не просто...
Бороться и искать, найти и перепрятать

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Cвалка basic компиляторов

Сообщение Хакер » 06.07.2011 (Ср) 17:29

Без Add-in-а его не сделать. С Add-In-ом — вообще элементарно, но, имхо, это вредная в рамках VB вещь.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Cвалка basic компиляторов

Сообщение ger_kar » 06.07.2011 (Ср) 18:48

Я честно сказать про Add-In'ы практически ничего не знаю, но хотелось бы узнать, видимо мощная штука в умелых руках мозгах :)
Где можно скачать или посмотреть инфу, что-это такое и с чем его едят :) Если не в напряг, можно ссылку, на статейку, мануальчик или какой любой другой источник информации, дабы развеять в голове туман и вселить туда знания :)
Хакер писал(а):но, имхо, это вредная в рамках VB вещь

А что вредное ассемблер или Add-In'ы и почему? Ты же сам делаешь вставки асма. И мне иногда охота, но только без извращений :)
Бороться и искать, найти и перепрятать

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Cвалка basic компиляторов

Сообщение jangle » 06.07.2011 (Ср) 19:06

Хакер писал(а):Нет, но я делал такой на Си.


Выложи его в форум, хочется посмотреть.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Cвалка basic компиляторов

Сообщение Хакер » 06.07.2011 (Ср) 19:27

jangle писал(а):Выложи его в форум, хочется посмотреть.

Исходники или бинарник?
У него в зависимостях библиотеки (мои же), которые я выкладывать пока не хочу.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Cвалка basic компиляторов

Сообщение ger_kar » 06.07.2011 (Ср) 20:28

Поискал про Add-in 'ы инфы валом, но все не то. Т.е. как это работает я не нашел, так немного поверхностной информации и все.
Бороться и искать, найти и перепрятать

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Cвалка basic компиляторов

Сообщение Хакер » 06.07.2011 (Ср) 20:33

Какая разница, как это работает. Среда разработки позволяет расширить себя с помощью подключаемых модулей-плагинов. Это всё, что нужно знать об Add-In'ах, чтобы понять фразу:
Хакер писал(а):Без Add-in-а его не сделать. С Add-In-ом — вообще элементарно,
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Cвалка basic компиляторов

Сообщение Хакер » 06.07.2011 (Ср) 21:36

Вот я думаю, а что если правда написать компилятор Си-подобного языка на VB? Причём оформив его как цикл статей, каждая статья — определённый этап (уровень). Думаю, это могло бы сделать кое-какой приток посетителей на форум.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 06.07.2011 (Ср) 21:42

Хакер писал(а):Вот я думаю, а что если правда написать компилятор Си-подобного языка на VB? Причём оформив его как цикл статей, каждая статья — определённый этап (уровень). Думаю, это могло бы сделать кое-какой приток посетителей на форум.

Интересная идея. А что именно подразумевается под Си-подобным языком? Какая-то урезанная версия Си или что-то другое?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Cвалка basic компиляторов

Сообщение Хакер » 06.07.2011 (Ср) 21:54

Qwertiy писал(а):Какая-то урезанная версия Си или что-то другое?

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

Я всегда в функциональных спецификациях, как завещал Джоэль, требую раздел «Nongoals». Вот это и будет nongoal-ом.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Cвалка basic компиляторов

Сообщение ger_kar » 07.07.2011 (Чт) 4:52

Хакер писал(а):Какая разница, как это работает.
Сам то поди знаешь, и еще как знаешь :) Вот и мне захотелось.
Той информации, которую я нарыл в нэте вполне бы хватило для изготовления простейших Add-in 'ов, но которые бы-ли бы настолько простыми, что собственно и ценности в них никакой я не вижу. Уж незнаю почему, но до меня гораздо быстрее доходит, когда описывается принцип работы, а не банальное надо сделать так-то и так-то. Вот например когда ты объясняешь, мне все очень хорошо понятно. Сделать же что-то серьезное, тот-же ассемблер, без знания принципа (возможностей) вряд-ли удасться, поэтому выход только один учиться, учиться ... :) Но для этого нужен как минимум источник знаний.
Хакер писал(а):Вот я думаю, а что если правда написать компилятор Си-подобного языка на VB? Причём оформив его как цикл статей, каждая статья — определённый этап (уровень).
Хакер писал(а):Дескать, проект делался исключительно в целях обучения/забавы
А почему Си? Нет, сама идея (цикл обучающих статей) конечно классная, но может не Си, а что нибудь в виде дополнения, расширяющего возможности VB, ИМХО это будет полезнее. Например изготовление TLB шек средствами VB, безо всяких мутных MIDL 'ов.

Что - бы не быть интелектуальным вампиром у меня тоже было родилась идея написать про WMI, сначала в виде справочника по языку WQL, свойствам методам соответствующих объектов, потом описать метод асинхронных запросов и подписки на события применительно к VB, но я так понял WMI нафиг никому не нужен. Поэтому я думаю, что уж если и писать про что-то, то чтобы не только обучение, но и сам продукт оказался востребованным.
Бороться и искать, найти и перепрятать

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Re: Cвалка basic компиляторов

Сообщение NashRus » 07.07.2011 (Чт) 5:39

Тебе надо мыслить другими категориями, а не приток посетителей на форум.

Думай над своим проктом и готовь его к публикации.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Cвалка basic компиляторов

Сообщение ger_kar » 07.07.2011 (Чт) 5:48

Если бы Хакер, и ему подобные, мыслили другими категориями, то где бы мы, простые смертные получали, так необходимый нам, свет знаний?
Так что всем местным гуру, да и не только местным, большой респект и уважуха! Во как :!:
Бороться и искать, найти и перепрятать

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Cвалка basic компиляторов

Сообщение Antonariy » 07.07.2011 (Чт) 11:10

как это работает
Грубо говоря, VB создает объект из твоей dll и передает ему ссылку на свою объектную модель (VBIDE), с которой ты можешь делать все что угодно. Addin-хэлловорлд доступен в самом VB через New Project — Addin.
Лучший способ понять что-то самому — объяснить это другому.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Cвалка basic компиляторов

Сообщение jangle » 07.07.2011 (Чт) 12:26

Хакер писал(а):Вот я думаю, а что если правда написать компилятор Си-подобного языка на VB? Причём оформив его как цикл статей, каждая статья — определённый этап (уровень). Думаю, это могло бы сделать кое-какой приток посетителей на форум.


Для этого компилятор должен реально использоваться пользователями. Тогда народ будет интересоваться. Под x86 делать не имеет смысла, cлишком много понаделали под него бейсиков.
А вот если под ARM, Windows Mobile или Android, совсем другое дело. Инструментов разработки тут мало, а все бейсики отстойные сляпанные на коленке недоучками, и еще стоят нехило.
Вообще за мобильными платформами будущее. У меня например два коммуникатора, один на Windows Mobile а второй на Андроиде.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Cвалка basic компиляторов

Сообщение Хакер » 07.07.2011 (Чт) 14:02

NashRus писал(а):Тебе надо мыслить другими категориями, а не приток посетителей на форум.

Какими же?

NashRus писал(а):Думай над своим проктом и готовь его к публикации.

Тем самым?

jangle писал(а):Для этого компилятор должен реально использоваться пользователями.

Я не хочу делать компилятор, которым будут пользоваться. Для этого я даже специально, в шутку говоря, могу сделать так, чтобы для компиляции требовалось собрать легкий пазл :) Это чтобы отбить желание использовать его в рабочей деятельности.

Я хочу показать, как это делается, какой принцип. Плюс, на VB. Из-за того, что в VB я не имею макросы, полноценные указатели и тому подобные вещи, я скомпенсирую это за счёт прозрачной работы с COM (буду максимально использовать классы и интерфейсы).



jangle писал(а):Вообще за мобильными платформами будущее.

Я не хочу участвовать в приближении этого ужасного будущего.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Cвалка basic компиляторов

Сообщение jangle » 07.07.2011 (Чт) 14:34

Хакер писал(а):Я не хочу делать компилятор, которым будут пользоваться. Для этого я даже специально, в шутку говоря, могу сделать так, чтобы для компиляции требовалось собрать легкий пазл :) Это чтобы отбить желание использовать его в рабочей деятельности.


Таких примеров масса, большинство книжек по-компиляции содержат нерабочие исходники.
Потому, что эти книжки пишут люди не умеющие программировать, зато умеющие прекрасно надувать щеки. При этом вся теоретическая часть просто копипастится из Ульмана и Ахо.
А практической реализации в коде нет, или она не работает.

Я хочу показать, как это делается, какой принцип. Плюс, на VB. Из-за того, что в VB я не имею макросы, полноценные указатели и тому подобные вещи, я скомпенсирую это за счёт прозрачной работы с COM (буду максимально использовать классы и интерфейсы).


Это никому не нужно. Описание как делается есть в большом количестве литературы. Нужен рабочий исходник компилятора. Проблема в том, что человек пишущий книгу о компиляции неспособен сам написать компилятор.

Я не хочу участвовать в приближении этого ужасного будущего
[/quote]

Это будущее уже наступило. По крайней мере в развитых уголках планеты.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Cвалка basic компиляторов

Сообщение Хакер » 07.07.2011 (Чт) 14:38

jangle писал(а):Это никому не нужно. Описание как делается есть в большом количестве литературы. Нужен рабочий исходник компилятора. Проблема в том, что человек пишущий книгу о компиляции неспособен сам написать компилятор.

Так компилятор будет рабочим. И будет выложен рабочий исходник. Просто писаться и выкладываться он будет порциями, каждой порции будет сопутствовать статья.

jangle писал(а):аких примеров масса, большинство книжек по-компиляции содержат нерабочие исходники.
Потому, что эти книжки пишут люди не умеющие программировать, зато умеющие прекрасно надувать щеки. При этом вся теоретическая часть просто копипастится из Ульмана и Ахо.
А практической реализации в коде нет, или она не работает.

И да, именно в этом соль — я написал уже не один компилятор, но при этом не прочитал ни одной книжки по построению компиляторов. Во многом мой подход не совпадает принятым в данной области. Даже пример холивара есть на этой почве.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

След.

Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11

    TopList