Language-oriented programming (LOP) is a type of programming language that is defined by the user, depending on the domain for which he is programming. The domain is important in defining language-oriented programming, so it must be specifically stated when the user begins using this language. LOP normally is based on a larger type of programming language, but this is not always the case. LOP is made specifically for a domain and has many customizable areas, so this language usually is poor at scaling up for large and complex problems. Before this language is usable, the user also must define and compile the language manually.
In a broad sense, programming languages can be separated into either domain-specific or general languages. Language-oriented programming belongs to the former, meaning it must be specified for a certain domain. This domain refers to where the program will be used and what type of problems the language will work with and solve. While this is not as versatile as a general language, it often makes programming simpler to complete.
The majority of language-oriented programming languages are first based on a larger general programming language. This is because it is easier to build a language that is based on another, and a user familiar with the general language should find it easier to start with LOP. The primary difference between LOP and the original general language is the tags, and many aspects of the programming language are based on tags the user specifies that he wants to use, morphing the language to the user’s specifications.
Being domain-specific and based on the user’s specification presents many advantages, but one of the disadvantages of this system is the lack of scaling. When it comes to smaller problems, language-oriented programming should have no problem working with and solving the issue. At the same time, larger problems typically are more intensive than this language is able to handle, and it usually is better to stick with a larger general language if scaling is required.
Another problem with language-oriented programming is the work needed before the language can be used. A programming language normally is available for use with little or no work, but LOP requires that the user specify tags and sections, which can take time. The larger issue is that the user will need to build a custom compiler to make the programming language work, and this can be difficult for a new user.