Develpreneur: Become a Better Developer and Entrepreneur
Software Design - The Interpreter Pattern
02 Jan 2019
In this episode, we look at a behavioral pattern that is key for solving certain types of problems. These happen to be grammar and translation applications. Thus, the interpreter pattern gives us a way to do precisely that. We use this to interpret text into a set of commands. The Interpreter Pattern Defined As always, we will start with the "Gang of Four" intent to set the stage for our discussion. "Given a language, define a representation for its grammar along with an interpreter that uses the representation to interpret sentences in the language." This makes complete sense if you understand language grammars. For the rest of us, let's break this down a little bit through an example. We will assume you are reading a text file where each line is a value and either add, update, or delete. When you process it, you can break it down into a value and a command. The most simple interpreter would be able to determine which is which for a given line then translate into something the application understands. This may be a conversion to output or could be a method call and fill out parameters. Applying The Pattern There are a few different ways to implement this pattern, but they tend to boil down to a set of classes that form the grammar. The classes may all implement a specific interface (for a translate or calculate method). However, that is not required, just helpful. The trick in this pattern is to make sure that the grammar classes are interchangeable enough to support the language. Think about mathematical expressions as an example. The interpreter must be able to support literals and operators in any order as well as nested. The result will always be a tree (ouch flashbacks of diagramming sentences comes to mind). Java, PHP, C#, etc. The interpreter pattern is supported in all languages as a class and some use of an interface. However, some environments provide a dynamic assessment of values and code often referred to as reflection. When a language supports this feature, then it can allow for far more complex grammars. On the other hand, those can become difficult to write and debug. Although this is not one of the more common patterns, it is one that can be critical to a solution, and proper use of this can help advance your career.
No persons identified in this episode.
This episode hasn't been transcribed yet
Help us prioritize this episode for transcription by upvoting it.
Popular episodes get transcribed faster
Other recent transcribed episodes
Transcribed and ready to explore now
3ª PARTE | 17 DIC 2025 | EL PARTIDAZO DE COPE
01 Jan 1970
El Partidazo de COPE
13:00H | 21 DIC 2025 | Fin de Semana
01 Jan 1970
Fin de Semana
12:00H | 21 DIC 2025 | Fin de Semana
01 Jan 1970
Fin de Semana
10:00H | 21 DIC 2025 | Fin de Semana
01 Jan 1970
Fin de Semana
13:00H | 20 DIC 2025 | Fin de Semana
01 Jan 1970
Fin de Semana
12:00H | 20 DIC 2025 | Fin de Semana
01 Jan 1970
Fin de Semana