Developing a Complex External DSL. Part 2.
Design and Development
Designing and developing any complex language is a big challenge. Even if you have a good idea of what you want out of a language, working out the details of a complex language can bend your mind. It seems like just about the time you think you’ve got all the language features identified and syntax worked out, your future user base (including yourself) thinks of something new. This is many times even more so the case than when designing a general purpose language.
Of course, like anything useful in our field, a language will undergo enhancement after enhancement over time. One thing we need to do is make sure that we can support those enhancements over time. The language design, therefore, needs to embrace change. Further, a good language design will make developing the language far easier.
I mention a wide range of language syntaxes in this section, including graphical and textual. However, I must limit my scope to just one syntax type in order to keep this article to a reasonable length. Thus, I have chosen to focus on textual DSLs. A textual DSL is easily understood, and is likely applicable even when a graphical DSL is in use (see why below).
Syntax Design For Now and Later
Fortunately most language designers don’t wake up in the morning and say “I’m going to create a language today, and I wonder what it will be.” If we are considering the development of a language we have a good idea why. This is important because if we really don’t have a clear vision for the language our resulting design will be just as weak. So an important first step in language design is to know a lot about what you want your language to do.
Developing a Complex External DSL. Part 1.
The use of a domain-specific language, or DSL, is becoming a realistic and even necessary solution for software developers on all sorts of software development projects. You’ve heard about DSLs, and you may know that DSLs are divided into a few different styles, internal and external. But what is an internal DSL and external DSL? When would you decide to use one or the other? And, primarily, how would you go about developing a complex external DSL? This article answers these questions, with a focus on developing a complex external DSL.
Defining Domain-Specific Language
A domain-specific language (DSL) is a computer language that is developed to specialize in addressing the needs of a given problem domain. The domain itself could be many things. It could be specific to an industry, such as insurance, education, aerospace, medicine, etc., or to a technology or methodology, such as JEE, .NET, database, services, messaging, architecture, or domain-driven design.
The reason I would develop a DSL is to make dealing with a set of challenges in a domain I am working in more elegant and easier to deal with. That’s because the language I create will be just what I need to address my unique set of challenges, and no more than that. And of course, if I provide my language for others to use it may have to broaden a bit to address what they need, but still nothing more. The effort has the goal of making it feel more natural to use the DSL than to use a general purpose programming language or some other non-targeted tool.
Dell recalls 35,000 notebook batteries!!!
Dell on Friday announced a recall of about 22,000 notebook computer batteries sold in the United States and an additional 13,000 abroad.
![]()
The 35,000 recalled batteries were sold with several models of Latitude and Inspiron machines and Precision mobile workstations between Oct. 5, 2004, and Oct. 13, 2005.
Manufactured in Japan or China, they were also sold on their own as replacement batteries–at a cost of between $99 and $179–during that time.
The U.S. Consumer Product Safety Commission, UK Web Hosting and Dell warned consumers to stop using the products immediately unless otherwise instructed.
The Round Rock, Texas-based online currency trading system company has learned of three incidents of the recalled batteries overheating, resulting in damage to a tabletop and a desktop, and in “minor damage to personal effects,” but no reported injuries.
Dell customers should contact the company and have the battery’s identification number available in order to determine whether it is subject to recall. If the battery qualifies, Dell said it would supply a free replacement.
More information is available at a Dell Web page.
The latest warnings appear to be far from the scale of a massive recall of Dell notebook power adapters last year, which sought to reel in about 4.4 million adapters sold worldwide.
In Florida, RFID system keeps case files under control
State attorney’s office integrates RFID tags with file-tracking system to follow active case files
The Florida State Attorney’s Office for the 15th Judicial Circuit in Palm Beach County takes on about 120,000 cases a year. “About 20,000 of those are felony cases,” said Dan Zinn, the office’s chief information officer. “That’s where the action is.”
And action was a problem. Keeping track of paper files as they moved through the office and the court system was a big job. If a file could not be found when it was needed in court, it could result in a hearing being delayed or even a case being thrown out.
SIDEBAR: Asset tracking systems: The simpler the better
“It’s not just tracking the files,” Zinn said. “It’s having control of a series of processes.”
His office has taken control of those processes by incorporating passive radio frequency identification tags in its case file labels, putting RFID readers throughout the four floors of office space, and integrating the technology with the office’s computerized file-tracking system.