значит "интерпретируемый" язык - это тот для которого не существует, и не может существовать компилятора? |
я ему на примере перла и говорил
ЗЫ. вася обеднел на 2 салата Последний раз редактировалось: КрасныйОктябрь (2006.12.28 15:42.00), всего редактировалось 1 раз |
andy ice писал(а): для опровержения твоего утверждания хватило бы и одного. вот тебе третий - перл.насчет eval() - можно реализовать его обработку в компиляторе, только ето будет геморойно(если я не ошибаюсь, eval() используется для повторения кода?) А что у нас в перле имеется, из-за чего для него не может существовать компилятора? (можно пример текста) Добавлено спустя 36 секунд: КрасныйОктябрь писал(а): я ему на примере перла и говорил
а началось с того чтот я захотел найти кряк к программе которая из перловского скрипта делает екзе к вин32 а то она триальная.... ... кстати вот и пример |
не то не компилятор а старонняя кривая прога, это НЕ КОМПИЛЯТОР перла |
http://www.indigostar.com/
http://ru.wikipedia.org/wiki/Компилятор слушаем мнение общества: это компилятор или нет? |
ukneo писал(а): можно реализовать его обработку в компилятореи получишь интерпретатор. _________________ Ин дер гросен фамилие нихт клювен клац-клац |
С вероятностью в 80% данная по ссылке прога тупо вешает еще одну длл-ку в которой интерпретатор перла. _________________ Йа - водоросль. |
Dio писал(а): С вероятностью в 80% данная по ссылке прога тупо вешает еще одну длл-ку в которой интерпретатор перла.может быть, не проверено=(... Добавлено спустя 3 минуты 50 секунд: СКАЖИТЕ КТО-НИБУДЬ ТОЧНОЕ ОПРЕДЕЛЕНИЕ: "Интерпретируемый" язык программирования? "Компилируемый" язык программирования? ЗЫ: заранее очень благодарен... До сих пор нет конкретного определения этих понятий. Добавлено спустя 40 секунд: если они существуют |
wikipedia писал(а): Компилируемые и интерпретируемые языки
Языки программирования делятся на два класса — компилируемые и интерпретируемые. Программа на компилируемом языке при помощи специальной программы компилятора преобразуется (компилируется) в набор инструкций для данного типа процессора (машинный код) и далее записывается в исполняемый файл, который может быть запущен на выполнение как отдельная программа. Другими словами, компилятор переводит программу с языка высокого уровня на низкоуровневый язык, понятный процессору. Если программа написана на интерпретируемом языке, то интерпретатор непосредственно выполняет (интерпретирует) ее текст без предварительного перевода. При этом программа остается на исходном языке и не может быть запущена без интерпретатора. Можно сказать, что процессор компьютера — это интерпретатор машинного кода. Кратко говоря, компилятор переводит программу на машинный язык сразу и целиком, создавая при этом отдельную программу, а интерпретатор переводит на машинный язык прямо во время исполнения программы. Разделение на компилируемые и интерпретируемые языки является несколько условным. Так, для любого традиционно компилируемого языка, как, например, Паскаль, можно написать интерпретатор. Кроме того, большинство современных «чистых» интерпретаторов не исполняют конструкции языка непосредственно, а компилируют их в некоторое высокоуровневое промежуточное представление (например, с разыменованием переменных и раскрытием макросов). Для любого интерпретируемого языка можно создать компилятор — например, язык Лисп, изначально интерпретируемый, может компилироваться без каких бы то ни было ограничений. Создаваемый во время исполнения программы код может так же динамически компилироваться во время исполнения. Как правило, скомпилированные программы выполняются быстрее и не требуют для выполнения дополнительных программ, так как уже переведены на машинный язык. Вместе с тем при каждом изменении текста программы требуется ее перекомпиляция, что создает трудности при разработке. Кроме того, скомпилированная программа может выполняться только на том же типе компьютеров и, как правило, под той же операционной системой, на которую был рассчитан компилятор. Чтобы создать исполняемый файл для машины другого типа, требуется новая компиляция. Интерпретируемые языки обладают некоторыми специфическими дополнительными возможностями (см. выше), кроме того, программы на них можно запускать сразу же после изменения, что облегчает разработку. Программа на интерпретируемом языке может быть зачастую запущена на разных типах машин и операционных систем без дополнительных усилий. Однако интерпретируемые программы выполняются заметно медленнее, чем компилируемые, кроме того, они не могут выполняться без дополнительной программы-интерпретатора. Некоторые языки, например, Java и C#, находятся между компилируемыми и интерпретируемыми. А именно, программа компилируется не в машинный язык, а в машинно-независимый код низкого уровня, байт-код. Далее байт-код выполняется виртуальной машиной. Для выполнения байт-кода обычно используется интерпретация, хотя отдельные его части для ускорения работы программы могут быть транслированы в машинный код непосредственно во время выполнения программы по технологии компиляции «на лету» (Just-in-time compilation, JIT). Для Java байт-код исполняется виртуальной машиной Java (Java Virtual Machine, JVM), для C# — Common Language Runtime. Подобный подход в некотором смысле позволяет использовать плюсы как интерпретаторов, так и компиляторов. Следует упомянуть также оригинальный язык Форт(Forth), который является как бы одновременно интерпретируемым и компилируемым. |
ukneo писал(а): http://www.indigostar.com/ Цитата или perl2exe (Windows), который создаёт из
программы обычный выполняемый файл. Этот метод однако имеет много недостатков. Помимо ненадёжности компиляторов и потери кроссплатформенности, компиляции как таковой как минимум во втором случае не производится. Созданный выполняемый файл содержит полный интерпретатор Perl и саму программу в зашифрованном виде (так объясняется громадный размер файла). Уже существуют утилиты, позволяющие расшифровывать программу из такого файла. |
Я думаю, здесь чисто лингвистическая проблема.
Интерпретирумый язык - это язык, который традиционно (или преимущественно) используется в интерпретируемом варианте. Тоже можно сказать и про компилируемые языки. Кстатит когда-то на Ямахе (был такой компьютер) я видел интерпретатор Си, конечно в каком-то жутко урезанном варианте. Теперь, что касается того, что есть компиляция и что есть интерпретация. Мне кажется можно внести ясность следующим образом. Надо рассматривать код по отношению к командам процессора. Другими словами, если в конечном итоге исходная программа перед исполнением полностью (!!!) переводиться в машинный код, то мы имеем дело с компилятором. Все остальные варианты это интерпретация. В частности в технологии .NET хотя исполняемый модуль и написан на языке IL, при запуске происходит его полная компиляция и далее он уже исполняется как обычный машинный код. А вот, на сколько я знаю, модули, написанные на Java переводяться при исполнении кода по блочно, т.е. интерпретируются. Поэтому, кстати, программы на Java так медленны. |
ето есть в курсе информатики ваще гоните !
Добавлено спустя 46 секунд: но отсалата яб не отказался _________________ бр бр.... |
Спасибо всем участникам за помощь!
PS: салат будет вручен победителю... |
ukneo
только не в победителя _________________ Ин дер гросен фамилие нихт клювен клац-клац |
всем спасибо от меня и от моего желудка, салат сьел... за что всем благадарен.
хотя ukneo и по сей день ходит хмурый и приговаривает что я прав, но он правее) |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы можете скачивать файлы |