В Linux/UNIX можно использовать POSIX dlopen
/ dlsym
/ dlerror
/ dlclose
функции для динамичного открытия совместно использованных библиотек, и получить доступ к символам (включая функции) они обеспечивают, видят страница справочника для деталей.
Это теоретические основы концепций, широко используемых в информатике и программировании, и их понимание поможет вам лучше понять, как их использовать (и каковы их пределы). Вы должны столкнуться с тремя основными из них, в порядке возрастания степени:
Понимание теории и ограничений этих различных вычислительных механизмов позволит вам лучше понять проблемы и программы и глубже задуматься о программировании.
Это было запрос о работе, опубликованный около года назад на одном из сайтов по обмену внештатными программистами, в котором, по сути, был запрос на программу, которая решила бы проблему остановки. Несколько человек ответили предложениями, сказав, что «понимают требования» и могут «начать немедленно». Невозможно было написать программу, отвечающую требованиям. Понимание теории вычислений позволяет вам не быть тем участником торгов, который публично демонстрирует, что он действительно не разбирается в вычислениях (и не понимает)
Конечные автоматы очень полезны для протоколов связи и для сопоставления строк с регулярными выражениями.
Автоматы используются в аппаратных и программных приложениях. Пожалуйста, прочтите раздел реализации здесь http://en.wikipedia.org/wiki/Finite-state_machine#Implementation
Также существует понятие программирования на основе автоматов. Пожалуйста, проверьте это http://en.wikipedia.org/wiki/Automata-based_programming
ура
Конечные автоматы, например, используются для синтаксического анализа формальных языков. Это означает, что конечные автоматы очень полезны при создании методов компилятора и интерпретатора.
Исторически конечный автомат показал, что многие проблемы могут быть решены с помощью очень простого автомата.
Попробуйте пройти курс компиляторов. Скорее всего, вы создадите компилятор или интерпретатор, использующий конечный автомат для реализации синтаксического анализатора рекурсивного спуска.
Каждый графический интерфейс, каждый рабочий процесс можно рассматривать как конечный автомат. Думайте о каждой странице как о состоянии и переходах, происходящих из-за определенных событий. Возможно, вы не сможете перейти к определенной странице или следующему этапу рабочего процесса, пока не будет выполнен ряд условий.
Например, для управления состояниями некоторых объектов с определенным жизненным циклом. Как пример: заказы в книжном магазине. Заказ может иметь следующие состояния: -приказал -оплаченный -Перевозка -done
и программа конечных автоматов знает, как одно состояние может быть изменено другим.
Конечный автомат - это тип конечного автомата (SM). Обычно SM используются для синтаксического анализа формальных языков .
Вы можете использовать в качестве формального языка многие объекты, а не только символы.
А обычный язык - это тип формального языка. Существуют теории, показывающие, какой тип SM лучше разбирать на обычном языке: http://en.wikipedia.org/wiki/Regular_language