Forth и чем его ...

Discussion in 'WASM.RESEARCH' started by WRP, May 28, 2009.

  1. WRP

    WRP New Member

    Blog Posts:
    0
    Joined:
    Apr 30, 2009
    Messages:
    29
    Добрый день всем. Хотелось бы задать вопрос.
    Есть ли в природе декомпиляторы Forth ?
     
  2. CyberManiac

    CyberManiac New Member

    Blog Posts:
    0
    Joined:
    Sep 2, 2003
    Messages:
    2,473
    Location:
    Russia
    Форт-систем много, и все - разные. Программу на SP Forth можно зарядить в IDA, немного подумать над результатом и декомпилировать нужные слова вручную, он внутри нехитро устроен. Для классических форт-систем декомпилятор придётся творить вручную, взяв Оранжевую Книгу Большого Формата под названием "Язык программирования Форт"(самое полное чтиво по данному языку).
     
  3. WRP

    WRP New Member

    Blog Posts:
    0
    Joined:
    Apr 30, 2009
    Messages:
    29
    CyberManiac
    Чем отличается данный экземпляр от классического ?
    И есть ли где-то описание байт-кодов Forth или они опять же разные для разных
    реализаций ? Google , который знает где и что лежит , не помог.
     
  4. shoo

    shoo New Member

    Blog Posts:
    0
    Joined:
    Jul 17, 2003
    Messages:
    1,537
    Location:
    Ukraine
    декомпиляторы специфичны компиляторам. например, в GP-FORTH вроде как было слово DECOMP, правда, я им не пользовался, тк не нуждался - чужих программ на форте у меня не было.
     
  5. CyberManiac

    CyberManiac New Member

    Blog Posts:
    0
    Joined:
    Sep 2, 2003
    Messages:
    2,473
    Location:
    Russia
    WRP
    Хотя бы тем, что он - действительно компилятор в исполняемый код, а не интерпретатор шитого кода, как принято. Однако кроме собственно компиляции слов он сохраняет в коде ещё и имена этих слов, (в SP-Forth у каждого слова в словаре есть что-то вроде заголовка), что позволяет пр помощи ручки и листа бумаги "прочитать" исходник. Наверняка этот процесс можно автоматизировать.

    Насколько я знаю, нет. Зато есть волшебные слова : ; , С, create> does и т.д., по которым можно расследовать особенности работы данного конкретного компилятора. Если раздобыть такой же Форт, как тот, на котором написана программа, после недели экспериментов почти наверняка программу можно будет разобрать на запчасти. Если нет такой возможности - можно попытаться запатчить прогу так, чтобы она рухнула от исчерпания данных на стеке - тогда, возможно, форт-система вывалится в интерактивный режим, где с ней можно делать всё, что угодно.
     
  6. katrus

    katrus New Member

    Blog Posts:
    0
    Joined:
    Mar 7, 2007
    Messages:
    612
    В году так 91 была книга Семенова. Там был код декомпилятора для форта.

    Эх форт - удивительный язык программирования. Жалко, что не уцелел в "соревновании" с другими языками. Впрочем, наверное это логично. Уж слишком уж он "другой".