Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2011.10.16;
Скачать: [xml.tar.bz2];

Вниз

Еду на разведку в Москву.   Найти похожие ветки 

 
TUser ©   (2011-06-22 10:29) [80]

В каком-то смысле, любая программа интерпретируется. Хотя бы процессором. И вне определенного контекста (ос, тот же процессор, бывает что какой-нибудь эксель) она бессмысленна.


 
oxffff ©   (2011-06-22 10:38) [81]

http://ru.wikipedia.org/wiki/%D0%A1%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B2%D1%8B%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA


 
Inovet ©   (2011-06-22 12:36) [82]

> [78] asail ©   (22.06.11 08:41)
> Как минимум, ОС нужна... :)

Да?


 
Юрий Зотов ©   (2011-06-22 12:41) [83]

> euru ©   (22.06.11 10:18) [79]

> Вряд ли можно назвать скриптовыми такие языки как Бейсик или Пролог.

Даже сама Microsoft программы для VB называет Visual Basic Script.


 
Юрий Зотов ©   (2011-06-22 12:50) [84]

> [78] asail ©   (22.06.11 08:41)
> Как минимум, ОС нужна...

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

Включите программируемый калькулятор. Где в нем ОС? Нет ее. А программы, тем не менее, на нем работают.

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

Да ведь и сама ОС - это тоже программа.
:o)


 
Ega23 ©   (2011-06-22 13:37) [85]


> Я думаю, чтобы язык назывался скриптовым, программы, написанные
> на нём, должны исполняться в некотором контексте, без которого
> они бессмыслены.


program HelloWorld;

{$APPTYPE CONSOLE}

uses
 SysUtils;

begin
 try
   Writeln("Hello World!");
   Readln;
 except
   on E: Exception do
     Writeln(E.ClassName, ": ", E.Message);
 end;
end.


контекст исполнения - ОС.


 
Юрий Зотов ©   (2011-06-22 13:48) [86]


> TUser ©   (22.06.11 10:29) [80]
> В каком-то смысле, любая программа интерпретируется. Хотя
> бы процессором.

Зачем изобретать доморощенные терминологии?

Интерпретация - это когда инструкции программы быть исполненными процессором непосредственно не могут. А если могут, то это уже исполнение, а не интерпретация.


 
euru ©   (2011-06-22 14:30) [87]


> Юрий Зотов ©   (22.06.11 12:41) [83]
> Даже сама Microsoft программы для VB называет Visual Basic Script.

Visual Basic Script - это один из диалектов Visual Basic, "являющийся несколько усечённой версией обычного Visual Basic. Используется в основном для автоматизации администрирования систем Windows, а также для создания страниц ASP и сценариев для Internet Explorer."
http://ru.wikipedia.org/wiki/Visual_Basic

В свою очередь Visual Basic - это один из множества диалектов языка Бейсик (например, ещё есть (или были) TurboBasic, GW-Basic).

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


 
Юрий Зотов ©   (2011-06-22 14:35) [88]


> euru ©   (22.06.11 14:30) [87]
> В свою очередь Visual Basic - это один из множества диалектов языка
> Бейсик (например, ещё есть (или были) TurboBasic, GW-Basic).

Спасибо за информацию. А еще просто Basic, Quick Basic, Вильнюсский Basic и, вероятно, куча других Basic"ов.
:o)


 
euru ©   (2011-06-22 15:03) [89]


> Ega23 ©   (22.06.11 13:37) [85]
> контекст исполнения - ОС.

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

Контекст - это некое окружение, которое придаёт смысл программному коду при его исполнении. Например, для JavaScript таким контекстом является HTML, для bat-файлов MS-DOS - интерпретатор команд command.com.


 
Ega23 ©   (2011-06-22 15:17) [90]


> Контекст - это некое окружение, которое придаёт смысл программному
> коду при его исполнении. Например, для JavaScript таким
> контекстом является HTML, для bat-файлов MS-DOS - интерпретатор
> команд command.com.


asm?


 
Ega23 ©   (2011-06-22 15:18) [91]

Ну и, возвращаясь к началу "спора" - почему ABAP-то нельзя считать скриптовым языком?


 
Юрий Зотов ©   (2011-06-22 15:20) [92]


> euru ©   (22.06.11 15:03) [89]
> Контекст - это некое окружение, которое придаёт смысл программному
> коду при его исполнении. Например, для JavaScript таким контекстом
> является HTML, для bat-файлов MS-DOS - интерпретатор команд
> command.com.

А для программы [85] таким контекстом является OS. Потому что без нее ReadLn и WriteLn тоже теряют смысл.


 
oxffff ©   (2011-06-22 15:35) [93]


> Ega23 ©   (22.06.11 15:18) [91]
> Ну и, возвращаясь к началу "спора" - почему ABAP-то нельзя
> считать скриптовым языком?


