Связанные понятия
Фунарг — сокращение от «функциональный аргумент»; в компьютерных науках, проблема фунарга относится к сложности реализации функций как первоклассных объектов в стеково-ориентированных языках программирования (в широком смысле, включая все языки, в которых передача параметров функциям осуществляется через стек).
Подробнее: Проблема фунарга
Суперкласс позволяет создавать обобщенный интерфейс, заключающий в себе настраиваемую функциональность за счет использования виртуальных функций.
Правило одного определения (One Definition Rule, ODR) — один из основных принципов языка программирования C++. Назначение ODR состоит в том, чтобы в программе не могло появиться два или более конфликтующих между собой определения одной и той же сущности (типа данных, переменной, функции, объекта, шаблона). Если это правило соблюдено, программа ведёт себя так, как будто в ней существует только одно, общее определение любой сущности. Нарушение ODR, если оно не будет обнаружено при компиляции и сборке...
Абстракция в информатике представляет собой технику управления сложностью систем.
Маршалинг (от англ. marshal — упорядочивать) в информатике — процесс преобразования информации (данных, двоичного представления объекта), хранящейся в оперативной памяти, в формат, пригодный для хранения или передачи. Процесс похож на сериализацию (отличия см. ниже). Обычно применяется тогда, когда информацию (данные, объекты) необходимо передавать между различными частями одной программы или от одной программы к другой.
Аппликативное программирование — один из видов декларативного программирования, в котором написание программы состоит в систематическом осуществлении применения одного объекта к другому. Результатом такого применения вновь является объект, который может участвовать в применениях как в роли функции, так и в роли аргумента и так далее. Это делает запись программы математически ясной. Тот факт, что функция обозначается выражением, свидетельствует о возможности использования значений-функций — функциональных...
Зависимость данных в информатике — это ситуация, в которой очередная команда программы зависит от какой-либо предыдущей команды. В теории компиляции техника обнаружения зависимости называется анализом зависимостей.
В программировании неизменяемым (англ. immutable) называется объект, состояние которого не может быть изменено после создания.
Подробнее: Неизменяемый объект
Уничтожение данных — последовательность операций, предназначенных для осуществления программными или аппаратными средствами необратимого удаления данных, в том числе остаточной информации.
Внедрение зависимости (англ. Dependency injection, DI) — процесс предоставления внешней зависимости программному компоненту. Является специфичной формой «инверсии управления» (англ. Inversion of control, IoC), когда она применяется к управлению зависимостями. В полном соответствии с принципом единственной ответственности объект отдаёт заботу о построении требуемых ему зависимостей внешнему, специально предназначенному для этого общему механизму.
Символический искусственный интеллект — это собирательное название для всех методов исследования искусственного интеллекта, основанных на высокоуровневом «символическом» (человекочитаемом) представлении задач, логики и поиска. Символический ИИ лёг в основу доминирующей парадигмы исследований ИИ с середины 1950-х до конца 1980-х.
Каркас ное программирование — это стиль компьютерного программирования, основанный на простых высокоуровневых программных структурах, на так называемых фиктивных кодах. Программа каркасов похожа на псевдокод, но при этом допускает синтаксический анализ, компиляцию и тестирования кода. Фиктивный код код будет вставлен в программу каркаса для симуляции обработки и во избежание сообщений об ошибках при компиляции. Он может включать в себя пустые функциональные выражения, или функции, которые возвращают...
Граф вызовов (англ. Call graph) в теории построения компиляторов — ориентированный граф, который изображает вызовы между функциями в компьютерной программе. В частности, каждый узел представляет собой некоторую процедуру, а каждая дуга (f, g) показывает, что процедура f вызывает процедуру g.
Линеаризу́емость (англ. linearizability) в многопоточном программировании — это свойство программы, при котором результат любого параллельного выполнения процедур (операций) эквивалентен некоторому последовательному выполнению. Для любого другого потока выполнение линеаризуемой операции является мгновенным: операция либо не начата, либо завершена.
Состояние (англ. State) — поведенческий шаблон проектирования. Используется в тех случаях, когда во время выполнения программы объект должен менять своё поведение в зависимости от своего состояния.
Адаптер (англ. Adapter) — структурный шаблон проектирования, предназначенный для организации использования функций объекта, недоступного для модификации, через специально созданный интерфейс. Другими словами — это структурный паттерн проектирования, который позволяет объектам с несовместимыми интерфейсами работать вместе.
Недостижимый код часто относят к одному из типов мёртвого кода, такая терминология обычно применяется при рассмотрении исходного кода программ. Однако в теории компиляторов, эти понятия никак не связаны, мёртвым кодом там называют только достижимый, но не влияющий на вывод программы код.
Стратегия (англ. Strategy) — поведенческий шаблон проектирования, предназначенный для определения семейства алгоритмов, инкапсуляции каждого из них и обеспечения их взаимозаменяемости. Это позволяет выбирать алгоритм путём определения соответствующего класса. Шаблон Strategy позволяет менять выбранный алгоритм независимо от объектов-клиентов, которые его используют.
Функциональный объект (англ. function object), также функтор, функционал и функционоид — распространённая в программировании конструкция, позволяющая использовать объект как функцию. Часто используется как callback, делегат.
Переопределение метода (англ. Method overriding) в объектно-ориентированном программировании — одна из возможностей языка программирования, позволяющая подклассу или дочернему классу обеспечивать специфическую реализацию метода, уже реализованного в одном из суперклассов или родительских классов. Реализация метода в подклассе переопределяет (заменяет) его реализацию в суперклассе, описывая метод с тем же названием, что и у метода суперкласса, а также у нового метода подкласса должны быть те же параметры...
Машина вывода — программа, которая выполняет логический вывод из предварительно построенной базы фактов и правил в соответствии с законами формальной логики.
Отделение
содержания от представления (или «разделение формы и содержания») это общепринятая идиома, философия дизайна и методология, применяемая в контексте различных издательских технологических дисциплинах, включая информационный поиск, обработку шаблонов, веб-дизайн, веб-программирование, обработку текста, компьютерную вёрстку и разработку управляемую моделями. Это конкретный случай более общей философии разделения ответственности.
Экранирование символов — замена в тексте управляющих символов на соответствующие текстовые подстановки. Один из видов управляющих последовательностей.
Автоматическое планирование и диспетчеризация (англ. Automated planning and scheduling, APS) — область задач искусственного интеллекта, касающаяся выполнения стратегии или последовательности действий, обычно для интеллектуальных агентов, автономных роботов и беспилотных аппаратов. В отличие от классических проблем управления и классификации, решения задач данной области комплексны, неизвестны и должны разрабатываться и оптимизироваться в многомерном пространстве.
Концептуальное программирование - подход к программированию, описанный Э.Х. Тыугу в одноименной книге . К. программирование предполагает оперирование понятиями (концептами), описанными в терминах предметной области, что позволяет использовать ЭВМ на этапе постановки задачи. Достаточно точное описание задачи позволяет ЭВМ автоматически составлять программы для её решения. Характерными особенностями концептуального программирования являются также использование языка предметной области и использование...
Трёху́ровневая архитекту́ра (трёхзве́нная архитекту́ра, англ. three-tier) — архитектурная модель программного комплекса, предполагающая наличие в нём трёх компонентов: клиента, сервера приложений (к которому подключено клиентское приложение) и сервера баз данных (с которым работает сервер приложений).
Глобальная переменная в программировании — переменная, областью видимости которой является вся программа, кроме специально затенённых областей. Механизмы взаимодействия с глобальными переменными называют механизмами доступа к глобальному окружению или состоянию (англ. global environment, global state). Глобальные переменные могут использоваться для взаимодействия между процедурами и функциями как альтернатива передачи аргументов и возвращения значений.
Пространственная база данных — база данных (БД), оптимизированная для хранения и выполнения запросов к данным о пространственных объектах, представленных некоторыми абстракциями: точка, линия, полигон и др. (лишь отчасти соответствующих базовым математическим понятиям точка, кривая, полигон).
Если методы обучения без учителя в проблеме разрешения многозначности полагаются на неаннотированный (неразмеченный) корпус, то обучение с учителем коренным образом зависят от размеченного корпуса тестов. Проблема получения достаточного количества знаний является одной из самых главных преград в реализации высокоэффективных алгоритмов обучения. Однако, если алгоритм реализуется не такими крупными с точки зрения ресурсов мероприятиями, как Senseval, а более мелкая, то в подобных случаях получение...
Подробнее: Автоматическое получение размеченного корпуса
Когнитивная архитектура — основа для интеллектуальных агентов. Она предлагает искусственные вычислительные процессы, которые действуют как определенные когнитивные системы, чаще всего, как человек, или действует разумно по некоторому определению. Когнитивные архитектуры образуют подмножество общих архитектур агента. Термин «архитектура» подразумевает подход, который пытается моделировать не только поведение, но и структурные свойства моделируемой системы.
Старсет — высокоуровневый язык программирования, разработанный под руководством М. М. Гилулы в Институте программных систем РАН в 1991 году.
Микросервисная архитектура — вариант сервис-ориентированной архитектуры программного обеспечения, ориентированный на взаимодействие насколько это возможно небольших, слабо связанных и легко изменяемых модулей — микросервисов, получивший распространение в середине 2010-х годов в связи с развитием практик гибкой разработки и DevOps.
Проце́сс-зо́мби , зо́мби (англ. zombie process, англ. defunct process) — дочерний процесс в Unix-системе, завершивший своё выполнение, но ещё присутствующий в списке процессов операционной системы, чтобы дать родительскому процессу считать код завершения.
Ненавязчивый JavaScript (англ. unobtrusive JavaScript) является подходом к web-программированию на языке JavaScript. Термин был введён в 2002 году Стюартом Лэнгриджем. Под принципами ненавязчивого Javascript обычно понимаются следующие...
Порождающие шаблоны (англ. Creational patterns) — шаблоны проектирования, которые абстрагируют процесс инстанцирования. Они позволяют сделать систему независимой от способа создания, композиции и представления объектов. Шаблон, порождающий классы, использует наследование, чтобы изменять наследуемый класс, а шаблон, порождающий объекты, делегирует инстанцирование другому объекту.
Высший тип (top type) в теории типов, часто обозначаемый как просто вершина или «закрепленным» символом (⊤), — универсальный тип, то есть такой тип, который содержит в себе каждый возможный объект в нужной системе типов. Высший тип иногда именуется универсальным супертипом, то есть все остальные типы в любой отдельно взятой системе типов являются подтипами самого верхнего. Это является противоположностью нижайшего типа, или иначе именуемого универсальным подтипом, который представляет собой тип...
Признаковое описание объекта (англ. feature vector) — это вектор, который составлен из значений, соответствующих некоторому набору признаков для данного объекта. Значения признаков могут быть различного, не обязательно числового, типа. Является одним из самых распространённых в машинном обучении способов ввода данных.
Управляющая последовательность (исключённая последовательность, экранированная последовательность, от англ. escape sequence) — совокупность идущих подряд значащих элементов, в группе теряющих для обрабатывающего механизма своё индивидуальное значение, одновременно с приобретением этой группой нового значения.
Программное обеспечение в общественном достоянии — программное обеспечение, которое было передано в общественное достояние, другими словами, не защищается авторским правом, товарным знаком или патентом. В отличие от других классов лицензий, нет никаких ограничений относительно того, что может быть сделано с программным обеспечением. Программное обеспечение можно изменять, распространять или продавать даже без ссылки на источник.
Фа́ззинг (англ. fuzzing) — техника тестирования программного обеспечения, часто автоматическая или полуавтоматическая, заключающая в передаче приложению на вход неправильных, неожиданных или случайных данных. Предметом интереса являются падения и зависания, нарушения внутренней логики и проверок в коде приложения, утечки памяти, вызванные такими данными на входе. Фаззинг является разновидностью выборочного тестирования (англ. random testing), часто используемого для проверки проблем безопасности...
Цанцзе (кит. трад. 倉頡輸入法, упр. 仓颉输入法, пиньинь: cāng jié shūrùfǎ, палл.: цанцзе шужуфа) — структурный метод ввода китайских иероглифов, разработанный в 1976 году Чу Бонфу, один из способов ввода иероглифов с клавиатуры пишущей машины, компьютера и так далее.
Модель системы безопасности с полным перекрытием — это наиболее общая модель защиты автоматизированных систем, базирующаяся на том, что система безопасности должна иметь по крайней мере одно средство, обеспечивающее безопасность любого потенциального канала утечки информации.
Рекурсивное определение или индуктивное определение определяет сущность в терминах её самой (то есть рекурсивно), хотя и полезным способом. Для того, чтобы это было возможно, определение в любом данном случае должно быть хорошо-основанным, избегая бесконечной регрессии.
Внеполосные данные являются логически независимым каналом передачи между парой поточных сокетов. В компьютерных сетях под внеполосными данными понимаются данные, передающиеся через поток, отличный от основного (in-band). Данная технология предоставляет независимый с точки зрения программиста канал и позволяет разграничить данные. Физически внеполосные данные передаются по тому же каналу, что и обыкновенные данные. Термин, вероятно, происходит от внеполосных сигналов, используемых в телекоммуникационной...
Вершина (англ. vertex, мн. ч. vertices) в компьютерной графике — это структура данных, которая описывает определённые атрибуты, например положение точки в 2D или 3D пространстве. Графические объекты состоят из массивов плоских поверхностей (как правило, треугольников — полигонов), и вершины определяют расположение, углы и другие атрибуты поверхностей.
Делегат (англ. delegate) — класс, который позволяет хранить в себе ссылку на метод с определённой сигнатурой (порядком и типами принимаемых и типом возвращаемого значений) произвольного класса. . Экземпляры делегатов содержат ссылки на конкретные методы конкретных классов.
Объе́ктно-ориенти́рованное проектирование (ООП) — часть объектно-ориентированной методологии, которая предоставляет программистам возможность оперировать понятием «объект», помимо понятия «процедура» при разработке кода.
Полная виртуализация возможна исключительно при условии правильной комбинации оборудования и программного обеспечения. Например, она была невозможной ни в серии IBM System/360, за исключением IBM System/360-67, ни в ранних IBM System/370, пока IBM не добавила оборудование виртуальной памяти в своих System/370 в 1972 г.
Мемоизация (запоминание, от англ. memoization (англ.) в программировании) — сохранение результатов выполнения функций для предотвращения повторных вычислений. Это один из способов оптимизации, применяемый для увеличения скорости выполнения компьютерных программ. Перед вызовом функции проверяется, вызывалась ли функция ранее...