• DocumentCode
    1858847
  • Title

    Polymorphic components for monomorphic languages

  • Author

    Grosch, Franz-Josef ; Snelting, Gregor

  • Author_Institution
    Tech. Univ. Braunschweig, Germany
  • fYear
    1993
  • fDate
    24-26 Mar 1993
  • Firstpage
    47
  • Lastpage
    55
  • Abstract
    Most procedural programming languages, due to their restricted type systems, do not allow for polymorphic software components in the style of functional languages, although polymorphism greatly increases the potential for component reuse, while guaranteeing the security of strong typing. It is shown how to obtain polymorphic software components for ordinary languages like C or Modula-2. The method is based on generic type inference in a software component library. The source of polymorphism is the use of free (undeclared) names in a component. The analysis algorithm will infer signature schemes, which are analogous to type schemes in functional languages. Signature schemes can be used to check library consistency and make it possible to retrieve components by usage patterns
  • Keywords
    data structures; functional programming; high level languages; software reusability; subroutines; C; Modula-2; analysis algorithm; component reuse; functional languages; generic type inference; library consistency; monomorphic languages; polymorphic software components; polymorphism; procedural programming languages; restricted type systems; signature schemes; software component library; strong typing; usage patterns; Algorithm design and analysis; Computer languages; Error correction; Inference algorithms; Programming profession; Runtime; Security; Software algorithms; Software libraries; Software reusability;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Reusability, 1993. Proceedings Advances in Software Reuse., Selected Papers from the Second International Workshop on
  • Conference_Location
    Lucca
  • Print_ISBN
    0-8186-3130-9
  • Type

    conf

  • DOI
    10.1109/ASR.1993.291718
  • Filename
    291718