Where does the ABAP program run?
All ABAP programs reside inside the SAP database. They are not stored in separate external files like Java or C++ programs. In the database all ABAP code exists in two forms: source code, which can be viewed and edited with the ABAP Workbench tools, and generated code, a binary representation somewhat comparable with Java bytecode. ABAP programs execute under the control of the runtime system, which is part of the SAP kernel. The runtime system is responsible for processing ABAP statements, controlling the flow logic of screens and responding to events (such as a user clicking on a screen button); in this respect it can be seen as a Virtual Machine comparable with the Java VM. A key component of the ABAP runtime system is the Database Interface, which turns database-independent ABAP statements ("Open SQL") into statements understood by the underlying DBMS ("Native SQL"). The database interface handles all the communication with the relational database on behalf of ABAP programs; it also contains extra features such as buffering of tables and frequently accessed data in the local memory of the application server.


 
euru ©   (2011-06-22 15:52) [94]


> Ega23 ©   (22.06.11 15:17) [90]
> asm?

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


> Ну и, возвращаясь к началу "спора" - почему ABAP-то нельзя
> считать скриптовым языком?

Потому что, например, можно создать свою версию интерпретатора языка АВАР, который будет исполнять АВАР-программы не в среде SAP, а например, в среде Windows.


> Юрий Зотов ©   (22.06.11 15:20) [92]
> А для программы [85] таким контекстом является OS. Потому
> что без нее ReadLn и WriteLn тоже теряют смысл.

Как это теряют? ReadLn - считать данные, WriteLn - записать данные.
А как именно это делать, будет определять компилятор.


 
oxffff ©   (2011-06-22 15:55) [95]


> > Ну и, возвращаясь к началу "спора" - почему ABAP-то нельзя
>
> > считать скриптовым языком?
>
> Потому что, например, можно создать свою версию интерпретатора
> языка АВАР, который будет исполнять АВАР-программы не в
> среде SAP, а например, в среде Windows.


Это истинно также и для скриптовых языков. :)


 
Ega23 ©   (2011-06-22 15:59) [96]


> Это истинно также и для скриптовых языков. :)


Ну так об этом и речь.


 
oxffff ©   (2011-06-22 16:08) [97]


> Ega23 ©   (22.06.11 15:59) [96]
>
> > Это истинно также и для скриптовых языков. :)
>
>
> Ну так об этом и речь.
>
>


Но он не является скриптовым, поскольку интерпретируется не сам ABAP, а его машинное представление.

из [93]

-generated code, a binary representation somewhat comparable with Java bytecode.
-The runtime system is responsible for processing ABAP statements, controlling the flow logic of screens and responding to events (such as a user clicking on a screen button); in this respect it can be seen as a Virtual Machine comparable with the Java VM.

На сколько я понял из определений скриптовости
Язык является скриптовым, если он исполняется сам(как абстракция высокого уровня), а не его транслированное в байт или машинный код представление.
То есть при его встраивании будет исполняться он сам.

ABAP транслируется в язык более низкого уровня. Поэтому он не является скриптовым.


 
euru ©   (2011-06-22 18:04) [98]


> oxffff ©   (22.06.11 15:55) [95]
> Это истинно также и для скриптовых языков. :)

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


 
Kerk ©   (2011-06-22 18:18) [99]


> euru ©   (22.06.11 18:04) [98]
>
> > oxffff ©   (22.06.11 15:55) [95]
> > Это истинно также и для скриптовых языков. :)
>
> И соответственно, есть такие интерпретаторы JavaScript (или
> теоретически его возможно написать), которые позволят выполнять
> код скрипта, написанный в HTML, без самого HTML, выдавая
> при этом результаты, близкие к оригиналу. :)

Конечно есть :)
http://en.wikipedia.org/wiki/Node.js


 
Kerk ©   (2011-06-22 18:19) [100]

Не совсем ту ссылку дал :)
Вот так лучше:

V8 increases performance by compiling JavaScript to native machine code before executing it, rather than to execute bytecode or interpreting it
http://en.wikipedia.org/wiki/V8_JavaScript_engine


 
Юрий Зотов ©   (2011-06-22 20:04) [101]

> Язык является скриптовым, если он исполняется сам(как абстракция
> высокого уровня), а не его транслированное в байт или машинный код
> представление.

То, что транслируется в байт-код - тоже скриптовой язык. Поскольку байт-код не может быть выполнен процессором, все равно нужен посредник.

НЕскриптовые языки - это ТОЛЬКО то, что транслируется в машинный код. Все остальное - скрипты.


 
Kerk ©   (2011-06-22 20:08) [102]


