On-line: Andrey, Aleksandr_D, гостей 4. Всего: 6 [подробнее..]
АвторСообщение
Levon



Пост N: 1
Зарегистрирован: 10.05.11
ссылка на сообщение  Отправлено: 10.05.11 13:24. Заголовок: Программа выдаёт сообщение too many servers !!!...


Имеется программа знаю что она написана на Clipper и FoxBase II 1988 года выпуска. При необходимости могу прогу выслать.
После того как я переустановил компьютер на котором эта прога работала стало появляться такое сообщение
До переустановки она отлично работала. А пограммист который её настраивал скончался теперь не знаю как её запустить.
Если кто нибудь знает что делать пожалуйста подскажите.

Спасибо: 0 
Профиль
Ответов - 49 , стр: 1 2 3 All [только новые]


Григорьев Владимир
постоянный участник


Пост N: 381
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.05.11 15:46. Заголовок: Скорей всего в прогр..


Скорей всего в программе защита точная идентификация сервера либо по его имени, либо его адресу. И если какое-то значение не совпадает, то и выдается такое значение.
Попробуйте посмотреть загрузочный модуль, если он написан на Clipper, и найдите то место, где происходит проверка, и посмотрите, что проверяется. Как я уже сказал, скорей всего проверяется некоторая фиксированная константа, идентифицирующая сервер.

Спасибо: 0 
Профиль
Levon



Пост N: 2
Зарегистрирован: 10.05.11
ссылка на сообщение  Отправлено: 10.05.11 16:22. Заголовок: Попробуйте посмотрет..



 цитата:
Попробуйте посмотреть загрузочный модуль


Извините а что такое загрузочный модуль?

Спасибо: 0 
Профиль
Григорьев Владимир
постоянный участник


Пост N: 382
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.05.11 17:56. Заголовок: Это ее exe-модуль. Т..


Это ее exe-модуль. Так как Clipper - это интерпретатор, то по большей части все исходные команды языка Clipper присутствуют в ее exe-модуле. Попробуйте сначала найти строковый литерал с этим сообщением об ошибке. Вполне возможно, что он как раз присутствует в том месте программы, где делается проверка на магический идентификатор сервера. Может быть увидите, с чем именно происходит сравнение, прежде чем выдается сообщение об ошибке.

Спасибо: 0 
Профиль
leo
постоянный участник


Пост N: 49
Зарегистрирован: 13.09.07
ссылка на сообщение  Отправлено: 10.05.11 20:13. Заголовок: Можно попробовать..


Можно попробовать ее декомпилировать и тогда все станет ясно.

Спасибо: 0 
Профиль
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

Спасибо: 0 
Профиль
leo
постоянный участник


Пост N: 50
Зарегистрирован: 13.09.07
ссылка на сообщение  Отправлено: 10.05.11 21:27. Заголовок: Нужен исполняемый фа..


Нужен исполняемый файл с расширением Exe

Спасибо: 0 
Профиль
SADSTAR4



Пост N: 16
Зарегистрирован: 08.02.11
ссылка на сообщение  Отправлено: 11.05.11 01:55. Заголовок: дословные перевод - ..


дословные перевод - "Слишком много серверов"

По логике работы программы - какие там серверы присутствуют?

Спасибо: 0 
Профиль
vvv



Пост N: 9
Зарегистрирован: 24.02.11
ссылка на сообщение  Отправлено: 11.05.11 10:00. Заголовок: Clipper - это интерп..



 цитата:
Clipper - это интерпретатор


???

Спасибо: 0 
Профиль
СевДон



Пост N: 35
Зарегистрирован: 25.02.10
ссылка на сообщение  Отправлено: 11.05.11 10:54. Заголовок: если у Вас есть дост..


если у Вас есть доступ к комрьютеру разработчика то:
- попытайтесь найти там файлы с расширением .prg (они могут быть локализованы в нескольких
папках)
- если нашли то в этих разделах/подразделах попытайтесь контекстным поиском найти файлы,
содержащие искомую строку "TOO MANY SERVERS"
- если найдете -- выкладывайте сюда этот файл

