A. Avizienis, The N-version approach to fault-tolerant software, IEEE Trans. Softw. Eng, vol.11, issue.12, pp.1491-1501, 1985.

S. Bhatkar and D. C. Duvarney, Efficient techniques for comprehensive protection from memory error exploits, 14th USENIX Security Symposium. USENIX Association, 2005.

J. Cai, P. Facon, F. Henglein, R. Paige, and E. Schonberg, Type analysis and data structure selection, Constructing Programs from Specifications, pp.126-164, 1991.

S. Chen, E. C. Sezer, P. Gauriar, and R. K. Iyer, Non-control-data attacks are realistic threats, 14th USENIX Security Symposium. USENIX, 2005.

F. B. Cohen, Operating system protection through program evolution, Computers and Security, vol.12, issue.6, pp.565-584, 1993.

S. Forrest, A. Somayaji, and D. H. Ackley, Building diverse computer systems, 6th Workshop on Hot Topics in Operating Systems (HotOS), pp.67-72, 1997.

R. Gautam and S. , Simplifying reductions, Conference Record of the 33rd ACM SIGPLAN-SIGACT Symposium on, pp.30-41, 2006.

C. Giuffrida, A. Kuijsten, and A. S. Tanenbaum, Enhanced operating system security through efficient and fine-grained address space randomization, 21st USENIX Security Symposium, pp.475-490, 2012.

M. Gorbovitski, Y. A. Liu, S. D. Stoller, and T. Rothamel, Composing transformations for instrumentation and optimization, Proceedings of the ACM SIGPLAN 2012 Workshop on Partial Evaluation and Program Manipulation, pp.53-62, 2012.

D. Goyal, A Language Theoretic Approach to Algorithms, 2000.

D. S. Hirschberg and J. B. Sinclair, Decentralized extrema-finding in circular configurations of processors, Communications of the ACM, vol.23, issue.11, pp.627-628, 1980.

A. Homescu, S. Brunthaler, P. Larsen, and M. Franz, Librando: transparent code randomization for just-in-time compilers, ACM Conference on Computer and Communications Security, pp.993-1004, 2013.

P. Hosek and C. Cadar, Varan the unbelievable: An efficient n-version execution framework, 20th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS'15), pp.339-353, 2015.

L. Lamport, Time, clocks, and the ordering of events in a distributed system, Communications of the ACM, vol.21, issue.7, pp.558-565, 1978.

L. Lamport, Paxos made simple. SIGACT News (Distributed Computing Column), vol.32, pp.51-58, 2001.

P. Larsen, A. Homescu, S. Brunthaler, and M. Franz, Sok: Automated software diversity, 2014 IEEE Symposium on Security and Privacy, pp.276-291, 2014.

Y. A. Liu, Logical clocks are not fair: What is fair? A case study of high-level language and optimization, Proceedings of the Workshop on Advanced Tools, Programming Languages, and Platforms for Implementing and Evaluating Algorithms for Distributed Systems, 2018.

Y. A. Liu, J. Brandvein, S. D. Stoller, and B. Lin, Demand-driven incremental object queries, Proceedings of the 18th International Symposium on Principles and Practice of Declarative Programming, pp.228-241, 2016.

Y. A. Liu, M. Gorbovitski, and S. D. Stoller, A language and framework for invariant-driven transformations, Proceedings of the 8th International Conference on Generative Programming and Component Engineering, pp.55-64, 2009.

Y. A. Liu and S. D. Stoller, From recursion to iteration: what are the optimizations?, 2000 ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM), 2000.

Y. A. Liu and S. D. Stoller, From Datalog rules to efficient programs with time and space guarantees, ACM Transactions on Programming Languages and Systems, vol.31, issue.6, pp.1-38, 2009.

Y. A. Liu, S. D. Stoller, M. Gorbovitski, T. Rothamel, and Y. E. Liu, Incrementalization across object abstraction, Proceedings of the 20th ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp.473-486, 2005.

Y. A. Liu, S. D. Stoller, N. Li, and T. Rothamel, Optimizing aggregate array computations in loops, ACM Transactions on Programming Languages and Systems, vol.27, issue.1, pp.91-125, 2005.

Y. A. Liu, S. D. Stoller, and B. Lin, From clarity to efficiency for distributed algorithms, ACM Transactions on Programming Languages and Systems, vol.39, issue.3, 2017.

Y. A. Liu, S. D. Stoller, B. Lin, and M. Gorbovitski, From clarity to efficiency for distributed algorithms, Proceedings of the 27th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages and Applications, pp.395-410, 2012.

Y. A. Liu, Systematic Program Design: From Clarity To Efficiency, 2013.

R. Paige and S. Koenig, Finite differencing of computable expressions, ACM Transactions on Programming Languages and Systems, vol.4, issue.3, pp.402-454, 1982.

V. Pappas, M. Polychronakis, and A. D. Keromytis, Smashing the gadgets: Hindering return-oriented programming using in-place code randomization, 33rd IEEE Symposium on Security and Privacy, pp.601-615, 2012.

G. Ricart and A. K. Agrawala, An optimal algorithm for mutual exclusion in computer networks, Communications of the ACM, vol.24, issue.1, pp.9-17, 1981.

R. Rogowski, M. Morton, F. Li, F. Monrose, K. Z. Snow et al., Revisiting browser security in the modern era: New data-only attacks and defenses, 2017 IEEE European Symposium on Security and Privacy, pp.366-381, 2017.

S. Schleimer, D. S. Wilkerson, and A. Aiken, Winnowing: Local algorithms for document fingerprinting, 2003 ACM SIGMOD International Conference on Management of Data, pp.76-85, 2003.

T. Wei, T. Wang, L. Duan, and J. Lu, INSeRT: Protect dynamic code generation against spraying, International Conference on Information Science and Technology, pp.323-328, 2011.

M. Xu, K. Lu, T. Kim, and W. Lee, Bunshin: Compositing security mechanisms through diversification, USENIX Annual Technical Conference, pp.271-283, 2017.