Skip to main content
added 557 characters in body
Source Link
Robert Harvey
  • 200.7k
  • 55
  • 470
  • 683

To derive a program means to write a formal specification, which is usually non-executable, and then apply mathematically correct rules in order to obtain an executable program satisfying that specification. That describes a compiler, basically.

Haskell is a programming language that uses mathematical rules to help you verify program correctness. It is a tool that helps you derive a program. You still have to perform the derivation process, within the confines of the programming language.

The notion that you are describing what things are, rather than how the computation is done, is what declarative vs. imperative programming means. Imperative programming is programming in the small, by specifying a recipe; a series of steps. Declarative programming is where you essentially tell the computer what you want, and it figures out how to get it done.

Declarative programming is characterized by referential transparency, mathematical correctness, the lack of side effects, laziness and concurrency; all of the things that Haskell excels in.

To derive a program means to write a formal specification, which is usually non-executable, and then apply mathematically correct rules in order to obtain an executable program satisfying that specification.

Haskell is a programming language that uses mathematical rules to help you verify program correctness. It is a tool that helps you derive a program. You still have to perform the derivation process.

To derive a program means to write a formal specification, which is usually non-executable, and then apply mathematically correct rules in order to obtain an executable program satisfying that specification. That describes a compiler, basically.

Haskell is a programming language that uses mathematical rules to help you verify program correctness. It is a tool that helps you derive a program. You still have to perform the derivation process, within the confines of the programming language.

The notion that you are describing what things are, rather than how the computation is done, is what declarative vs. imperative programming means. Imperative programming is programming in the small, by specifying a recipe; a series of steps. Declarative programming is where you essentially tell the computer what you want, and it figures out how to get it done.

Declarative programming is characterized by referential transparency, mathematical correctness, the lack of side effects, laziness and concurrency; all of the things that Haskell excels in.

Source Link
Robert Harvey
  • 200.7k
  • 55
  • 470
  • 683

To derive a program means to write a formal specification, which is usually non-executable, and then apply mathematically correct rules in order to obtain an executable program satisfying that specification.

Haskell is a programming language that uses mathematical rules to help you verify program correctness. It is a tool that helps you derive a program. You still have to perform the derivation process.