если этого невозмлжно сделать, остаётся надеяться что разработчик мог не "зашить" в исполняемый
модуль ВЕСЬ анализ условия по которому выскакивает данное сообщение, а разместить его части
во внешних файлах.
поэтому проверьте файлы с расширениями .dbf/.dbt, .txt, .ini, .dat и т.п. (а может и вообще без расширения),
которые находятся в папке с исполняемым модулем (файл с раширением .exe) или во вложенных
подпапках на наличие строк со словом SERVER (правда может надо искать слово
environment (сиречь окружение) или им подобные, тут уже хто его знает).

ЗЫ А мануала к этой проге никакого не осталось?

Спасибо: 0 
Профиль
Levon



Пост N: 4
Зарегистрирован: 10.05.11
ссылка на сообщение  Отправлено: 11.05.11 11:43. Заголовок: к сожалению у меня н..


к сожалению у меня нет доступа к комрьютеру этого программиста(
вот я и говорю, нашел файл только расширение не такое как вы говорите а .OVL
вот он этот файл:http://zalil.ru/31012499
вот в нем как раз упоменается о "TOO MANY SERVERS" !!!
вот нашел файлы в которых упоменается слово environment вот архив:http://zalil.ru/31015737

мануала никакого нету.

Спасибо: 0 
Профиль
Gas



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 11.05.11 14:46. Заголовок: на сколько ты знаешь..


на сколько ты знаешь "Clipper и FoxBase II 1988 года выпуска"?

Спасибо: 0 
СевДон



Пост 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 но и все остальные, т.к. файлов с настройками м.быть несколько


Спасибо: 0 
Профиль
Haz
администратор




Пост N: 40
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 11.05.11 21:01. Заголовок: чего гадать то ...


там может быть все что угодно ...
начиная от банальной строки в окружении SET CLIPPER ( устанавливается батником) и параметра FILES= из config.sys ... до любой фантазии автора.

Расследование методом тыка , обречено на провал ... но кое-что ценное уже есть - Clipper S87
Советую автору поста перерыть инет и найти декомпиляторы для клиппера. Одним из лучших был Valkirie 5 ( поправте меня если я наврал !!! )
Наличие OVL файла говорит от том что скорее всего программа собрана стандартным RTLINK , а валкирия его щелкала как семечки.
Только получив исходники можно о чем то конкретно говорить, а так - пальцем небо


Спасибо: 0 
Профиль
Haz
администратор




Пост N: 41
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 11.05.11 21:09. Заголовок: посильная помощь

Спасибо: 0 
Профиль
vvv



Пост N: 10
Зарегистрирован: 24.02.11
ссылка на сообщение  Отправлено: 12.05.11 08:08. Заголовок: Не исключено, что за..


Не исключено, что запуск программы был привязан к имени компьютера, а после переустановки компьютеру присвоили другое имя.
Интересно, а почему выдает "Слишком много серверов", а не "Сервер не найден" к примеру?

Спасибо: 0 
Профиль
nick_mi



Пост N: 34
Зарегистрирован: 19.05.05
ссылка на сообщение  Отправлено: 12.05.11 09:04. Заголовок: Судя по bat файлу до..


Судя по bat файлу должна быть программа PRO.EXE и ей передается параметр nopass. Найдите ее

Спасибо: 0 
Профиль
Levon



Пост N: 5
Зарегистрирован: 10.05.11
ссылка на сообщение  Отправлено: 12.05.11 09:33. Заголовок: СевДон: нет эта прог..


СевДон:
нет эта программа не работала по сети с другими базами.
сетевых дисков тоже не было на той системе.
нет я уверен что сеть здесь не причем потомучто у них в офисе два компьютера на втором
близко ничего похожего и даже не похожего на эти базы нет!
vvv:Вспоминаю какое имя компьютера было на той системе (007 чтоли было) но не стандартное (winxpsp3) это точно.
Haz: Мне скачать по ссылке который вы дали или найти Valkirie 5 ?
nick_mi: вот файл PRO.EXEhttp://zalil.ru/31022251

Спасибо: 0 
Профиль
СевДон



Пост 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 шт!
шо то я сумлеваюсь в успешной декомпиляции...

Спасибо: 0 
Профиль
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 шт!


Так и есть их много. Нужны все в общем для попытки декомпиляции.

Спасибо: 0 
Профиль
Levon



Пост N: 6
Зарегистрирован: 10.05.11
ссылка на сообщение  Отправлено: 12.05.11 13:01. Заголовок: ?


СевДон:
А если я найду компьютер на котором есть эта программа но в рабочем состоянии нам это что нибудь даст.
Я еще помню что на той системе была установлена такая программа Borland Delphi 3.
Еще я вот я вспомнил что на той системе полное имя компьютера было WIN007 и сетевая рабочая группа была OOFFICE.
Может быть мне выложить полностью архив с этой программой?

Спасибо: 0 
Профиль
СевДон



Пост N: 38
Зарегистрирован: 25.02.10
ссылка на сообщение  Отправлено: 12.05.11 13:29. Заголовок: если Вы выложите вес..


если Вы выложите весь набор баз, то Вас могут обвинить в разглашении
конфиденциальной информации! нам это не надо
киньне пока токмо все оверлеи и базу ZED.DBF (если там нет коммерческих секретов)

кста в батнике экзешник запускается с параметром nopass
а если без него? а если запускать PRO.EXE 123 (поэкспериментируйте)
и шо говорят юзеры по поводу паролей? и какая винда была раньше а какая счас?
а если чудом сохранился c:\winnt\system\password.ini старой винды, то шо там?
или
Levon пишет:

 цитата:
А если я найду компьютер на котором есть эта программа но в рабочем состоянии нам это что нибудь даст.


шо там на этой машине?


Спасибо: 0 
Профиль
Levon



Пост N: 7
Зарегистрирован: 10.05.11
ссылка на сообщение  Отправлено: 12.05.11 13:45. Заголовок: СевДон пишет: Вас м..


СевДон пишет:

 цитата:
Вас могут обвинить в разглашении
конфиденциальной информации!


Кто может обвинить форум? А если со стороны правооблодателя то нечего страшного.
насчет винды, винда была до этого такая же как сейчас (Windows XP SP3) в предпоследний раз я тоже я его переустанавливал. Только тогда программист был жив и сразу запустил программу.
Вот пока оверлеи и базаhttp://zalil.ru/31023568
СевДон пишет:

 цитата:
а если чудом сохранился c:\winnt\system\password.ini старой винды, то шо там?


В поиске...

Спасибо: 0 
Профиль
PSP
постоянный участник


Пост N: 519
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 12.05.11 14:03. Заголовок: В PRO_1.OVL есть стр..


В PRO_1.OVL есть строка "art.dat". Есть такой файл?

Спасибо: 0 
Профиль
Levon



Пост N: 8
Зарегистрирован: 10.05.11
ссылка на сообщение  Отправлено: 12.05.11 14:18. Заголовок: да есть он хранится ..


да есть он хранится не в корне папки с программой а в папке под названием DISTR

Спасибо: 0 
Профиль
PSP
постоянный участник


Пост N: 520
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 12.05.11 14:25. Заголовок: Levon пишет: да ест..


Levon пишет:

 цитата:
да есть он хранится не в корне папки с программой а в папке под названием DISTR


И что в нем?

Спасибо: 0 
Профиль
Levon



Пост N: 9
Зарегистрирован: 10.05.11
ссылка на сообщение  Отправлено: 12.05.11 14:27. Заголовок: PSP пишет: И что в ..


PSP пишет:

 цитата:
И что в нем?


он пуст.

Спасибо: 0 
Профиль
СевДон



Пост 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"
Проверьте на наличие данной папки у Вас и огласите ее содержимое.


Спасибо: 0 
Профиль
Levon



Пост N: 10
Зарегистрирован: 10.05.11
ссылка на сообщение  Отправлено: 12.05.11 14:58. Заголовок: D:\BUCH Это путь..


D:\BUCH Это путь корневой директории там содержатся все те файлы которые я выкладываю сюда.
Вот снял скрин посмотрите:http://zalil.ru/31024124

Спасибо: 0 
Профиль
СевДон



Пост N: 40
Зарегистрирован: 25.02.10
ссылка на сообщение  Отправлено: 12.05.11 15:59. Заголовок: содержимое AUTOEXEC...


содержимое AUTOEXEC.NTB, CONFIG.NTB, README, .dat-файлов, .bat-файлов?
запуск проги идет через иконку? если да, надо бы посмотреть свойства...

а вообще то, на мой взгяд, надо копать не стока в проге а системном окружении:
раз прога не менялась а токмо ОС, скорее всего и надо в винде шото прописать, а вот что...

если, как Вы говорите, можно добраться до компа с такой же задачей, надо
сравнить установки и настройки этой и той виндовс. ведь зачем то в том батнике,
что Вы привели идет тотальный сброс SET установок

Спасибо: 1 
Профиль
Levon



Пост N: 11
Зарегистрирован: 10.05.11
ссылка на сообщение  Отправлено: 12.05.11 16:08. Заголовок: СевДон пишет: если,..


СевДон пишет:

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


я этим сейчас занимаюсь.

Спасибо: 0 
Профиль
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


Спасибо: 0 
Профиль
Levon



Пост N: 12
Зарегистрирован: 10.05.11
ссылка на сообщение  Отправлено: 12.05.11 18:10. Заголовок: люди я запусти её!!!..


люди я запустил её!!!!!!!!! знаете как?? просто вручную создал на диске C: \ папку с именем WINNT в ней же создал папку с названием SYSTEM в этой папке создал файл PASSWORD с расширением .ini и всё ВОТ ЧТО ОНА ХОТЕЛА!! Пока вроде работает корректно не знаю что будет дальше.

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 42
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 12.05.11 21:56. Заголовок: Поздравляем!


а ничего дальше не будет :-) требуется только наличие файла password.ini и более нигде он не проверяется , уже пол конфы декомпильнули эту програму . Что я по прежнему и рекомендую сделать автору поста - исходники нужны, если намерены и дальше работать ( ну не себе - так приемнику подарок сделаете ).
там по коду еще есть какие-то фокусы с art.dat есть алгоритм проверки паролей и т.д.
валкирия для S87 потрошит прогу за 3 секунды на состовляющие

