Автор | Сообщение |
Levon
|
| |
Пост N: 1
Зарегистрирован: 10.05.11
|
|
Отправлено: 10.05.11 13:24. Заголовок: Программа выдаёт сообщение too many servers !!!...
Имеется программа знаю что она написана на Clipper и FoxBase II 1988 года выпуска. При необходимости могу прогу выслать. После того как я переустановил компьютер на котором эта прога работала стало появляться такое сообщение До переустановки она отлично работала. А пограммист который её настраивал скончался теперь не знаю как её запустить. Если кто нибудь знает что делать пожалуйста подскажите.
|
|
|
Ответов - 49
, стр:
1
2
3
All
[только новые]
|
|
Григорьев Владимир
|
| постоянный участник
|
Пост N: 381
Зарегистрирован: 17.05.05
|
|
Отправлено: 10.05.11 15:46. Заголовок: Скорей всего в прогр..
Скорей всего в программе защита точная идентификация сервера либо по его имени, либо его адресу. И если какое-то значение не совпадает, то и выдается такое значение. Попробуйте посмотреть загрузочный модуль, если он написан на Clipper, и найдите то место, где происходит проверка, и посмотрите, что проверяется. Как я уже сказал, скорей всего проверяется некоторая фиксированная константа, идентифицирующая сервер.
|
|
|
Levon
|
| |
Пост N: 2
Зарегистрирован: 10.05.11
|
|
Отправлено: 10.05.11 16:22. Заголовок: Попробуйте посмотрет..
цитата: | Попробуйте посмотреть загрузочный модуль |
| Извините а что такое загрузочный модуль?
|
|
|
Григорьев Владимир
|
| постоянный участник
|
Пост N: 382
Зарегистрирован: 17.05.05
|
|
Отправлено: 10.05.11 17:56. Заголовок: Это ее exe-модуль. Т..
Это ее exe-модуль. Так как Clipper - это интерпретатор, то по большей части все исходные команды языка Clipper присутствуют в ее exe-модуле. Попробуйте сначала найти строковый литерал с этим сообщением об ошибке. Вполне возможно, что он как раз присутствует в том месте программы, где делается проверка на магический идентификатор сервера. Может быть увидите, с чем именно происходит сравнение, прежде чем выдается сообщение об ошибке.
|
|
|
leo
|
| постоянный участник
|
Пост N: 49
Зарегистрирован: 13.09.07
|
|
Отправлено: 10.05.11 20:13. Заголовок: Можно попробовать..
Можно попробовать ее декомпилировать и тогда все станет ясно.
|
|
|
Levon
|
| |
Пост N: 3
Зарегистрирован: 10.05.11
|
|
Отправлено: 10.05.11 20:59. Заголовок: Как я понял загрузоч..
Как я понял загрузочный модуль, этот то файл которым я произвожу запуск программы? Я его открыл в блокноте вот что там было: @ECHO OFF SET COMSPEC= SET ALLUSERSPROFILE= SET APPDATA= SET CLIENTNAME= SET COMMONPROGRAMFILES= SET COMPUTERNAME= SET HOMEDRIVE= SET HOMEPATH= SET LOGONSERVER= SET NUMBER_OF_PROCESSORS= SET OS= SET PATHEXT= SET PROCESSOR_ARCHITECTURE= SET PROCESSOR_IDENTIFIER= SET PROCESSOR_LEVEL= SET PROCESSOR_REVISION= SET PROGRAMFILES= SET PROMPT= SET SESSIONNAME= SET TEMP= SET TMP= SET USERDOMAIN= SET USERNAME= SET USERPROFILE= SET BLASTER= SET WINDIR= SET WINBOOTDIR= SET PROMPT= SET VCSID= rem LH DL5 SET CLIPPER=F075;V010 PRO nopass Только он не .EXE а .BAT. но я еще нашел с кокого файла идет это предложение которое сообщает об ошибке. Я просматриваю через Notepad++ и я там мало что понял лишь только это предложение TOO MANY SERVERS !!! Давайте я лучше выложу этот файл а Вы быть может прочтёте его чем нибудь другим, и больше поймете чем я. Вот он: http://zalil.ru/31012499
|
|
|
leo
|
| постоянный участник
|
Пост N: 50
Зарегистрирован: 13.09.07
|
|
Отправлено: 10.05.11 21:27. Заголовок: Нужен исполняемый фа..
Нужен исполняемый файл с расширением Exe
|
|
|
SADSTAR4
|
| |
Пост N: 16
Зарегистрирован: 08.02.11
|
|
Отправлено: 11.05.11 01:55. Заголовок: дословные перевод - ..
дословные перевод - "Слишком много серверов" По логике работы программы - какие там серверы присутствуют?
|
|
|
vvv
|
| |
Пост N: 9
Зарегистрирован: 24.02.11
|
|
Отправлено: 11.05.11 10:00. Заголовок: Clipper - это интерп..
цитата: | Clipper - это интерпретатор |
| ???
|
|
|
СевДон
|
| |
Пост N: 35
Зарегистрирован: 25.02.10
|
|
Отправлено: 11.05.11 10:54. Заголовок: если у Вас есть дост..
если у Вас есть доступ к комрьютеру разработчика то: - попытайтесь найти там файлы с расширением .prg (они могут быть локализованы в нескольких папках) - если нашли то в этих разделах/подразделах попытайтесь контекстным поиском найти файлы, содержащие искомую строку "TOO MANY SERVERS" - если найдете -- выкладывайте сюда этот файл если этого невозмлжно сделать, остаётся надеяться что разработчик мог не "зашить" в исполняемый модуль ВЕСЬ анализ условия по которому выскакивает данное сообщение, а разместить его части во внешних файлах. поэтому проверьте файлы с расширениями .dbf/.dbt, .txt, .ini, .dat и т.п. (а может и вообще без расширения), которые находятся в папке с исполняемым модулем (файл с раширением .exe) или во вложенных подпапках на наличие строк со словом SERVER (правда может надо искать слово environment (сиречь окружение) или им подобные, тут уже хто его знает). ЗЫ А мануала к этой проге никакого не осталось?
|
|
|
Levon
|
| |
Пост N: 4
Зарегистрирован: 10.05.11
|
|
Отправлено: 11.05.11 11:43. Заголовок: к сожалению у меня н..
к сожалению у меня нет доступа к комрьютеру этого программиста( вот я и говорю, нашел файл только расширение не такое как вы говорите а .OVL вот он этот файл: http://zalil.ru/31012499 вот в нем как раз упоменается о "TOO MANY SERVERS" !!! вот нашел файлы в которых упоменается слово environment вот архив: http://zalil.ru/31015737 мануала никакого нету.
|
|
|
Gas
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 11.05.11 14:46. Заголовок: на сколько ты знаешь..
на сколько ты знаешь "Clipper и FoxBase II 1988 года выпуска"?
|
|
|
|
СевДон
|
| |
Пост N: 36
Зарегистрирован: 25.02.10
|
|
Отправлено: 11.05.11 16:16. Заголовок: Расследование показа..
Расследование показало: 1. прога писана на Clipper S87 (а я его уже забыл) 2. гдето рядом пользуеся прога(-и) на FoxPro 3. рядом с компом стоит/стоял принтер HP 1100 если серъёзно: 1. те dbt файлы -- это мимо цели, увы 2. при просмотре файла TEST.exe видна строка "Файл конфигурации ZED.DBF не найден !!!" поэтому посмотрите данную базу, скорее всего там прописываются пути к БД, и может есть что-то упоминающее то "понятие СЕРВЕРа", которое подразумевал разработчик осмелюсь предположить: 1. прога может работать как с локальными базами так и по сети 2. при переустановке винды "слетел" признак какой вариант использовать "локальный/сетевой" 3. попытайтесь вспомнить: не присутствовал ли в старой системе один/несколько сетевых дисков. если да то какие буквы им присваивались в винде и есть ли в базе ZED.DBF символьные поля, содержащие такой(-ие) символы (например, X:\ABC, где Х -- имя сетевого диска, а ABC -- имя папки базами для проги) ЗЫ просмотрите не только ZED.DBF но и все остальные, т.к. файлов с настройками м.быть несколько
|
|
|
Haz
|
| |
Пост N: 40
Зарегистрирован: 20.02.11
|
|
Отправлено: 11.05.11 21:01. Заголовок: чего гадать то ...
там может быть все что угодно ... начиная от банальной строки в окружении SET CLIPPER ( устанавливается батником) и параметра FILES= из config.sys ... до любой фантазии автора. Расследование методом тыка , обречено на провал ... но кое-что ценное уже есть - Clipper S87 Советую автору поста перерыть инет и найти декомпиляторы для клиппера. Одним из лучших был Valkirie 5 ( поправте меня если я наврал !!! ) Наличие OVL файла говорит от том что скорее всего программа собрана стандартным RTLINK , а валкирия его щелкала как семечки. Только получив исходники можно о чем то конкретно говорить, а так - пальцем небо
|
|
|
Haz
|
| |
Пост N: 41
Зарегистрирован: 20.02.11
|
|
Отправлено: 11.05.11 21:09. Заголовок: посильная помощь
|
|
|
vvv
|
| |
Пост N: 10
Зарегистрирован: 24.02.11
|
|
Отправлено: 12.05.11 08:08. Заголовок: Не исключено, что за..
Не исключено, что запуск программы был привязан к имени компьютера, а после переустановки компьютеру присвоили другое имя. Интересно, а почему выдает "Слишком много серверов", а не "Сервер не найден" к примеру?
|
|
|
nick_mi
|
| |
Пост N: 34
Зарегистрирован: 19.05.05
|
|
Отправлено: 12.05.11 09:04. Заголовок: Судя по bat файлу до..
Судя по bat файлу должна быть программа PRO.EXE и ей передается параметр nopass. Найдите ее
|
|
|
Levon
|
| |
Пост N: 5
Зарегистрирован: 10.05.11
|
|
Отправлено: 12.05.11 09:33. Заголовок: СевДон: нет эта прог..
СевДон: нет эта программа не работала по сети с другими базами. сетевых дисков тоже не было на той системе. нет я уверен что сеть здесь не причем потомучто у них в офисе два компьютера на втором близко ничего похожего и даже не похожего на эти базы нет! vvv:Вспоминаю какое имя компьютера было на той системе (007 чтоли было) но не стандартное (winxpsp3) это точно. Haz: Мне скачать по ссылке который вы дали или найти Valkirie 5 ? nick_mi: вот файл PRO.EXE http://zalil.ru/31022251
|
|
|
СевДон
|
| |
Пост N: 37
Зарегистрирован: 25.02.10
|
|
Отправлено: 12.05.11 09:56. Заголовок: у меня валькирия (Va..
у меня валькирия (Valkyrie Recovery Engine (Clipper S'87) Version 2.07) при декомпиляции PRO.EXE дает ошибку OUT OF MEMORY правда мож надо положить рядом с PRO.EXE ВСЕ его оверлеи (файлы .OVL) ?.. (я давненько сим не занимался) в догонку: я чё про сеть спрашивал -- в PRO.EXE есть строка "Имя в сети" да и термин SERVERS кагбы намекает по поводу оверлеев: в екзешнике упомянуты аж 20 шт! шо то я сумлеваюсь в успешной декомпиляции...
|
|
|
Dima
|
| |
Пост N: 2078
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.05.11 12:47. Заголовок: В Pro_1.ovl вижу заш..
В Pro_1.ovl вижу зашитую строку c:\winnt\system\password.ini и после нее TOO MANY SERVERS !!! СевДон пишет: цитата: | по поводу оверлеев: в екзешнике упомянуты аж 20 шт! |
| Так и есть их много. Нужны все в общем для попытки декомпиляции.
|
|
|
Levon
|
| |
Пост N: 6
Зарегистрирован: 10.05.11
|
|
Отправлено: 12.05.11 13:01. Заголовок: ?
СевДон: А если я найду компьютер на котором есть эта программа но в рабочем состоянии нам это что нибудь даст. Я еще помню что на той системе была установлена такая программа Borland Delphi 3. Еще я вот я вспомнил что на той системе полное имя компьютера было WIN007 и сетевая рабочая группа была OOFFICE. Может быть мне выложить полностью архив с этой программой?
|
|
|
СевДон
|
| |
Пост N: 38
Зарегистрирован: 25.02.10
|
|
Отправлено: 12.05.11 13:29. Заголовок: если Вы выложите вес..
если Вы выложите весь набор баз, то Вас могут обвинить в разглашении конфиденциальной информации! нам это не надо киньне пока токмо все оверлеи и базу ZED.DBF (если там нет коммерческих секретов) кста в батнике экзешник запускается с параметром nopass а если без него? а если запускать PRO.EXE 123 (поэкспериментируйте) и шо говорят юзеры по поводу паролей? и какая винда была раньше а какая счас? а если чудом сохранился c:\winnt\system\password.ini старой винды, то шо там? или Levon пишет: цитата: | А если я найду компьютер на котором есть эта программа но в рабочем состоянии нам это что нибудь даст. |
| шо там на этой машине?
|
|
|
|
Levon
|
| |
Пост N: 7
Зарегистрирован: 10.05.11
|
|
Отправлено: 12.05.11 13:45. Заголовок: СевДон пишет: Вас м..
СевДон пишет: цитата: | Вас могут обвинить в разглашении конфиденциальной информации! |
| Кто может обвинить форум? А если со стороны правооблодателя то нечего страшного. насчет винды, винда была до этого такая же как сейчас (Windows XP SP3) в предпоследний раз я тоже я его переустанавливал. Только тогда программист был жив и сразу запустил программу. Вот пока оверлеи и база http://zalil.ru/31023568 СевДон пишет: цитата: | а если чудом сохранился c:\winnt\system\password.ini старой винды, то шо там? |
| В поиске...
|
|
|
PSP
|
| постоянный участник
|
Пост N: 519
Зарегистрирован: 27.01.07
|
|
Отправлено: 12.05.11 14:03. Заголовок: В PRO_1.OVL есть стр..
В PRO_1.OVL есть строка "art.dat". Есть такой файл?
|
|
|
Levon
|
| |
Пост N: 8
Зарегистрирован: 10.05.11
|
|
Отправлено: 12.05.11 14:18. Заголовок: да есть он хранится ..
да есть он хранится не в корне папки с программой а в папке под названием DISTR
|
|
|
PSP
|
| постоянный участник
|
Пост N: 520
Зарегистрирован: 27.01.07
|
|
Отправлено: 12.05.11 14:25. Заголовок: Levon пишет: да ест..
Levon пишет: цитата: | да есть он хранится не в корне папки с программой а в папке под названием DISTR |
| И что в нем?
|
|
|
Levon
|
| |
Пост N: 9
Зарегистрирован: 10.05.11
|
|
Отправлено: 12.05.11 14:27. Заголовок: PSP пишет: И что в ..
|
|
|
СевДон
|
| |
Пост N: 39
Зарегистрирован: 25.02.10
|
|
Отправлено: 12.05.11 14:46. Заголовок: увы валькирия и с ов..
увы валькирия и с оверлеями даёт ошибку эксперименты показали: 1. без базы ZED.DBF до выдачи сообщения TOO MANY SERVERS прога не доходит, а выдает: "Proc NET_UZI line 393, open error zed.DBF (2) Retry? (Y/N)" (интересно NET это русское НЕТ или англицкое СЕТЬ...) 2. в базе ZED.DBF запись 24 поле KAT_3 содержит "Программные и системные файлы", а соседнее поле POL_C содержит "D:\BUCH" Проверьте на наличие данной папки у Вас и огласите ее содержимое.
|
|
|
Levon
|
| |
Пост N: 10
Зарегистрирован: 10.05.11
|
|
Отправлено: 12.05.11 14:58. Заголовок: D:\BUCH Это путь..
D:\BUCH Это путь корневой директории там содержатся все те файлы которые я выкладываю сюда. Вот снял скрин посмотрите: http://zalil.ru/31024124
|
|
|
СевДон
|
| |
Пост N: 40
Зарегистрирован: 25.02.10
|
|
Отправлено: 12.05.11 15:59. Заголовок: содержимое AUTOEXEC...
содержимое AUTOEXEC.NTB, CONFIG.NTB, README, .dat-файлов, .bat-файлов? запуск проги идет через иконку? если да, надо бы посмотреть свойства... а вообще то, на мой взгяд, надо копать не стока в проге а системном окружении: раз прога не менялась а токмо ОС, скорее всего и надо в винде шото прописать, а вот что... если, как Вы говорите, можно добраться до компа с такой же задачей, надо сравнить установки и настройки этой и той виндовс. ведь зачем то в том батнике, что Вы привели идет тотальный сброс SET установок
|
|
|
Levon
|
| |
Пост N: 11
Зарегистрирован: 10.05.11
|
|
Отправлено: 12.05.11 16:08. Заголовок: СевДон пишет: если,..
СевДон пишет: цитата: | если, как Вы говорите, можно добраться до компа с такой же задачей, надо сравнить установки и настройки этой и той виндовс. |
| я этим сейчас занимаюсь.
|
|
|
nick_mi
|
| |
Пост N: 35
Зарегистрирован: 19.05.05
|
|
Отправлено: 12.05.11 17:46. Заголовок: есть такой код i..
есть такой код if !file("c:\winnt\system\password.ini") f_mess("TOO MANY SERVERS !!!",1) quit endif
|
|
|
|
Levon
|
| |
Пост N: 12
Зарегистрирован: 10.05.11
|
|
Отправлено: 12.05.11 18:10. Заголовок: люди я запусти её!!!..
люди я запустил её!!!!!!!!! знаете как?? просто вручную создал на диске C: \ папку с именем WINNT в ней же создал папку с названием SYSTEM в этой папке создал файл PASSWORD с расширением .ini и всё ВОТ ЧТО ОНА ХОТЕЛА!! Пока вроде работает корректно не знаю что будет дальше.
|
|
|
Haz
|
| |
Пост N: 42
Зарегистрирован: 20.02.11
|
|
Отправлено: 12.05.11 21:56. Заголовок: Поздравляем!
|
|
|
Levon
|
| |
Пост N: 13
Зарегистрирован: 10.05.11
|
|
Отправлено: 12.05.11 22:14. Заголовок: Haz Да спасибо Вам я..
Haz Да спасибо Вам я постараюсь позаниматься над этим делом.
|
|
|
Levon
|
| |
Пост N: 14
Зарегистрирован: 10.05.11
|
|
Отправлено: 12.05.11 22:43. Заголовок: я хочу отдельно побл..
я хочу отдельно поблагадарить СевДона за то что Вы потратили свое драгоценное время на этот пустяк СПАСИБО ВАМ БОЛЬШОЕ!
|
|
|
Григорьев Владимир
|
| постоянный участник
|
Пост N: 383
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.05.11 13:24. Заголовок: vvv пишет: quote: ..
vvv пишет: цитата: | quote: Clipper - это интерпретатор ??? |
| Да, Clipper - это интерпретатор. Он интерпретирует тот код, который вы пишите на языке Clipper, предварительно переводя его в некоторый промежуточный код. По этому принципу работают C# и Java.
|
|
|
vvv
|
| |
Пост N: 11
Зарегистрирован: 24.02.11
|
|
Отправлено: 16.05.11 11:02. Заголовок: Не согласен. Вот одн..
Не согласен. Вот одно из определений: цитата: | Основное отличие компиляторов и интерпретаторов КОМПИЛЯТОР создает исполняемую программу, не нуждающуюся в других программных средствах (кроме OS). ИНТЕРПРЕТАТОР создает программу, время существования которой заканчивается по завершению выполнения или с выходом из нее. Для работы программы необходима программа-интерпретатор, для выполнения в котором она создана. |
|
(подробней click here<\/u><\/a>). Отсюда получается, что Clipper - чистый компилятор (созданная им exe-шка абсолютно независима), а также, например, BCC++. Примеры интерпретаторов: FoxPro(ДОСовский), Basic (ДОСовский) - без их установки на компьютер программу просто не запустить, да и виндовые версии можно отнести к интерпретаторам, т.к. хотя на выходе и имеем exe-шку, но она не полностью независима - для работы нужны соответствующие dll-ки. С большой натяжкой можно считать Harbour интерпретатором, но очень условно.
|
|
|
Haz
|
| |
Пост N: 43
Зарегистрирован: 20.02.11
|
|
Отправлено: 16.05.11 20:31. Заголовок: не ссорьтесь ....
|
|
|
Григорьев Владимир
|
| постоянный участник
|
Пост N: 384
Зарегистрирован: 17.05.05
|
|
Отправлено: 22.05.11 15:24. Заголовок: vvv пишет: Не согла..
vvv пишет: цитата: | Не согласен. Вот одно из определений: цитата: Основное отличие компиляторов и интерпретаторов КОМПИЛЯТОР создает исполняемую программу, не нуждающуюся в других программных средствах (кроме OS). ИНТЕРПРЕТАТОР создает программу, время существования которой заканчивается по завершению выполнения или с выходом из нее. Для работы программы необходима программа-интерпретатор, для выполнения в котором она создана. |
| Согласны вы, или нет, - это никого не волнует. Компилятор Clipper создает код, который как раз нуждается в другой программе, чтобы этот код выполнялся! Просто затем вы этот промежуточный, так называемый P-код присоединяете непосредственно с интерпретатором и получаете общий модуль, в котором интерпретатор и интепретируемый им код объединены. То есть генерируемый компилятором Clipper код не является машинным кодом и требует интерпретатора, который этот код будет интерпретировать! То есть код, который генерирует Clipper, является некоторыми входными данными для Clipper-интерпретатора. Именно поэтому и пишутся различные декомпиляторы для Clipper, потому что они находят этот P-код в объединенном модуле, то есть в модуле, содержащем интерпретатор и непосредственно интерпретируемый им код.
|
|
|
vvv
|
| |
Пост N: 12
Зарегистрирован: 24.02.11
|
|
Отправлено: 23.05.11 07:49. Заголовок: То есть генерируемый..
цитата: | То есть генерируемый компилятором Clipper код не является машинным кодом и требует интерпретатора, который этот код будет интерпретировать! |
| Но ведь чтобы запустить exe-шку, не надо иметь на компьютере никакого интерпретатора! Все, что вы перечислили, делается один раз при создании исполняемого модуля и больше для работы программы не нужно. PS. А какие языки тогда отнести к компиляторам?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 1762
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.05.11 13:09. Заголовок: vvv пишет: А какие..
vvv пишет: цитата: | А какие языки тогда отнести к компиляторам? |
| Asm C Pascal
|
|
|
|
vvv
|
| |
Пост N: 13
Зарегистрирован: 24.02.11
|
|
Отправлено: 24.05.11 07:51. Заголовок: Ну не сам же я это п..
|
|
|
Pasha
|
| Администратор
|
Пост N: 1945
Зарегистрирован: 23.05.05
|
|
Отправлено: 24.05.11 15:47. Заголовок: vvv пишет: Нигде не..
vvv пишет: цитата: | Нигде не нашел, что clipper-интерпретатор. |
| Чтобы немного отвлечься: вот 1эсники тоже спорят на ту же тему http://www.forum.mista.ru/topic.php?id=378021 А Владимир в крайнем посте правильно описал, как работает клиппер Мы настолько давно знаем клиппер, и многие копались в его кишках достаточно глубоко, что этот диспут немного странен. Как всегда, все говорят об одном и том же, но одни и те же термины понимают по разному. А клиппер работает и как компилятор в пи-код, и как интерпретатор этого кода в runtime
|
|
|
Григорьев Владимир
|
| постоянный участник
|
Пост N: 385
Зарегистрирован: 17.05.05
|
|
Отправлено: 25.05.11 16:32. Заголовок: vvv пишет: Но ведь ..
vvv пишет: цитата: | Но ведь чтобы запустить exe-шку, не надо иметь на компьютере никакого интерпретатора! Все, что вы перечислили, делается один раз при создании исполняемого модуля и больше для работы программы не нужно. PS. А какие языки тогда отнести к компиляторам? |
| Вы так и не поняли, что я написал! Вы запускаете как раз интерпретатор! То есть когда вы запускаете, якобы, свою программу, как вы наивно думаете, вы запускаете интерпретатор Clipper, к загрузочному модулю которого был присоединен P-код, который этим интерпретатором будет интерпретироваться! Чтобы вам было понятно, то есть некая аналогия между Windows-программой, к которой в exe-модуль, например, вставляются BMP-файлы. Тем не менее BMP-данные как были данными, а не машиннами командами, так ими и остались. К компиляторам относятся те средства, которые переводят исходный код в коды машинных команд!
|
|
|
Григорьев Владимир
|
| постоянный участник
|
Пост N: 386
Зарегистрирован: 17.05.05
|
|
Отправлено: 25.05.11 16:41. Заголовок: vvv пишет: Ну не са..
vvv пишет: цитата: | Ну не сам же я это придумал. ... Нигде не нашел, что clipper-интерпретатор. |
| Я не стал читать ваши ссылки, так как они ничего абсолютно не доказывают! Я вам уже изложил суть дела. Чтобы вам еще более было понятно, то компилятор Clipper переводит, например, следуюший предложение с присваиванием LOCAL n; n = 9; Примерно в следующий код 0300 36 0900 2F 0100 Я набирал его по памяти, но это близко к действительным кодам. Первые два означают номер строки. где встретилась команда Clipper в исходном коде. Затем следует терм, который означает, что за ним идет целое число. Затем следует терм (P-код) 2F, который означает, что следует локальная переменная, а затем номер этой локальной переменной в последорвательности объявлений переменных в функции. Это не машинный код. Он не может непосредственно быть выполнен ни на одной машине. Для его выполнения требуется некоторый интерпретатор, который уже этот код будет переводить в машинные команды. Вот Clipper и делает это, включая в каждый итоговый загрузочный модуль интерпретатор этого кода и сам интерпретируемый код. То есть какие могут быть стратегии работы интерпретатора? Можно иметь один интерпретатор на машине, который будет интерпретировать все исходные коды. А можно каждый исходный код, предварительно переведя его в некую промежуточную форму, скомпоновать вместе с интерпретатором. Вот это и делает Clipper. То есть когда вы запускаете на выполнение exe-модуль, вы запускаете на выполнение интерпретатор! И этот интерпретатор начинает интерпретировать тот промежуточный код, который компилятор Clipper создал и присоединил к загрузочному модулю интерпретатора.
|
|
|
Pasha
|
| Администратор
|
Пост N: 1946
Зарегистрирован: 23.05.05
|
|
Отправлено: 25.05.11 18:40. Заголовок: Григорьев Владимир п..
Григорьев Владимир пишет: цитата: | Вот Clipper и делает это, включая в каждый итоговый загрузочный модуль интерпретатор этого кода и сам интерпретируемый код. |
| И этот интерпретатор имеет даже собственное имя: __PLANKTON Познакомиться, как работает клиппер, достаточно просто, и это может сделать любой интересующийся в домашних условиях, используя подручные средства. Надо взять обыкновенный хирургический скальпель дизассемблер watcom, аккуратно сделать надрез дизассемблировать любой клипперовский obj, и внимательно изучить строение внутренних органов пациента получившийся текст на asm. Мы увидим, что компилятор клиппер для каждой клипперовской процедуры или функции создает в сегменте кода файла obj маленькую функцию, а в сегменте данных - пи-код функции клиппера. Маленькая функция состоит из вызова интерпретатора __PLANKTON, в качестве параметра которой передается ссылка на пи-код. Таким образом, при вызове функции она в свою очередь вызывает интерпретатор, который собственно и выполняет пи-код. Примерно так работает и харбор, только в качестве интерпретатора у него используется Harbour Virtual Machine (HVM). Правда, харбор поддерживает и создание исполняемого кода без интерпретатора. В этом режиме для выполнения каждой пи-команды вызывается соответствующая функция. Но и клиппер, как и харбор, являются также полноценными компиляторами. Выходом компилятора не обязательно должен быть машинный код. А построены они оба как классические компиляторы. По поводу харбора я встречал суждение людей, поверхностно с ним познакомившихся, что это "всего-лишь" препроцессор для С. Это не так, и внешнее сходство не должно скрывать сути его работы.
|
|
|
Григорьев Владимир
|
| постоянный участник
|
Пост N: 387
Зарегистрирован: 17.05.05
|
|
Отправлено: 25.05.11 19:29. Заголовок: Pasha пишет: И этот..
Pasha пишет: цитата: | И этот интерпретатор имеет даже собственное имя: __PLANKTON |
| Я хотел это добавить, но не стал усложнять вопрос. Помимо __PLANKTON есть также модули, которые обрабатывают макросы. Я по памяти уже не помню, как эти модули называются.. Но не так давно я как раз восстановил лексический анализатор интерпретатора макросов. Следствием этого было мое сообщение на \этом форуме про причуды компилятора Clipper.
|
|
|
Haz
|
| |
Пост N: 45
Зарегистрирован: 20.02.11
|
|
Отправлено: 25.05.11 22:05. Заголовок: Во понаписали !!!
Во понаписали то ! Levon задал вопрос, получил ответ и счастлив на этом, помогли ему на форуме и отлично, на то он и форум. Мужики, но чего вы на vvv накинулись ? Человек перерыл кучу ссылок, и то что там писанина мягко говоря ни очем - не его вина. Да, vvv поднял тему которая лет 15 -20 назад и не могла возникнуть, потому что каждый програмист и системотехник знал что такое машинный код. Понабежали дядьки с кучей звезд разного цвета, запугали ... но все же разъяснили истину ( правда накидали новых непонятных слов типа дизасемблеров и лексических анализаторов ). vvv , ты не обижайся , народ на форуме в основном доброжелательный и пишет справедливые и грамотные ответы. Предлагаю подвести черту : 1. Levon получил помощь 2. Vvv понял, что в интернете не всему можно верить и обогатился знаниями 3. На форуме есть люди, готовые этими знаниями делиться ________________________________________________________________
|
|
|
Dima
|
| |
Пост N: 2079
Зарегистрирован: 17.05.05
|
|
Отправлено: 25.05.11 23:44. Заголовок: Haz пишет: Предлага..
Haz пишет: На том и порешим ;) Тема закрыта.
|
|
|
Ответов - 49
, стр:
1
2
3
All
[только новые]
|
|