> Юрий Зотов ©   (22.06.11 20:04) [101]
>
> НЕскриптовые языки - это ТОЛЬКО то, что транслируется в
> машинный код. Все остальное - скрипты.

Ну так JavaScript - это скриптовый язык или нет? :)
С учетом [100]


 
oxffff ©   (2011-06-22 20:08) [103]


> Юрий Зотов ©   (22.06.11 20:04) [101]


C#?


 
asail ©   (2011-06-22 20:42) [104]


> Юрий Зотов ©   (22.06.11 12:50) [84]

Согласен. ОС не обязательна.


> oxffff ©   (22.06.11 20:08) [103]

Или Java, собсна... Ей виртуальная машина нужна, вроде как. Получается, что и JavaScript и Java - скриптовые?


 
TUser ©   (2011-06-22 21:16) [105]

Могу ошибаться, а разве машинные команды (то, что в асме пишется как mov, call, add, etc) - не есть вызовы "программ", которые написаны в интеле и зашиты в кремний?


 
Юрий Зотов ©   (2011-06-22 21:23) [106]

Блин...

Английское слово "script" на нормальный (несленговый) русский язык переводится как "сценарий". А что такое сценарий? Это некий текст, предназначенный для того, чтобы его кто-то ЧИТАЛ (раз) и ВЫПОЛНЯЛ (два) то, что в нем написано.

Ключевые слова здесь - ЧИТАТЬ и ВЫПОЛНЯТЬ. Это и есть именно то, чем занимаются все без исключения интерпретаторы. Отсюда и родилось английское название интерпретируемого кода - script. Сценарий, то есть.

Написан этот сценарий может быть, вообще говоря, на любом языке - китайском, русском, джаве, паскале, си (хоть шарпе, хоть не шарпе), на языке байт-кодов и пр. Дело тут совершенно не в том, на каком языке он написан, а в том, что его кто-то должен ЧИТАТЬ и ВЫПОЛНЯТЬ, потому что сам по себе он не выполнится.

Отсюда имеем два необходимых и достаточных признака скрипта - его кто-то должен ЧИТАТЬ и ВЫПОЛНЯТЬ. Есть эти признаки - значит, скрипт. Нет их - значит, не скрипт. Вот и все.

Поэтому ЛЮБОЙ язык, программа на котором не превращается в нативный машинный код, есть язык скриптовой. Поскольку для своего исполнения такая программа требует интерпретатора (чтобы ЧИТАТЬ и ВЫПОЛНЯТЬ). Будь то хоть джава, хоть шарп, хоть что угодно другое - до тех пор пока не порождается нативный машинный код.


 
TUser ©   (2011-06-22 21:30) [107]

Процессор читает и выполняет exe файл.


 
Юрий Зотов ©   (2011-06-22 21:36) [108]

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

О чем это говорит? О том, что скрипт - это не сам язык, а текст, предназначенный для интерпретации. А язык, на котором этот текст написан, может быть любым, это не играет никакой роли.

Но если язык предназначен ТОЛЬКО для того, чтобы на нем писать скрипты, то такие языки и называются скриптовыми.


 
Kerk ©   (2011-06-22 21:37) [109]


> Юрий Зотов ©   (22.06.11 21:23) [106]

Т.к. значит JavaScript в моем браузере - это не скрипт, т.к. V8 компилит его в машинный код?


 
Юрий Зотов ©   (2011-06-22 21:38) [110]

> TUser ©   (22.06.11 21:30) [107]

Не надо демагогии, ладно? Все прекрасно понимают, что имеется в виду.


 
Юрий Зотов ©   (2011-06-22 21:44) [111]

> Kerk ©   (22.06.11 21:37) [109]

Блин, Ромыч, ну устал уже повторять: скрипт - это не язык, а текст. Поэтому JavaScript в твоем браузере - это действительно не скрипт. Поскольку JavaScript - это язык, а язык быть текстом не может.


 
euru ©   (2011-06-22 22:00) [112]

Наверно, моё косноязычие не позволяет мне объяснить разницу между интерпретируемыми и скриптовыми языками, как я её понимаю.

Попробую тогда это сделать на примере.
Возьмём обычный файл HTML. Для его интерпретации в качестве интерпретатора используется браузер. При чём этот файл будет выполняться на любом браузере (IE, Firefox и т.д.) на любой ОС, в которой этот браузер есть. Средой исполнения для этого файла является браузер.

Допустим, в этом файле имеются вставки, написанные на JavaScript. Каждая из этих вставок является вполне законченной синтаксической конструкцией. Однако по отдельности они могут быть бессмыслены, потому что, например, описание функции находится в одной вставке, а её использование в других. Поэтому смысл эти  вставки на JavaScript приобретают только в контексте HTML файла, в состав которого они включены. А средой выполнения для этих скриптов является также браузер, если, конечно, в нём реализован движок JavaScript.


 
euru ©   (2011-06-22 22:07) [113]


