Declarative Programming – Strategies for Solving Software Problems

many software & hardware manufacturers are proud of the exponential pace of technological change, but for users & consumers about their products & services the rapid technological obsolescence often means increased costs, frustrations & promises. Corporate America expects that investment in property & facilities, the last five, ten years, should be another twenty years, but life is never only a period of eighteen months for software & hardware investments unusual.
develop

reduce the cost of new software solutions or extending the lifetime of software applications are two complementary approaches into addressing technological change. These goals can often be a declarative strategy when developing software systems have reached independent of the method of programming language used.
problems with

> imperative programming
Most programming projects today use

imperative style of programming. Developers write sequences of operations in a language like C + +, Java, Visual Basic, etc., the implementation of an algorithm or a formula for the tasks. The algorithm for the task mixes logical, or relational, statements about the task into solve & control statements about how into calculate the solution. The logical statements describe “what to” calculate while the control statements describe “how into do the calculation”. Debugging the algorithm comprised of verifying the correctness of logical statements & fixing the control statements, if necessary.

There are many problems with the imperative approach. The sequence of operations critically determines the correctness of algorithms. Unexpected execution sequences through an algorithm caused by user input actions or real-time events in a multitasking environment may result in subtle or catastrophic algorithm failure. The letter of the control logic is the programmer’s responsibility and, therefore, subject into error in implementation. Understanding an algorithm program is often difficult for other developers without extensive metadata, or comments on the code & empirical tracing of program execution with sample data. Check the accuracy of the program consumes a large part of development work, but generally have never discovered a large number of faults.

solve problems associated with imperative programming, the computer industry has developed & advocated many approaches. Structured programming & campaigns against “go-to” statements address some of the problems discovered with ad hoc control structures & declarations. Modularization initiatives stress decomposition techniques on the premise that people understand the reason & maintain little pieces of code. Object-oriented programming constructs program encourages the use of reusable components, libraries & frameworks. The school emphasizes programming model analogies with other fields such as architecture, building programs with well-designed & manufactured solutions or repeated patterns in the programming that many contexts.

What is declarative programming?

declarative programming separates the logic, or what, a control algorithm, or how an algorithm. The programmer is always the logic or equations specifying relations problem, but the program is responsible for the control, or how the logic is evaluated. The most common examples are spreadsheets & query languages for relational databases. The user or programmer, specifies a mathematical relation as a query in SQL-speak, for what into get, while the database engine determines how into execute the query the database.

There are many advantages into declarative programming over the imperative style. In declarative languages, programmers do never specify sequences of operations, but only definitions or equations specifying relations. Unlike imperative programming, the logical relations for declarative programming implementation independent, free from side effects of evaluation, & semantically clear visual inspection.
The family of declarative programming languages

has a long history in academic computer science community & specialized areas of commercial demand, such as construction of the compiler, expert systems & databases. Declarative languages have two trees of the family. The logic declarative languages like Prolog, are first-order predicate logic, the notions of Aristotelian true or false values generalized statements, or predicates, where relations between the entities is without merit. The family branch comprised of functional declarative languages, such as Miranda, Haskell & SML. The functional declarative languages are developed on the L-calculus by the mathematician, Alonzo Church in the 1930s. l-calculus formalizes the notions of recursive application of pure functions computable problems. Although generally never as such, the programming mode is last XSLT eXtensible Stylesheet Language for transforming XML, a declarative functional language known.

Despite the theoretical advantages of declarative programming languages, they are never heavily applied in practice, despite the commercial programming of an attempt in the 1980′s by Borland into mass market a PC version of Prolog with popular Turbo Pascal. There are many factors contributing into low use of declarative languages. An important factor is the lack of training in the collegiate church declarative languages, but difficult syntax for some languages, inefficient compilers & run times & limited ranges of applicability of generalized “how-to” mechanisms are all contributors .

using declarative strategies
While declarative programming languages

