Abstract
Signature matching is a method for organizing, navigating through, and retrieving from software libraries. We consider two kinds of software library components—functions and modules—and hence two kinds of matching—function matching and module matching. The signature of a function is simply its type; the signature of a module is a multiset of user-defined types and a multiset of function signatures. For both functions and modules, we consider not just exact match but also various flavors of relaxed match. We describe various applications of signature matching as a tool for using software libraries, inspired by the use of our implementation of a function signature matcher written in Standard ML.
- ~AGRESTi, W. W. AND MCGARRY, F.E. 1987. The Minnowbrook workshop on software reuse: A ~summary report. In Tutorml: Software Reuse: Emerging- Technology, W. Tracz, Ed. IEEE ~Computer Society Press, Los Alamitos~ Calif. Google Scholar
- ~A~NOLD, S. P. AND STEPOWA~, S.L. 1987. The REUSE system: Cataloguing and retrieval of ~reusable software. In Tutorml: Software Reuse: Emerging Technology, W. Tracz, Ed IEEE ~Computer Society Press~ Los Alamitos, Calif. Google Scholar
- ~ATT. 1993 The Standard ML of New Jersey hbrary reference manual. Tech. Rep., AT & T Bell ~Laboratories, Murray Hill, N.J.Google Scholar
- ~BERRY, D. 1991. The Edinburgh SML Library Tech Rep ECS-LFCS-91-148, Univ of Edin- ~burgh, U.K. April.Google Scholar
- ~BI~GERSTAFF, T J. AND PERLiS, A. J., Eds. 1989. Software Reusability, VoI. 1, Concepts and ~Models. ACM Press, New York. Google Scholar
- ~BISCHOFBERGER, W.a. 1992 Sniff--a pragmatic approach to a C ++ programming environ- ~ment. In USENIX C++ Conference. USENIX Assoc., Berkeley, Cahf., 67 81.Google Scholar
- ~CONSENS, M., MENDELZON, A., AND RYMAN, A. 1992 Visualizing and querying software struc- ~tures. In Proceedings of the 14th I, ternational Conference on Software Engzneemng. IEEE ~Computer Society Press, Los Alamitos, Cahf., 138-156. Google Scholar
- ~DI COSMO, R. 1992 Type isomorph~sms in a type-assignment framework. In the 19th Annual ~Symposium on Principles of Programming Languages. ACM, New York, 200 210. Google Scholar
- ~FIELD, A. J. AND HARRISON, P. G. 1988. Functl. onal Programming. Addison-Wesley, Reading, ~Mass.Google Scholar
- ~FISCHER, B, KIEVERNAGEL, M., AND STRUCKMANN, W. 1994. VCR: A VDM-based software ~component retrieval tool. Tech. Rep. 94-08, Technical Univ. of Braunschweig, Germany Nov.Google Scholar
- ~FONTANA, M. AND NEATH, M. 1991. Checked out and long overdue: Experiences in the design of ~a C 4% class library. In USENIX C44- Conference. USENIX Assoc., Berkeley, Calif., 179-191.Google Scholar
- GARLanD, S. J. AND GUTTAG, J.V. 1991. A guide to LP, the Larch Prover. Rep. 82, DEC ~Sys~ems Research Center, Palo Alto, Calif. Dec.Google Scholar
- ~GUTTAG, J. ANn HORNING, J. 1993. Larch: Languages and Tools for Formal Specification. ~Springer-Verlag, New York. Google Scholar
- ~HELM., R. AND MAAREK, Y. S. 1991. Integrating information retrieval and domain specific ~approaches for browsing and retrieval in object-oriented class libraries. In OOPSLA Confer- ~ence Proceedings. ACM, New York, 47-61. Google Scholar
- ~JENG, J. J. AND CHENG, B. H.C. 1992. Formal methods applied to reuse. In Proceedings of the ~5th Workshop on Software Reuse.Google Scholar
- ~KATZ, S., RICHTEn, C. A., ANn THE, K.-S. 1987. A system for reusing partially interpreted ~schemas. In Proceedings of the 9th International Conference on Software Engineering IEEE ~Computer Society Press, Los Alamitos, Calif., 377-385. Google Scholar
- ~MAAR~K, Y. S., BERRY, D. M., AND KAISER, G.E. 1991. An information retrieval approach for ~automatically constructing software libraries. IEEE Trans. Softw. Eng. 8, 17 (Aug.), 800-813. Google Scholar
- ~MILl, A., MILI, R., AND MITTERMEIR, R. 1994. Storing and retrieving software components: A ~refinement-based approach. In Proceedings of the 16th International Conference on Software En~,~ineering. IEEE Computer Society Press, Los Alamitos, Calif. Google Scholar
- ~MILNEa, R. 1978. A theory of type polymorphism in programming J. Comput. Syst. Scf. 17, 3 ~(Dec.), 348-375.Google Scholar
- ~MILNI,m, R., TOFTE, M., AND HAaSna, R. 1990. The Definition of Standard ML. MIT Press, ~Cambridge, Mass. Google Scholar
- ~OSTERTA~, E., HENDLEa, J., PaIETO-DfAz, R, AND BRAUN, C. 1992. Computing similarity in a ~reuse library system: An AI-based approach. ACM Trans. Softw. Eng. Meth. 1, 3 (July), ~205-228. Google Scholar
- ~PAUL, S. AND PRAKASH, A. 1994. A framework for source code search using program patterns. ~IEEE Trans. Softw. Eng. 20, 6 (June), 463-475. Google Scholar
- ~PEARY, D.E. 1989. The Inscape environment. In Proceedings of the 11th International Confer- ~ence on Software Engineering. IEEE Computer Society Press, Los Alamitos, Calif., 2 12. Google Scholar
- ~PRIETO-DfAz, R. 1989. Classification of reusable modules. In Software Reusability. Vol 1, ~Cor~cepts and Models, T. J. Biggerstaff and A. J. Perlis, Eds. ACM Press, New York, 99-123. Google Scholar
- ~RAMAMOORTHY, C. V., Ed. 1984. IEEE Trans. Softw. Eng. SE-IO, 5 (Sept.).Google Scholar
- ~RITTRI, M. 1989. Using types as search keys in function libraries. In the Conference on ~Functional Programming Languages and Computer Architectures. Addison-Wesley~ Reading, ~Mass., 174-183. Google Scholar
- ~RITTRI, M. 1992. Retrieving library identifiers via equational matching of types. Tech. Rep. 65, ~Programming Methodology Group, Dept. of Computer Sciences, Chalmers Univ. of Technology ~and Univ. of Gi)teborg. (Reprinted with corrections May 1992).Google Scholar
- ~ROLLINS, E. J. AND WING, J.M. 1991. Specifications as search keys for software libraries. In ~Proceedings of the 8th International Conference on Logic Programming. MIT Press, Cambridge, ~Mass.Google Scholar
- ~RUNCIMAN, C. AND TOYN, I. 1989. Retrieving re-usable software components by polymorphic ~type. In the Conference on Functional Programming Languages and Computer Architectures. ~Addi~on-Wo~loy, R~ading, Mas~., 166-1%2. Google Scholar
- ~STRINGER-CALVERT, D. W.J. 1994. Signature matching for Ada software reuse. Master's thesis, ~Univ. of York, York, England.Google Scholar
- ~SNELTING, G., GROSCH, F.-J., AND SCHROEDER~ U. 1991. Inference-based support for program- ~ming in the large. In the 3rd European Software Engineering Conference, A. van Lamsweerde ~and A. Fugetta, Eds. Lecture Notes in Computer Science, vol. 550. Sprlnger-Verlag, New York, ~39(;-408. Google Scholar
- STALLMAN, R. 1986. GNU Emacs Manual. Free Software Foundation, Cambridge, Mass. Google Scholar
- ~STEELE, Cr. L., JR. 1984. Common L~sp, The Language. Digital Press, Maynard, Mass. Google Scholar
- TESLEa, L. 1981. The Smalltalk environment. BYTE 6, 8 (Aug.), 90-147.Google Scholar
- ~TARDtTI, D. AND ROLLINS, G. 1993. Local guide to Standard ML. Tech. Rep., CMU, Pittsburgh, ~Pa. March.Google Scholar
- ~W~NG, J. M, ROLLINS, E., AND ZAREMSKI, A. M. 1993. Thoughts on a Larch/ML and a new ~application for LP. In the 1st International Workshop on Larch, U. Martin and J. M. Wing, Eds. ~Springer-Verlag, New York. Google Scholar
- ~YELLIN, D. M. AND STROM~ R. E 1994. Interfaces, protocols and the semi-automatic construc- ~tion of software adaptors. In OOPSLA Con/~rence Proceedings SIGPLAN Not. 29, 10 (Oct.), ~176-190. Google Scholar
- ~ZAREMSKI, A. M. A~D WING, J. M. 1995. Specification matching of software components. In ~Proceedings of SIGSOFT '95: 3rd ACM SIGSOFT Symposium on the Foundations of Software ~Engineering. ACM, New York. To be published. Google Scholar
Recommendations
Efficient signature matching with multiple alphabet compression tables
SecureComm '08: Proceedings of the 4th international conference on Security and privacy in communication netowrksSignature matching is a performance critical operation in intrusion prevention systems. Modern systems express signatures as regular expressions and use Deterministic Finite Automata (DFAs) to efficiently match them against the input. In principle, DFAs ...
Signature matching: a key to reuse
Software reuse is only effective if it is easier to locate (and appropriately modify) a reusable component than to write it from scratch. We present signature matching as a method for achieving this goal by using signature information easily derived ...
Signature matching: a key to reuse
SIGSOFT '93: Proceedings of the 1st ACM SIGSOFT symposium on Foundations of software engineeringSoftware reuse is only effective if it is easier to locate (and appropriately modify) a reusable component than to write it from scratch. We present signature matching as a method for achieving this goal by using signature information easily derived ...
Comments