Haskell overloading is DEXPTIME-complete
Information Processing Letters
Principal type schemes for functional programs with overloading and subtyping
TAPSOFT '93 Selected papers of the colloquium on Formal approaches of software engineering
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
A machine program for theorem-proving
Communications of the ACM
The Definition of Standard ML
Computers and Intractability: A Guide to the Theory of NP-Completeness
Computers and Intractability: A Guide to the Theory of NP-Completeness
Microarchitectural exploration with Liberty
Proceedings of the 35th annual ACM/IEEE international symposium on Microarchitecture
STOC '76 Proceedings of the eighth annual ACM symposium on Theory of computing
An Environment for Dynamic Component Composition for Efficient Co-Design
Proceedings of the conference on Design, automation and test in Europe
An extensible type system for component-based design
An extensible type system for component-based design
Typing abstractions and management in a component framework
ASP-DAC '03 Proceedings of the 2003 Asia and South Pacific Design Automation Conference
The Liberty Simulation Environment: A deliberate approach to high-level system modeling
ACM Transactions on Computer Systems (TOCS)
EURASIP Journal on Applied Signal Processing
IEEE Transactions on Very Large Scale Integration (VLSI) Systems
Logic and Program Semantics
Hi-index | 0.00 |
High-level hardware modeling is an essential, yet time-consuming, part of system design. However, effective component-based reuse in hardware modeling languages can reduce model construction time and enable the exploration of more design alternatives, leading to better designs. While component overloading and parametric polymorphism are critical for effective component-base reuse, no existing modeling language supports both. The lack of these features creates overhead for designers that discourages reuse, negating any benefits of reuse.This paper presents a type system which supports both component overloading and parametric polymorphism. It proves that performing type inference for any such system is NP-complete and presents a heuristic that works efficiently in practice. The result is a type system and type inference algorithm that can encourage reuse, reduce design specification time, and lead to better designs.