Communications of the ACM
Proceedings of an ACM conference on Language design for reliable software
SIMULA 67 common base language, (Norwegian Computing Center. Publication)
SIMULA 67 common base language, (Norwegian Computing Center. Publication)
ISSTA '93 Proceedings of the 1993 ACM SIGSOFT international symposium on Software testing and analysis
ACM SIGPLAN Notices
The Boyer benchmark meets linear logic
ACM SIGPLAN Lisp Pointers
Linear logic and permutation stacks—the Forth shall be first
ACM SIGARCH Computer Architecture News - Special issue: panel sessions of the 1991 workshop on multithreaded computers
Sparse polynomials and linear logic
ACM SIGSAM Bulletin
Aspect: detecting bugs with abstract dependences
ACM Transactions on Software Engineering and Methodology (TOSEM)
Point/counterpoint: do programmers need seatbelts?
ACM SIGPLAN Notices
Point: do programmers need seatbelts?
ACM SIGPLAN Notices
NIL: a high-level language for distributed systems programming
IBM Systems Journal
Viewing Ada from a process model perspective
SIGAda '85 Proceedings of the 1985 annual ACM SIGAda international conference on Ada
Extending Typestate Checking Using Conditional Liveness Analysis
IEEE Transactions on Software Engineering
NIL: An integrated language and system for distributed programming
Proceedings of the 1983 ACM SIGPLAN symposium on Programming language issues in software systems
The NIL distributed systems programming language: a status report
ACM SIGPLAN Notices
NIL: a high-level language for distributed systems programming
IBM Systems Journal
A new programming methodology for long-lived software systems
IBM Journal of Research and Development
Verifying safety properties of concurrent heap-manipulating programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the ACM SIGPLAN 2014 Workshop on Programming Languages meets Program Verification
Hi-index | 0.00 |
This paper discusses features of a secure systems programming language designed and implemented at IBM's Watson Research Lab. Two features of the language design were instrumental in permitting security to be enforced with minimum run-time cost: (1) Language constructs (e.g. pointer variables) which could result in aliasing were removed from the programmer's direct control and replaced by higher level primitive types; and (2) traditional strong type checking was enhanced with typestate checking, a new mechanism in which the compiler guarantees that for all execution paths, the sequence of operations on each variable obeys a finite state grammar associated with that variable's type. Examples are given to illustrate the application of these mechanisms.