Артем Л.
11416 сообщений
#15 лет назад
Цитата ("ypeskov"):
почему это скрипт не является программой?


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

А вообще гугл Вам в помощь
Юрий Песков
338 сообщений
#15 лет назад
Гуглить я умею, поверьте, только я сейчас сходу приведу другое определение, где про компиляцию ни слова.

Цитата:
Компью́терная програ́мма — последовательность инструкций, предназначенная для исполнения устройством управления вычислительной машины. Чаще всего образ программы хранится в виде исполняемого модуля (отдельного файла или группы файлов). Из этого образа, находящегося как правило на диске, исполняемая программа в оперативной памяти может быть построена программным загрузчиком. В зависимости от контекста, рассматриваемый термин может относиться также и к исходным текстам программы.
Юрий Песков
338 сообщений
#15 лет назад
Ну и как быть с реализациями питона, которые JIT компиляцию делают?
Артем Л.
11416 сообщений
#15 лет назад
Хорошо, скажем проще, скрипт написан на скриптовом языке, а программа нет
Юрий Песков
338 сообщений
#15 лет назад
Не согласен.

Программа - это общее определение. В свою очередь программы уж делятся на компиируемые и интерпретируемые.
По итогу процессор в обоих случаях выполняет свои машинные комманды.
Юрий Песков
338 сообщений
#15 лет назад
Кстати, жабаскрипт к какому типу программ относить?
Константинович С.
658 сообщений
#15 лет назад
"Зачем спорить, давай начнем с начала"
Непринципиально - программа или скрипт, что такое админка более менее обьяснили
пивом залакируйте
Николай Г.
601 сообщение
#15 лет назад
Цитата ("Hungry_Hunter"):
Dervinar, давно ли скрипты начали программами называть?

Ну лично я пишу сайты на D, и у меня роль CMS выполняют именно скомпилированные программы. CMS не только на PHP и Perl писать можно, поэтому я использовал более общее понятие.
И вообще, не придирайтесь к словам=)
Дмитрий Д.
60 сообщений
#15 лет назад
Я абсолютно согласен с товарищем Hungry_Hunter!

Позволю себе небольшой монолог на тему "программа" vs "скрипт".

И так начнем,
Сначала я предлагаю всем взглянуть на слово "программа" - по идее это набор инструкций и ни в чем не отличается от скрипта, - инструкции, написанные на том или ином языке программирования, которые являются реализацией бизнес-логики процесса.
Но!Давай взглянем на то, что затем происходит с этим кодом (набор инструкций в текстовой форме).

Программа (в смысле приложения) - это тот набор инструкций, который из исходного текста был скомпилирован в бинарную форму (всем известные exe из виндовоза к примеру). Такой скомпилированный набор инструкций является самодостаточным для того, чтобы выполняться на той или иной архитектуре, платформе, ОС в конце концов.

Вот тут осмелились назвать скрипт программой. Давай тогда взглянем что происходит с исходным текстом скрипта. Все инструкции скрипта передаются ИНТЕРПРЕТАТОРУ, которые в свою очередь является приложением (как раз программой). Некоторые интерпретаторы преобразуют изначально свои скрипты в некую форму, для увеличения быстродействия его интерпретирования. Возьмем к примеру всем известный Python. Код для него - это *.py файлы, легко читабельные и собственно содержащие бизнес-логику. Но после того, как мы попытаемся запустить этот СКРИПТ - мы получим следующую последовательность действий:
1. Запускается интерпретатор Python
2. Python обрабатывает файл *.py
3. Python генерит *.pyc файл. - как раз то промежуточное состояние скрипта
4. Python выполняет команды, согласно инструкциям скрипта.
Ну и кто тут программа, а кто скрипт? Python - программа-интерпретатор, а вот то, что ему подсунули - СКРИПТ!

