Text compression
i486 microprocessor programmer's reference manual
i486 microprocessor programmer's reference manual
The SPARC architecture manual: version 8
The SPARC architecture manual: version 8
A retargetable compiler for ANSI C
ACM SIGPLAN Notices
Systems programming with Modula-3
Systems programming with Modula-3
BURG: fast optimal instruction selection and tree parsing
ACM SIGPLAN Notices
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Optimally profiling and tracing programs
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A retargetable debugger
Correctness of trap-based breakpoint implementations
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Evolution of the meta-assembly program
Communications of the ACM
The ICON Programming Language, 2nd Ed.
The ICON Programming Language, 2nd Ed.
Literate Programming Simplified
IEEE Software
Automatic generation of assemblers.
Automatic generation of assemblers.
Computer structures: Readings and examples (McGraw-Hill computer science series)
Computer structures: Readings and examples (McGraw-Hill computer science series)
Simple and effective link-time optimization of Modula-3 programs
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
VCODE: a retargetable, extensible, very fast dynamic code generation system
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Relocating machine instructions by currying
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
DPF: fast, flexible message demultiplexing using dynamic code generation
Conference proceedings on Applications, technologies, architectures, and protocols for computer communications
Automatic checking of instruction specifications
ICSE '97 Proceedings of the 19th international conference on Software engineering
A unified formal model of ISA and FSMD
CODES '99 Proceedings of the seventh international workshop on Hardware/software codesign
Teapot: A Domain-Specific Language for Writing Cache Coherence Protocols
IEEE Transactions on Software Engineering
Machine-adaptable dynamic binary translation
DYNAMO '00 Proceedings of the ACM SIGPLAN workshop on Dynamic and adaptive compilation and optimization
Facile: a language and compiler for high-performance processor simulators
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Generating Decision Trees for Decoding Binaries
OM '01 Proceedings of the 2001 ACM SIGPLAN workshop on Optimization of middleware and distributed systems
Proceedings of the 39th annual Design Automation Conference
Pragmatic Aspects of Reusable Program Generators
SAIG '00 Proceedings of the International Workshop on Semantics, Applications, and Implementation of Program Generation
Reverse-Engineering Instruction Encodings
Proceedings of the General Track: 2002 USENIX Annual Technical Conference
A brief history of just-in-time
ACM Computing Surveys (CSUR)
Pragmatic aspects of reusable program generators
Journal of Functional Programming
Evaluation of scheduling and allocation algorithms while mapping assembly code onto FPGAs
Proceedings of the 14th ACM Great Lakes symposium on VLSI
Automatic translation of software binaries onto FPGAs
Proceedings of the 41st annual Design Automation Conference
Dynamic binary translation using run-time feedbacks
Science of Computer Programming - Software analysis, evolution and re-engineering
The Project Maxwell assembler system
PPPJ '06 Proceedings of the 4th international symposium on Principles and practice of programming in Java
Devil: an IDL for hardware programming
OSDI'00 Proceedings of the 4th conference on Symposium on Operating System Design & Implementation - Volume 4
Experience with a language for writing coherence protocols
DSL'97 Proceedings of the Conference on Domain-Specific Languages on Conference on Domain-Specific Languages (DSL), 1997
An open-source binary utility generator
ACM Transactions on Design Automation of Electronic Systems (TODAES)
An overview of a compiler for mapping software binaries to hardware
IEEE Transactions on Very Large Scale Integration (VLSI) Systems
Automatically generating instruction selectors using declarative machine descriptions
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Generation of control and data flow graphs from scheduled and pipelined assembly code
LCPC'05 Proceedings of the 18th international conference on Languages and Compilers for Parallel Computing
Building the world from first principles: declarative machine descriptions and compiler construction
PADL'05 Proceedings of the 7th international conference on Practical Aspects of Declarative Languages
Design of an automatically generated retargetable decompiler
CSCC'11 Proceedings of the 2nd international conference on Circuits, Systems, Communications & Computers
Hi-index | 0.00 |
The New Jersey Machine-Code Toolkit helps programmers write applications that process machine code. Applications that use the toolkit are written at an assembly-language level of abstraction, but they recognize and emit binary. Guided by a short instruction-set specification, the toolkit generates all the bit-manipulating code. The toolkit's specification language uses four concepts: fields and tokens describe parts of instructions, patterns describe binary encodings of instructions or groups of instructions, and constructors map between the assembly-language and binary levels. These concepts are suitable for describing both CISC and RISC machines; we have written specifications for the MIPS R3000, SPARC, and Intel 486 instruction sets. We have used the toolkit to help write two applications: a debugger and a linker. The toolkit generates efficient code; for example, the linker emits binary up to 15% faster than it emits assembly language, making it 1.7-2 times faster to produce an a.out directly than by using the assembler.