Deprecated: $wgMWOAuthSharedUserIDs=false is deprecated, set $wgMWOAuthSharedUserIDs=true, $wgMWOAuthSharedUserSource='local' instead [Called from MediaWiki\HookContainer\HookContainer::run in /var/www/html/w/includes/HookContainer/HookContainer.php at line 135] in /var/www/html/w/includes/Debug/MWDebug.php on line 372
Structuring transformational developments: A case study based on Earley's recognizer - MaRDI portal

Deprecated: Use of MediaWiki\Skin\SkinTemplate::injectLegacyMenusIntoPersonalTools was deprecated in Please make sure Skin option menus contains `user-menu` (and possibly `notifications`, `user-interface-preferences`, `user-page`) 1.46. [Called from MediaWiki\Skin\SkinTemplate::getPortletsTemplateData in /var/www/html/w/includes/Skin/SkinTemplate.php at line 691] in /var/www/html/w/includes/Debug/MWDebug.php on line 372

Deprecated: Use of MediaWiki\Skin\BaseTemplate::getPersonalTools was deprecated in 1.46 Call $this->getSkin()->getPersonalToolsForMakeListItem instead (T422975). [Called from Skins\Chameleon\Components\NavbarHorizontal\PersonalTools::getHtml in /var/www/html/w/skins/chameleon/src/Components/NavbarHorizontal/PersonalTools.php at line 66] in /var/www/html/w/includes/Debug/MWDebug.php on line 372

Deprecated: Use of QuickTemplate::(get/html/text/haveData) with parameter `personal_urls` was deprecated in MediaWiki Use content_navigation instead. [Called from MediaWiki\Skin\QuickTemplate::get in /var/www/html/w/includes/Skin/QuickTemplate.php at line 131] in /var/www/html/w/includes/Debug/MWDebug.php on line 372

Structuring transformational developments: A case study based on Earley's recognizer (Q792748)

From MaRDI portal





scientific article; zbMATH DE number 3854391
Language Label Description Also known as
English
Structuring transformational developments: A case study based on Earley's recognizer
scientific article; zbMATH DE number 3854391

    Statements

    Structuring transformational developments: A case study based on Earley's recognizer (English)
    0 references
    1984
    0 references
    ''Transformational programming'' characterizes a methodological approach to the (formal) development of correct algorithms from (descriptive) problem specifications by means of step-wise, (usually) user-guided application of correctness-preserving transformation rules. Although this approach prospered well in the last decade, and may be considered an established discipline in the field of programming methodology today, there are still a number of open problems. One of them concerns the exploration of principles in transformational developments and the development of appropriate notations for expressing these underlying principles in a transparent way, e.g. in order to make them suited for (human) communication. The paper was intended to contribute to solving this particular problem by presenting, as a substantial case-study, a complete transformational development of a non-trivial algorithm for recognizing context-free grammars, known as ''Earley's recognizer''. The entire development leads from the descriptive specification of the problem, as it is known from formal language theory, to an efficient procedural program, as it can be found in standard text-books on compiler construction. The underlying principles in this development are made visible by structuring the development into three, hierarchically ordered, conceptual levels: The top level indicates the major goals to be achieved, viz. - derivation of a recursive solution from the initial specification - improvement of the recursive solution (with respect to the next step) - transition to efficient procedural programs. The second level breaks each of these goals into a sequence of more refined subgoals, characterizes them, and gives the sequence of elementary transformations that allows to achieve the respective subgoals. The third level then deals with technical questions, e.g. with the formal verification of the applicability conditions of the elementary transformation rules, or the decomposition of a rule into a combination of more elementary ones. The paper is to be seen as a first attempt to solve the problem of expressing transformational developments in a more conceptual way while still giving enough detailed technical information to allow the validation of the development by an interested reader. Although there are certain aspects that will need improvement in order to come closer to a satisfactory solution to the above-stated problem, the paper may be considered as a basis for further research in this area.
    0 references
    programming methodology
    0 references
    transformational programming
    0 references
    formulation of transformational program developments
    0 references
    0 references

    Identifiers

    0 references
    0 references
    0 references
    0 references
    0 references
    0 references