Давайте для уверенности посомтрим на ... как бы Вы думали? - JavaScript!
Кто мне скажет, что это программа? НЕТ НЕТ и еще раз НЕТ!!! - Это лишь набор инструкций - СКРИПТ! Но Вы можете спросить: "А кто же тогда программа-интерпретатор?", Ответ простейший - БРАУЗЕР! именно браузер в этом случае является приложением, которое выполняет этот набор инструкций в теле HTML документа, обрамленный тэгами <script ....>....</script>. Или быть может вы считаете, что DOM (Document Object Model) является чем то завораживающим и не тем, что предоставляет приложение для возможности работы скрипта?

И давайте тогда разберемся в отношении сообщения от товарисча ypeskov:
Цитата:

Не согласен.

Программа - это общее определение. В свою очередь программы уж делятся на компиируемые и интерпретируемые.
По итогу процессор в обоих случаях выполняет свои машинные комманды.

И так. У программы-приложения есть исходный код. Он подлежит компиляции и последующему исполнению в качестве самодостаточного набора машинных инструкций.
Код же скрипта предназначен для выполнения под управлением интерпретатора (как раз приложение).
И в случае приложения - именно само приложение является выполняемым машинным кодом. Могу уточнить - в списке процессов системы появляется ИМЕННО приложение.
В случае же скрипта - интерпретатор выполняет скрипт (инструкции из него) и именно интерпретатор является приложением - он в списке процессов.

Давайте же не будет путать исходный код приложения и скрипт!
Дмитрий Д.
60 сообщений
#15 лет назад
Цитата ("ypeskov"):
Ну и как быть с реализациями питона, которые JIT компиляцию делают?


Совсем забыл про JIT еще сказать!
И при помощи питона можно превратить скрипт в программу - через его компилятор (JIT в том числе).
Давайте обратим свое внимание на CLR (Common Language Runtime), именно эта прослойка является средой выполнения dotNet программ. Но почему тогда я называю программу на C# приложением? Все очень просто. CLR - это нашлепка на ОС, которая тесно взаимодействует с JIT компайлером. И так или иначе в итоге мы будем иметь самодостаточный код, а вот необходимость наличия в этом случае dotNetFrmaework - это ... это то же самое что интерпретатора. Эт фактически является условием обеспечения операционной системой необходимого интерфейса для работы приложение!
Дмитрий Д.
60 сообщений
#15 лет назад
Цитата ("dervinar"):
Цитата ("Hungry_Hunter"):
Dervinar, давно ли скрипты начали программами называть?

Ну лично я пишу сайты на D, и у меня роль CMS выполняют именно скомпилированные программы. CMS не только на PHP и Perl писать можно, поэтому я использовал более общее понятие.
И вообще, не придирайтесь к словам=)


+1. Абсолютно согласен, что CMS можно не только в качестве скриптов писать. Это еще можно поспорить, что будет быстрее, удобнее и приемлемее для конечного пользователя: часть скрипта сайта, предоставляющая ему возможность управления, или же коечное приложение с тем же функционалом
Артем Л.
11416 сообщений
#15 лет назад
Дим, огромное спасибо, что всем разъяснил в чем разница а то у меня не хватило словарного запаса по этой тематике, чтобы понятно рассказать людям
Оффтопик
ex3mer мой сенсей, он всегда приходит на помощь в трудную минуту
Юрий Песков
338 сообщений
#15 лет назад
ex3mer, много букв, но в самом начале есть такая малюсенькая подмена понятий. И дальше все рассуждения базируются на этом моменте. А я, а также многие авторы с этим не согласны:
Цитата:
Программа (в смысле приложения) - это тот набор инструкций, который из исходного текста был скомпилирован в бинарную форму (всем известные exe из виндовоза к примеру). Такой скомпилированный набор инструкций является самодостаточным для того, чтобы выполняться на той или иной архитектуре, платформе, ОС в конце концов.


