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