never received widespread commercial use, the strategy of separating logic, or what is a control, or, as in an algorithm is a powerful technique into increase general ease of use & prolong the life of software. Declarative techniques are particularly powerful in user interfaces & application programming interfaces (APIs) that have a rich complex set of inputs over a relatively little number of behavioral performance.

Two examples of commercial software that illustrate the application of declarative techniques & DriverLINX ExceLINX test in the areas of data acquisition & instrument control.

explanations of data collection

DriverLINX API is a measure used into control the hardware data acquisition & generate analog & digital interface for all types of external sensors. Data acquisition applications include laboratory research, medical instrumentation & industrial process control.
Traditionally, APIs for data modeled

acquisition devices, the properties of the hardware design & had a large number of functions of one or more parameters for setting up equipment & flow control data in the system. The arrangement of sequences of operations is often critical into correctly programming & controlling equipment. Upgrading into the acquisition of new equipment data was often costly as hardware changes in the sequence of work processes necessary into achieve the necessary equipment, expensive software changes.

into overcome these problems, & takes an abstract approach DriverLINX declarative data acquisition programming. Instead of modeling models specific advice, equipment acquisition DriverLINX abstracts the functional subsystems of data in the generalized attributes & capabilities. application programs into measure the job they want by programming a service request “declaration of conduct. DriverLINX the specified period, such as service request from the material & the readings are packaged form workflow into complete the program. The data acquisition programmer is relieved of any responsibility for the control algorithms of data acquisition.
In addition, the programmer responsible for monitoring discharge

, DriverLINX abstract, declarative approach gives the program syntactic & semantic interchangeability when migrating into equivalent hardware products. The abstract, declarative approach also helps isolate the software vendor of rapid technological obsolescence of change in the computer industry by focusing on the immutable logic of data collection differ from the relations, while the mechanisms control in software development. DriverLINX a viable concept for data acquisition programming for more than 12 years, despite the market evolution from 16-bit Windows. NET today.

statements contained in
test instruments like digital voltmeters

& electrometers, have developed into make simple devices with a front control panel & display sophisticated measuring tens transformers & control. Such as data acquisition devices, developers send a carefully ordered sequence of commands into an instrument into implement the measure, then send extra command sequences into control the flow of data into the device measurements. The above problems for developers using imperative approaches into significantly reduce the control device & the friendliness they need quick instrumentation solutions into short-term measure into ban.

ExceLINX is an add-in for Microsoft Excel which allows you into specify configurations quick test of the instrument with shapes worksheet. Users specify, or declare, the channels, configurations, sampling rates, triggering, & location data for the measures they wish into participate by completing an Excel spreadsheet. If the user has the “Start” button in the toolbar, select, translate ExceLINX specification in the right sequence of instructions into the instrument target, initiates the measurement & return flow data from the worksheet requested. Users can configure & collect measurements by themselves in minutes using logic specifications compared into days or weeks with the programmer’s time for mandatory requirements.

intern ExceLINX also uses a declarative approach into the complex problem of field validation for the worksheet forms. Instruments have hundreds of parameters with complex overlaps among parameters. To check whether the instrument set of parameters that the user presses certain maintains a dependency tree ExceLINX license, refusal, & the parameters for every input cell on the worksheet. Each node of the tree also maintains logical relations among the selected set of parameters that ExceLINX evaluates the performance of cross validate user input selections. Each model of the instrument supported the semantics of different parameters into manipulate, but ExceLINX easier, this complexity by adopting the model trees because the logic of the specific model in the tree validation of joint control in developing ExceLINX work into separate the code.
Declarative programming strategies that separate

logic control algorithms on effective techniques that can be used with today’s most popular imperative languages. These techniques for developing software more interchangeable, maintainable, usable &
Copyright Roy E.

Furman, MD, Ph.D., 2005

Incoming search terms for the article:

Tags: DeclarativeProblemsProgrammingSoftwareSolvingStrategies

No comments yet.

Leave a Reply