So far we have only discussed foreign code as pieces of code loaded into a Prolog executable. This is often not the desired situation. Instead, people often want to create stand-alone executables, i.e. an application where Prolog is used as a component, accessed through the API described in the previous sections.