Levon, просто поупражняйтесь http://ftp.lakesoft.net/ftp/clipper/valkyrie/<\/u><\/a>
1. с помощью VPP создать RIP
2. c помощью v из rip получить кучу исходников
3. вдумчиво вчитываться :-)

Спасибо: 1 
Профиль
Levon



Пост N: 13
Зарегистрирован: 10.05.11
ссылка на сообщение  Отправлено: 12.05.11 22:14. Заголовок: Haz Да спасибо Вам я..


Haz Да спасибо Вам я постараюсь позаниматься над этим делом.

Спасибо: 0 
Профиль
Levon



Пост N: 14
Зарегистрирован: 10.05.11
ссылка на сообщение  Отправлено: 12.05.11 22:43. Заголовок: я хочу отдельно побл..


я хочу отдельно поблагадарить СевДона за то что Вы потратили свое драгоценное время на этот пустяк СПАСИБО ВАМ БОЛЬШОЕ!

Спасибо: 0 
Профиль
Григорьев Владимир
постоянный участник


Пост N: 383
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.05.11 13:24. Заголовок: vvv пишет: quote: ..


vvv пишет:

 цитата:
quote:
Clipper - это интерпретатор


???



Да, Clipper - это интерпретатор. Он интерпретирует тот код, который вы пишите на языке Clipper, предварительно переводя его в некоторый промежуточный код. По этому принципу работают C# и Java.