> Юрий Зотов ©   (22.06.11 21:23) [106]
> Поэтому ЛЮБОЙ язык, программа на котором не превращается
> в нативный машинный код, есть язык скриптовой.

Вот написал я программу на Бейсике. Я могу её выполнить на интерпретаторе (например, GW-Basic) Либо откомпилировать в исполняемый файл на TurboBasic.

И каким же тогда является язык Бейсик: скриптовым или нескриптовым?


 
TUser ©   (2011-06-22 22:23) [114]

> Не надо демагогии, ладно? Все прекрасно понимают, что имеется в виду.

За всех не надо говорить. Я, например, не понимаю. И не только я, вот JavaScript"у отказали в праве называться скриптом, Керк тоже как-то не в курсе, насколько я понял.

На самом деле, это вопрос, на который я могу сказать только, что мне пофиг. Я не могу себе представить ситуации, когда окажусь перед выбором - скриптовый язык или не скриптовый. И выбрав именно скриптовый потом выбирать, какой из них. Выбор всегда сразу из множества типа пхп, асп, ххх. Так что выяснять "истину" конкретно в этом вопросе желания мало.

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

зы. На всякий случай, Вы - форма уважительного обращения, несмотря даже на то, что то интернет.


 
TUser ©   (2011-06-22 22:24) [115]


> Либо откомпилировать в исполняемый файл на TurboBasic

)) там нортон на ф4 показывает в конце exe исходник, это типичный интерппретатор


 
Kerk ©   (2011-06-22 22:34) [116]

На самом деле, действительно пофиг :)

Кстати, по поводу PHP

HipHop был создан для улучшения производительности Facebook. Он преобразует PHP код в C++ код и комплирует его с помощью g++.


 
Юрий Зотов ©   (2011-06-22 22:45) [117]

> euru ©   (22.06.11 22:07) [113]
> И каким же тогда является язык Бейсик: скриптовым или нескриптовым?

Уже говорил - четкой границы нет. И пример приводил - интерпретатор Паскаля. А еще пример привели Вы сами, только что.

> TUser ©   (22.06.11 22:23) [114]
> Я, например, не понимаю.

Сочувствую. Но помочь, увы, не могу. Разве что последний пример. Сел человек в такси, едет и говорит водителю - здесь налево, здесь направо. Машина поворачивает туда, куда он сказал. Вопрос: кто управляет машиной - водитель или пассажир?


 
TUser ©   (2011-06-22 22:55) [118]


> Вопрос: кто управляет машиной - водитель или пассажир?

хз


 
alexdn ©   (2011-06-22 22:57) [119]

> Юрий Зотов ©   (22.06.11 22:45) [117]
водитель однозначно)


 
oxffff ©   (2011-06-22 23:23) [120]

Я не нашел нормального четко отличающего определения. Хотя и искал и сейчас и днем:

http://c2.com/cgi/wiki?ScriptingLanguage
http://www.cs.man.ac.uk/~pjj/cs211/langdes/script.html
http://www.techopedia.com/definition/3873/scripting-language

Хотя мне ближе
http://www.techterms.com/definition/script

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

Здесь  и кончается скриптовый язык и начинается среда исполнения.

Для его исполнения среда исполнения может транслировать его текст в байт-код, натив код, и налагать определенную семантику.
Где то по другим ссылкам было прямо написано, что семантика скриптового языка может определяться дополнительно.
Но процесс исполнения отношения не имеет к языку.
То есть в неком смысле это также может быть и высокоуровневый контекстно-свободный байт-код(по сути другая запись текста скрипта).

В противоположность обычные языки имеют строго определенную семантику и не являются контекстно-свободными языками(это мой вольный термин, отображающий, что есть высокоуровневая конструкция, которая должна делать что-то, но семантически не задано как. В противоположность у обычных языков при трансляции в примитивный байт-код или нативный код, семантика уже строго определена).
Вот такое мое IMHO.



Страницы: 1 2 3 4 5 вся ветка

Форум: "Прочее";
Текущий архив: 2011.10.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.7 MB
Время: 0.013 c
2-1309050691
Drowsy
2011-06-26 05:11
2011.10.16
Перехват исключения при создании формы.


2-1308850168
Drowsy
2011-06-23 21:29
2011.10.16
Есть ли функция, возвращающая адрес колонки грида


2-1307957801
Jamix
2011-06-13 13:36
2011.10.16
KDTele Tools


15-1308601797
Юрий
2011-06-21 00:29
2011.10.16
С днем рождения ! 21 июня 2011 вторник


4-1217632047
sssyura
2008-08-02 03:07
2011.10.16
SHGetSpecialFolderPath





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский