Lingua Franca Pattern

Lingua Franca

Many systems need to translate information between different representations. For example, financial systems must translate values between different currencies, middleware must translate function or method calls between different languages and diplomatic institutions such as the United Nations ( or the European Parliament ( must translate between the different natural languages used by their participants.

The cost of translation becomes unsupportable with large numbers of representations if representations are translated directly from one to the other.

This is because the number of translations increases as the square of the number of representations. E.g. With N representations, each requires N-1 translations, or N^2 -N total.


Translate between native representations and a single common representation, or Lingua Franca

To translate information between two representations, first translate it from the source representation into the Lingua Franca, and then from the Lingua Franca into the target representation.

With a Lingua Franca, the cost of translation increases linearly with the number of representations. Each representation needs only be translated to/from the Lingua Franca.

However, a Lingua Franca reduces the accuracy of translation. Because two translation steps are required, errors or inaccuracies in translation are more likely, or can be exacerbated by the additional step. For example, rounding errors may occur in each translation step.

Furthermore, The Lingua Franca may not be able to express all constructs of all representations and so its use may limit information to the lowest common denominator of all representations. For example, CORBA IDL only allows the definition of simple tree structured data types; although implementation languages may support graph structured data with aliasing and pointers into the middle of nodes, these structures cannot be expressed in IDL.

Known uses include: These are examples of potential uses... can someone document concrete examples of these? DictionaryDefinition: "Lingua Franca" is an Italian phrase that literally means "Frankish Language"; according to Merriam-Webster's dictionary, it was originally "a common language consisting of Italian mixed with French, Spanish, Greek, and Arabic that was formerly spoken in Mediterranean ports." Introduced into English in 1619.

This pattern was originally written up as paper by BrianFoote and DonRoberts, available from
The history of Latin as the LinguaFranca of the CatholicChurch is spotty, at best. For example, there are numerous reports from the Middle Ages of undereducated rural priests who, knowing almost no Latin, were mangling the Gospels and passing the misinterpretations on to their parishioners.

Of course, translation between computer formats is almost always simpler than between human languages.

EditText of this page (last edited August 5, 2007) or FindPage with title or text search