Повторяю еще раз. Это всего лишь ваше мнение, что программа обязана быть скомпилирована. Это лишь ВАШЕ ЛИЧНОЕ мнение, попробуйте его подтвердить ссылками на научные работы.
Константинович С.
658 сообщений
#15 лет назад
Да я давно уже понял что такое админка.....
эх какие-то еще слова новые прочитал - что-то вроде - "холивар"
Юрий Песков
338 сообщений
#15 лет назад
ex3mer, я понял, java-программы это на самом деле не программы. Вы прямо раскрыли мне глаза Пойду поделюсь новыми сокровенными знаниями с коллегой, он как раз джавист.
Дмитрий Д.
60 сообщений
#15 лет назад
Цитата ("ypeskov"):
ex3mer, я понял, java-программы это на самом деле не программы. Вы прямо раскрыли мне глаза Пойду поделюсь новыми сокровенными знаниями с коллегой, он как раз джавист.

Да без проблем. Готов поспорить!)))

Возьмем к примеру то, что выполняется явовское в браузере.
Это как называется? "Программа" ? Вообщето это называется java-аплетом. И если на то пошло, то выполнение такого аплета (как и флеш ролика к примеру) осуществляется в этом случае НЕ браузером (приложение), а в виртуальном Java-процессоре (Java Virtual Machine - JVM), который интерпретирует текст программы на языке Java и позволяет выполнять ее на различных клиентах и серверах.

Но также можно рассматривать ПРИЛОЖЕНИЯ, написанные на яве, но СКОМПИЛИРОВАННЫЕ! И тогда! и только тогда - результат=выход после компиляции можно назвать программой (приложением)!

Или Вы скажете о том, что утверждал, что все написано на питоне - скрипт? Отнюдь! Есть способ, превратить питоновский скрипт в отдельное ПРИЛОЖЕНИЕ!


На данный момент на своей непосредственной работе я разрабатываю и занимаюсь поддержкой:
Я занимаюсь разработкой утилиты на языке Python. То, что я пишу изначально, на чем тестирую бизнес-логику - ЭТО СКРИПТ! А вот после компиляции (есть у нас такой механизм) этот скрипт ... этот скрипт ... этот скрипт превращается в ПРИЛОЖЕНИЕ! Именно не в промежуточный *.pyc файл (как я уже упоминал в своем монологе), а в конечную, самодостаточную для выполнения под управлением ОС без использования интерпритатора, совокупность инструкций - ПРИЛОЖЕНИЕ!

Есть аргументы против всего мною сказанного? Тогда изложите их пожалуйста? Скажите в чем я не прав, но только не просто "пальцем в небо": "Ну а как же тут ... Где то есть ... Что-то не так...", а по существу.
Либо если есть вопросы, а не возражения - задавайте. Я выскажу свой ответ и можем с удовольствием подискутировать
И так...Вам понятна основная разница между скриптом и приложением? Это просто - САМОДОСТАТОЧНОСТЬ (возможно кто-то назовет это по-другому, но смысл останется прежним)!
Юрий Песков
338 сообщений
#15 лет назад
Стоп стоп. при чем тут броузер? я про джаву вообще говорю, а не про ее исопльзование в инете в частности.

Дайте мне хоть одну ссылку, где программа понимается только при наличии процесса компиляции. Пожалуйста
Инчае это всего лишь ваше видение вопроса.
Еще раз, все, что вы пишите, это всего лишь ваша гипотеза и собственное толкование терминов. Пока я не вижу подтверждения.
Дмитрий Д.
60 сообщений
#15 лет назад
ypeskov, Вы меня утомили своим упорством в отношении Ваших гипотез.

Я не поленился и нашел ссылки. Надеюсь у Вас с английским хорошо? Прочтете вот хттп://en.wikipedia.org/wiki/Scripting_languages

Если нет, то я позволю себе цитату от туда (с моим переводом, на счет его качества - чтобы не сжульничал - можете проконсультироваться у других):
Цитата:
A scripting language, script language or extension language is a programming language that allows control of one or more software applications. "Scripts" are distinct from the core code of the application, which is usually written in a different language, and are often created or at least modified by the end-user. Scripts are often interpreted from source code or bytecode, wheras the applications they control are traditionally compiled to native machine code. Scripting languages are nearly always embedded in the applications they control.

