Learn More
Many tasks in software engineering can be characterized as source to source transformations. Design recovery, software restructuring, forward engineering, language translation, platform migration and code reuse can all be understood as transformations from one source text to another. TXL, the Tree Transformation Language, is a programming language and rapid(More)
In this paper we introduce a general, extensible diagrammatic syntax for expressing software architectures based on typed nodes and connections and formalized using set theory. The syntax provides a notion of abstraction corresponding to the concept of a subsystem, and exploits this notion in a general mechanism for pattern matching over architectures. We(More)
Recently there has been considerable work toward standardizing SEFs (software exchange formats) for interchange of information about source programs. An exchange format is a common textual form for data extracted from source programs and used by a variety of software analysis and visualization tools. An SEF can be further specified by a schema, analogous to(More)
We propose the new technique of physical-layer cryptography based on using a massive MIMO channel as a key between the sender and desired receiver, which need not be secret. The goal is for low-complexity encoding and decoding by the desired transmitter–receiver pair, whereas decoding by an eavesdropper is hard in terms of prohibitive complexity. The(More)
Although Service-Oriented Architecture (SOA) has become popular in recent years, the majority of legacy systems are still not SOA enabled. The increase in the amount of information that companies must handle has resulted in a considerable increase in the complexity of the legacy systems that store this information. While moving to a service-oriented(More)
While graph-based techniques show good results in finding exactly similar subgraphs in graphical models, they have great difficulty in finding near-miss matches. Text-based clone detectors, on the other hand, do very well with near-miss matching in source code. In this paper we introduce SIMONE, an adaptation of the mature text-based code clone detector(More)
Program comprehension tools extract, organize and analyze information about the design and implementation of software systems. Before tools can exchange information, they must share, at some level, the organization for the data exchanged. That is, they must share a schema. In this paper we examine the various ways in which schemas are represented and used(More)
JavaScript is a dynamic, weakly typed, multi-paradigm programming language that supports object-oriented, imperative, and functional programming styles. While web developers appreciate this flexibility when implementing complex and interactive web applications, this wide range of possible styles can hinder program comprehension and make maintenance(More)