В теории языков программирования, как подразделе информатики, изучают проектирование, реализацию, анализ и классификацию языков программирования в целом, а также изучают отдельные элементы языков. Эта область информатики, с одной стороны, в большой степени полагается на достижения следующих наук, с другой стороны, сама оказывает большое влияние на развитие таких наук как математика, программная инженерия и лингвистика. Теория языков программирования активно развивается, многие научные журналы посвящены этому направлению.
Теория типов | Проектирование компилятора[en] | Язык программирования |
Формальные методы
Формальные методы — это своего рода математический подход, предназначенный для спецификации, разработки и верификации программных и аппаратных систем. Использование формальных методов при разработке программного и аппаратного обеспечения мотивировано расчётом на то, что, как и в других инженерных дисциплинах, надлежащий математический анализ обеспечит надёжность и устойчивость проекта. Формальные методы являются важной теоретической основой при разработке программного обеспечения, особенно в случаях, когда дело касается надёжности или безопасности. Формальные методы являются полезным дополнением к тестированию программного обеспечения, так как они помогают избежать ошибок, а также являются основой для тестирования. Для их широкого использования требуется разработка специального инструментария. Однако высокая стоимость использования формальных методов указывает на то, что они, как правило, используются только при разработке высокоинтегрированных и жизненно-важных систем[en], где надёжность и безопасность имеют первостепенное значение. Формальные методы имеют довольно широкое применение: от теоретических основ информатики (в частности, логики вычислений, формальных языков, теории автоматов, программ и семантики) до систем типов и проблем алгебраических типов данных в задачах спецификации и верификации программного и аппаратного обеспечения.
Прикладная информатика
Прикладная информатика направлена на выявление определённых понятий в области информатики, которые могут быть использованы для решения стандартных задач, таких, как хранение и управление информацией с помощью структур данных, построение алгоритмов, модели решения общих или сложных задач. Например, алгоритм сортировки и быстрое преобразования Фурье.
Помимо этого, прикладная информатика объединяет конкретные примеры применения информатики в тех или иных областях жизни, науки или производства, например, в бизнес-информатике, геоинформатике, компьютерной лингвистике,биоинформатике, хемоинформатике и т. д.[ уточнить ]
Одной из центральных тем прикладной информатики является инженерия программного обеспечения (англ. Software Engineering). Речь идёт о систематическом процессе разработок от этапа формирования идеи до создания готового программного обеспечения. Прикладная информатика также связаны с созданием необходимого инструментария для разработки программного обеспечения, например, разработка компиляторов.
Искусственный интеллект
Это область информатики, неразрывно связанная с такими целеполагающими процессами, как решение задач, принятие решений, адаптация к окружающим условиям, обучение и коммуникация, присущими и людям, и животным. Возникновение искусственного интеллекта (ИИ) связано с кибернетикой и ведёт свой отсчёт с Дартмутской Конференции (1956). Исследования в области искусственного интеллекта (AI) с необходимостью были междисциплинарными, и основывались на таких науках, как: прикладная математика, математическая логика, семиотика, электротехника, философия сознания, нейрофизиология и социальный интеллект[en]. У обывателей искусственный интеллект ассоциируется в первую очередь с робототехникой, но кроме этого ИИ является неотъемлемой частью разработки программного обеспечения в самых разных областях. Отправной точкой в конце 1940-х годов стал вопрос Алана Тьюринга: «Могут ли компьютеры думать?», и этот вопрос остаётся фактически без ответа, хотя «тест Тьюринга» до сих пор используется для оценки результатов работы компьютера в масштабах человеческого интеллекта.
Машинное обучение | Компьютерное зрение | Обработка изображений | Теория распознавания образов |
Когнитивистика | Интеллектуальный анализ данных | Эволюционное моделирование | Информационный поиск |
Представление знаний | Обработка естественного языка | Робототехника | Компьютерный анализ медицинских изображений[en] |
Архитектура компьютера и компьютерная инженерия
Компьютерная архитектура — это наука, исследующая концепции построения компьютеров. Здесь определяется и оптимизируется взаимодействие микропроцессора, памяти и периферийных контроллеров. Архитектура компьютера, или организация цифрового компьютера, является концептуальной структурой компьютерной системы. Она сосредоточена в основном на способе, при котором центральный процессор выполняет внутренние операции и обращается к адресам в памяти[50]. Она часто включает в себя дисциплины вычислительной техники и электротехники, выбор и соединение аппаратных компонентов для создания компьютеров, которые удовлетворяют функциональным, производительным и финансовым целям.
Компьютерная инженерия связана с аппаратной частью вычислительной техники, например основами микропроцессорной техники, компьютерных архитектур и распределенных систем. Таким образом, она обеспечивает связь с электротехникой.
Булева алгебра | Микроархитектура | Многопроцессорность | |
Операционная система | Компьютерная сеть | База данных | Информационная безопасность |
Повсеместные вычисления[en] | Архитектура системы | Проектирование компилятора[en] | Языки программирования |
Анализ производительности компьютера
Анализ производительности компьютера — это изучение работы компьютеров с целяю повышения пропускной способности[en], управления временем отклика, эффективного использования ресурсов, устранения узких мест и прогнозирования производительности при предполагаемых пиковых нагрузках[51].
Компьютерная графика и визуализация
Компьютерная графика представляет собой изучение цифрового визуального содержания и включает в себя синтез и манипуляцию данными изображения. Это направление связано со многими другими областями информатики, в том числе скомпьютерным зрением, обработкой изображений и вычислительной геометрией, также оно активно применяется в области спецэффектов и видео-игр.
Компьютерная безопасность и криптография
Компьютерная безопасность — это направление исследований компьютерных технологий, нацеленных на защиту информации от несанкционированного доступа, разрушения или модификацию при сохранении доступности и удобства использования системы для предполагаемых пользователей. Криптография же является наукой о шифровании и дешифровании информации. Современная криптография в значительной степени связана с информатикой, поскольку при разработке и использовании многих алгоритмов шифрования и дешифрования учитывается их вычислительная сложность.