The name "script" is derived from the written script of the performing arts, in which dialogue is set down to be spoken by human actors. Early script languages were often called batch languages or job control languages. Such early scripting languages were created to shorten the traditional edit-compile-link-run process.

An example many people have used is a web browser like Firefox. Firefox is written in C/C++ and can be controlled by JavaScript.


А перевод (мой) такой:
Цитата:

Скриптовые языки, языки скриптов и языки расширения - это языки программирования, которые позволяют контролировать одно или более ПРИЛОЖЕНИЙ. "Скрипт" зависит от ядра приложения, которое обычно пишется на другом языке программирования, и обычно создано или модифицировано конечным пользователем. Скрипты обычно интерпретируются из исходного кода или байт-кода, и ПРИЛОЖЕНИЯ, которые они контролируют традиционно скомпилированный в нативный машинный код. Скриптовые языки оыбчно внедрены (являются частью) приложений, которые они контролируют.

Название "скрипт" произошло от написания сценариев предстоящих действий, в котором написание инструкций максимально более человекопонятное. Ранние скрипты назывались как пакетные языки или языки управления заданиями. Такие ранние языки были созданы с целью минимизации традиционных процессов редактирования-компиляции-линковки-запуска.

На пример, многие люди используют браузер FireFox. FireFox написан на C/C++ и может управляться по средствам JavaScript


Или может мне следует найти что-то типа RFC? По моему Вы просто не хотите признать то, что Вы ошибаетесь. Я не прав?
Или хотя бы после этого Вы согласитесь со мной?
Юрий Песков
338 сообщений
#15 лет назад
ex3mer,
как хитро вы ссылки даете
давайте посмотрим на той же википедии определение не скриптового языка, которое вы нашли, а просто что такое компьютерная программа:
http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D0%B0%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0

Цитирую оттуда:
Цитата:
Компью́терная програ́мма — последовательность инструкций, предназначенная для исполнения устройством управления вычислительной машины. Чаще всего образ программы хранится в виде исполняемого модуля (отдельного файла или группы файлов). Из этого образа, находящегося как правило на диске, исполняемая программа в оперативной памяти может быть построена программным загрузчиком. В зависимости от контекста, рассматриваемый термин может относиться также и к исходным текстам программы.


а так же:
Цитата:
Некоторые языки программирования позволяют обходиться без предварительной компиляции программы и переводят её в инструкции машинного кода непосредственно во время исполнения. Этот процесс называется динамической компиляцией и он позволяет добиться большей переносимости программ между разными аппаратными и программными платформами при сохранении многих плюсов компиляции.

Интерпретируемые программы, для которых как правило не применяется процесс компиляции и которые интерпретируются операционный системой или специальными программами-интерпретаторами, называются скриптами или «сценариями».


как видим, что скрипты - это всего лишь разновидность программ. Тоесть он входит в подмножество программ и противопоставлять программа != скрипт противоречит логике.

Я уже писал выше, что программа - это общее понятие, которое уже дальше делится на интерпритируемые, компилируемые языки.
Дмитрий Д.
60 сообщений
#15 лет назад
ypeskov,
Ну Ё-МАЁ)))

Опять снова-здорова))) Повторяюсь,
Программа - это то млово, которое может использоваться во многих смыслах. Акцентирую Ваше внимание на то, что программа в моем моноголое, как уже я оговаривался, подразумевается под смыслов программа-приложение! А не исходный код скрипта или приложения!

А теперь давайте я отвечу на Ваши цитаты, которые я как понимаю вы привели из-за невнимательности либо ко мне, либо к смыслу, либо из-за замешательства в теме.

Цитата ("ypeskov"):
Цитирую оттуда:
Цитата:
Компью́терная програ́мма — последовательность инструкций, предназначенная для исполнения устройством управления вычислительной машины. Чаще всего образ программы хранится в виде исполняемого модуля (отдельного файла или группы файлов). Из этого образа, находящегося как правило на диске, исполняемая программа в оперативной памяти может быть построена программным загрузчиком. В зависимости от контекста, рассматриваемый термин может относиться также и к исходным текстам программы.


