Динамический язык программирования
Динамический язык программирования, в информатике — класс языков программирования высокого уровня, которые в runtime выполняют многие общие действия программирования, которые статический язык программирования выполняет во время компиляция.
Такое поведение может включать расширение программы путем добавления нового кода, расширения объектов и определений или изменения системы типов. Хотя подобное поведение может быть эмулировано практически в любом языке, с разной степенью сложности, трудности и затрат производительности, динамические языки предоставляют прямые инструменты для их использования. Многие из этих возможностей были впервые реализованы как собственные в языке программирования Lisp.
Большинство динамических языков также являются динамически типизированными, но не все. Динамические языки часто (но не всегда) называют скриптовый язык, хотя этот термин в узком смысле относится к языкам, специфичным для конкретной среды выполнения.
Оценка[править]
Некоторые динамические языки предлагают функцию eval'. Эта функция принимает строку или абстрактное синтаксическое дерево, содержащее код на языке, и выполняет его. Если этот код обозначает выражение, то возвращается результирующее значение. Erik Meijer и Peter Drayton отличают runtime code generation, предлагаемую eval, от dynamic loading, предлагаемой shared libraries, и предупреждают, что во многих случаях eval используется только для реализации функций высшего порядка (путем передачи функций в виде строк) или десериализации. [1].
Изменение объекта во время выполнения[править]
В динамическом языке тип или система объектов обычно могут быть изменены во время выполнения. Это может означать генерацию новых объектов из определения во время выполнения или на основе подмешивания ("примесь") существующих типов или объектов. Это также может означать изменение наследовяния или дерева типов и, таким образом, изменение поведения существующих типов (особенно в отношении вызова методов).
Источники[править]
Ссылки[править]
Одним из источников этой статьи является статья в википроекте «Руниверсалис» («Руни», руни.рф), называющаяся «Динамический язык программирования». Материал указанной статьи полностью или частично использован в Циклопедии по лицензии CC BY-SA. Всем участникам Руниверсалиса предлагается прочитать «Обращение к участникам Руниверсалиса» основателя Циклопедии и «Почему Циклопедия?». |