Спасибо: 1 
Профиль
vvv



Пост N: 11
Зарегистрирован: 24.02.11
ссылка на сообщение  Отправлено: 16.05.11 11:02. Заголовок: Не согласен. Вот одн..


Не согласен. Вот одно из определений:

 цитата:
Основное отличие компиляторов и интерпретаторов
КОМПИЛЯТОР создает исполняемую программу, не нуждающуюся в других программных средствах (кроме OS).
ИНТЕРПРЕТАТОР создает программу, время существования которой заканчивается по завершению выполнения или с выходом из нее. Для работы программы необходима программа-интерпретатор, для выполнения в котором она создана.

(подробней click here<\/u><\/a>).
Отсюда получается, что Clipper - чистый компилятор (созданная им exe-шка абсолютно независима), а также, например, BCC++.
Примеры интерпретаторов: FoxPro(ДОСовский), Basic (ДОСовский) - без их установки на компьютер программу просто не запустить, да и виндовые версии можно отнести к интерпретаторам, т.к. хотя на выходе и имеем exe-шку, но она не полностью независима - для работы нужны соответствующие dll-ки.
С большой натяжкой можно считать Harbour интерпретатором, но очень условно.

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 43
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 16.05.11 20:31. Заголовок: не ссорьтесь ....

Спасибо: 0 
Профиль
Григорьев Владимир
постоянный участник


Пост N: 384
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.05.11 15:24. Заголовок: vvv пишет: Не согла..


vvv пишет:

 цитата:
Не согласен. Вот одно из определений:

цитата:
Основное отличие компиляторов и интерпретаторов
КОМПИЛЯТОР создает исполняемую программу, не нуждающуюся в других программных средствах (кроме OS).
ИНТЕРПРЕТАТОР создает программу, время существования которой заканчивается по завершению выполнения или с выходом из нее. Для работы программы необходима программа-интерпретатор, для выполнения в котором она создана.



Согласны вы, или нет, - это никого не волнует. Компилятор Clipper создает код, который как раз нуждается в другой программе, чтобы этот код выполнялся! Просто затем вы этот промежуточный, так называемый P-код присоединяете непосредственно с интерпретатором и получаете общий модуль, в котором интерпретатор и интепретируемый им код объединены. То есть генерируемый компилятором Clipper код не является машинным кодом и требует интерпретатора, который этот код будет интерпретировать! То есть код, который генерирует Clipper, является некоторыми входными данными для Clipper-интерпретатора. Именно поэтому и пишутся различные декомпиляторы для Clipper, потому что они находят этот P-код в объединенном модуле, то есть в модуле, содержащем интерпретатор и непосредственно интерпретируемый им код.

Спасибо: 0 
Профиль
vvv



Пост N: 12
Зарегистрирован: 24.02.11
ссылка на сообщение  Отправлено: 23.05.11 07:49. Заголовок: То есть генерируемый..



 цитата:
То есть генерируемый компилятором Clipper код не является машинным кодом и требует интерпретатора, который этот код будет интерпретировать!


Но ведь чтобы запустить exe-шку, не надо иметь на компьютере никакого интерпретатора! Все, что вы перечислили, делается один раз при создании исполняемого модуля и больше для работы программы не нужно.
PS. А какие языки тогда отнести к компиляторам?

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 1762
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.05.11 13:09. Заголовок: vvv пишет: А какие..


vvv пишет:

 цитата:
А какие языки тогда отнести к компиляторам?


Asm
C
Pascal


Спасибо: 0 
Профиль
vvv



Пост N: 13
Зарегистрирован: 24.02.11
ссылка на сообщение  Отправлено: 24.05.11 07:51. Заголовок: Ну не сам же я это п..

Спасибо: 0 
Профиль
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

Спасибо: 0 
Профиль
Григорьев Владимир
постоянный участник


Пост N: 385
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.05.11 16:32. Заголовок: vvv пишет: Но ведь ..


vvv пишет:

 цитата:
Но ведь чтобы запустить exe-шку, не надо иметь на компьютере никакого интерпретатора! Все, что вы перечислили, делается один раз при создании исполняемого модуля и больше для работы программы не нужно.
PS. А какие языки тогда отнести к компиляторам?



Вы так и не поняли, что я написал!

Вы запускаете как раз интерпретатор! То есть когда вы запускаете, якобы, свою программу, как вы наивно думаете, вы запускаете интерпретатор Clipper, к загрузочному модулю которого был присоединен P-код, который этим интерпретатором будет интерпретироваться!

Чтобы вам было понятно, то есть некая аналогия между Windows-программой, к которой в exe-модуль, например, вставляются BMP-файлы. Тем не менее BMP-данные как были данными, а не машиннами командами, так ими и остались.