Итак ... первое наперво в данном тексте в глаза бросается - " предназначенная для исполнения устройством управления вычислительной машины". Это случаем не нативный машинный код? Нет? Поспорим?
"В зависимости от контекста, рассматриваемый термин может относиться также и к исходным текстам программы." - ИМЕННО!!! ИСХОДНЫМ текстам, а не конечному продукту, собственно о котором и идет речь: программа (отмечу снова, во избежании Вашей невнимательности, СМЫСЛ тут приложения, как конечного продукта) VS скрипт (а вот скрипт и в своем конечном состоянии остается скриптом, если его не преобразовать потом уже в ПРОГРАММУ-ПРИЛОЖЕНИЕ)

Вас не устраивает двоякое понимание слова "программа"? Так вот, в нашей дискуссии, а также в своем моногологе и в смысле Артема (Hungry_hunter) имелось ввиду законченная форма - программа в смысле приложения!
А Вас не смущает еще одно применение слова "программа":
"Программа мероприятий на субботу", тут это слово употреляется тоже. И что? Вы назовете это субботним приложением? А может скриптом? Тут смысл - тоже порядок действий! Но никто почему то не путает. Тут синоним - Список или афиша.
В отношении обсуждаемого приведу следующие синонимы:
программа - приложение
программа - исходный код
скрипт - набор инструкций для приложения
программа - исходный текст скрипта (можно еще назвать), но в конечном итоге, скрипт работает под управлением интерпретатора - скриптом и останется)))

Цитата ("ypeskov"):
а так же:
Цитата:
Некоторые языки программирования позволяют обходиться без предварительной компиляции программы и переводят её в инструкции машинного кода непосредственно во время исполнения. Этот процесс называется динамической компиляцией и он позволяет добиться большей переносимости программ между разными аппаратными и программными платформами при сохранении многих плюсов компиляции.

Интерпретируемые программы, для которых как правило не применяется процесс компиляции и которые интерпретируются операционный системой или специальными программами-интерпретаторами, называются скриптами или «сценариями».


как видим, что скрипты - это всего лишь разновидность программ. Тоесть он входит в подмножество программ и противопоставлять программа != скрипт противоречит логике.

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


И так. Мы тут спорили спорили и доспорились до того, что Вы мне говорите уже о ЯЗЫКАХ программирования. Ё-МАЁ!!!
Даже в Вашей цитате - "...Интерпретируемые программы, для которых как правило не применяется процесс компиляции и которые интерпретируются операционный системой или специальными программами-интерпретаторами, называются скриптами или «сценариями»..." - ну так интерпретируемые программы - СКРИПТЫ называются.

Я никогда не говорил и стану о том, что набор инструкций и правил для написания как приложения, так и скрипта, нельзя назвать языком программирования. И те кто пишет скрипты - тоже программисты. Это происходит от самой первозданной сути слова "программа" - набор инструкций для обеспечения логики конечного процесса действий. Ну так опять же, мы говорим о конечном продукте!
Конечный продукт может быть приложение или скрипт. И то и другое с исходным кодом (можно назвать так и быть программой, но не всегда это уместно и разумно), но выполняется по разному, представляется в двух связанных НО абсолютно разных формах. Даже в вашей цитате, для того, чтобы разъяснить таким людям как Вам (все таки замешательство я думаю, если не школьное вдалбливание учительтиц с ПТУшным образованием) объясняется:
"Интерпретируемые программы, для которых как правило не применяется процесс компиляции и которые интерпретируются операционный системой или специальными программами-интерпретаторами, называются скриптами или «сценариями»."
Переведу для Вас на русский:
"То что выполняется под управлением программы-приложения-интерпретатора - то для чего не требуется компиляция называют "сценариями" или же "скриптами" "

Оспорите??? Я же к Вашим же цитатам и прикрепил доказательства своих рассуждений, подкрепленные моими выше стоящими постами.