К компиляторам относятся те средства, которые переводят исходный код в коды машинных команд!

Спасибо: 0 
Профиль
Григорьев Владимир
постоянный участник


Пост 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 создал и присоединил к загрузочному модулю интерпретатора.


Спасибо: 0 
Профиль
Pasha
Администратор




Пост N: 1946
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 25.05.11 18:40. Заголовок: Григорьев Владимир п..


Григорьев Владимир пишет:

 цитата:
Вот Clipper и делает это, включая в каждый итоговый загрузочный модуль интерпретатор
этого кода и сам интерпретируемый код.



И этот интерпретатор имеет даже собственное имя: __PLANKTON
Познакомиться, как работает клиппер, достаточно просто, и это может сделать любой интересующийся в домашних условиях, используя подручные средства.
Надо взять обыкновенный хирургический скальпель дизассемблер watcom, аккуратно сделать надрез дизассемблировать любой клипперовский obj, и внимательно изучить строение внутренних органов пациента получившийся текст на asm.
Мы увидим, что компилятор клиппер для каждой клипперовской процедуры или функции создает в сегменте кода файла obj маленькую функцию, а в сегменте данных - пи-код функции клиппера. Маленькая функция состоит из вызова интерпретатора __PLANKTON, в качестве параметра которой передается ссылка на пи-код. Таким образом, при вызове функции она в свою очередь вызывает интерпретатор, который собственно и выполняет пи-код.
Примерно так работает и харбор, только в качестве интерпретатора у него используется Harbour Virtual Machine (HVM). Правда, харбор поддерживает и создание исполняемого кода без интерпретатора. В этом режиме для выполнения каждой пи-команды вызывается соответствующая функция.
Но и клиппер, как и харбор, являются также полноценными компиляторами. Выходом компилятора не обязательно должен быть машинный код. А построены они оба как классические компиляторы. По поводу харбора я встречал суждение людей, поверхностно с ним познакомившихся, что это "всего-лишь" препроцессор для С. Это не так, и внешнее сходство не должно скрывать сути его работы.

Спасибо: 0 
Профиль
Григорьев Владимир
постоянный участник


Пост N: 387
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.05.11 19:29. Заголовок: Pasha пишет: И этот..


Pasha пишет:

 цитата:
И этот интерпретатор имеет даже собственное имя: __PLANKTON



Я хотел это добавить, но не стал усложнять вопрос. Помимо __PLANKTON есть также модули, которые обрабатывают макросы. Я по памяти уже не помню, как эти модули называются.. Но не так давно я как раз восстановил лексический анализатор интерпретатора макросов. Следствием этого было мое сообщение на \этом форуме про причуды компилятора Clipper.

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 45
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 25.05.11 22:05. Заголовок: Во понаписали !!!


Во понаписали то ! Levon задал вопрос, получил ответ и счастлив на этом, помогли ему на форуме и отлично, на то он и форум.
Мужики, но чего вы на vvv накинулись ? Человек перерыл кучу ссылок, и то что там писанина мягко говоря ни очем - не его вина.
Да, vvv поднял тему которая лет 15 -20 назад и не могла возникнуть, потому что каждый програмист и системотехник знал что такое машинный код.
Понабежали дядьки с кучей звезд разного цвета, запугали ... но все же разъяснили истину ( правда накидали новых непонятных слов типа дизасемблеров и лексических анализаторов ).

vvv , ты не обижайся , народ на форуме в основном доброжелательный и пишет справедливые и грамотные ответы.
Предлагаю подвести черту :
1. Levon получил помощь
2. Vvv понял, что в интернете не всему можно верить и обогатился знаниями
3. На форуме есть люди, готовые этими знаниями делиться
________________________________________________________________

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 2079
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.05.11 23:44. Заголовок: Haz пишет: Предлага..


Haz пишет:

 цитата:
Предлагаю подвести черту


На том и порешим ;) Тема закрыта.

Спасибо: 0 
Профиль
Ответов - 49 , стр: 1 2 3 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 455
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет