3
How ISO C became unusable for operating systems development | Proceedings of the...
source link: https://dl.acm.org/doi/pdf/10.1145/3477113.3487274
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Supplemental Material
References
- Will Dietz, Peng Li, John Regehr, and Vikram Adve. 2012. Understanding Integer Overflow in C/C++. Proceedings - International Conference on Software Engineering 25 (07 2012). https://doi.org/10.1109/ICSE.2012.6227142
- M. Anton Ertl. 2015. What every compiler writer should know about programmers. In 18. Kolloquium Programmiersprachen und Grundlagen der Programmierung (KPS'15), Jens Knoop and M. Anton Ertl (Eds.). 112--133. http://www.complang.tuwien.ac.at/kps2015/proceedings/KPS_2015_submission_29.pdf
- M. Anton Ertl. 2017. The Intended Meaning of Undefined Behaviour in C Programs. In 19. Kolloquium Programmiersprachen und Grundlagen der Programmierung (KPS'17), Wolfram Amme and Thomas Heinze (Eds.). 20--28. http://www.complang.tuwien.ac.at/papers/ertl17kps.pdf
- Felix-gcc. 2007. Bug 30475 - assert(int+100 > int) optimized away. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=30475
- Jens Gustedt, Peter Sewell, Kayvan Memarian, Victor B. F. Gomes, and Martin Uecker. 2021. A Provenance-aware Memory Object Model for C. Draft Technical Specification N2577. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2577.pdf
- Chris Hathhorn, Chucky Ellison, and Grigore Roşu. 2015. Defining the Undefinedness of C. In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation (Portland, OR, USA) (PLDI '15). Association for Computing Machinery, New York, NY, USA, 336--345. https://doi.org/10.1145/2737924.2737979
- M. Hind and Anthony Pioli. 2000. Which pointer analysis should I use?. In ISSTA '00.
- ISO PL22.11 - SC22/WG14. 2018. Programming language: C: ISO/IEC 9899:2018 (C18). Number ISO/IEC 9899:2018).
- INCITS J11 and SC22 WG14. 2003. Rationale for International Standard. Programming Languages. C Revision 5.10. http://www.open-std.org/jtc1/sc22/wg14/www/C99RationaleV5.10.pdf
- Derek Jones. 2017. How indeterminate is an indeterminate value. http://shape-of-code.coding-guidelines.com/2017/06/18/how-indeterminate-is-an-indeterminate-value/
- Jeehoon Kang, Chung-Kil Hur, William Mansky, Dmitri Garbuzov, Steve Zdancewic, and Viktor Vafeiadis. 2015. A Formal C Memory Model Supporting Integer-Pointer Casts. SIGPLAN Not. 50, 6 (June 2015), 326--335. https://doi.org/10.1145/2813885.2738005
- Brian W. Kernighan. [n.d.]. Why Pascal is Not My Favorite Programming Language. http://www.lysator.liu.se/c/bwk-on-pascal.html
- Brian W. Kernighan and Dennis M. Ritchie. 1988. The C Programming Language (2nd ed.). Prentice Hall Professional Technical Reference.
- W. Landi and B. Ryder. 1992. A safe approximate algorithm for inter-procedural aliasing. In PLDI '92.
- Chris Lattner. 2011. What every C programmer should know. http://blog.llvm.org/2011/05/what-every-c-programmer-should-know.html
- Chris Lattner. 2011. What Every C Programmer Should Know About Undefined Behavior 2/3. https://blog.llvm.org/2011/05/what-every-c-programmer-should-know_14.html
- Juneyoung Lee, Yoonseung Kim, Youngju Song, Chung-Kil Hur, Sanjoy Das, David Majnemer, John Regehr, and Nuno P. Lopes. 2017. Taming Undefined Behavior in LLVM. SIGPLAN Not. 52, 6 (June 2017), 633--647. https://doi.org/10.1145/3140587.3062343
- Xavier Leroy. 2009. Formal verification of a realistic compiler. Commun. ACM 52, 7 (2009), 107--115. http://xavierleroy.org/publi/compcert-CACM.pdf
- Xavier Leroy. 2021. Personal Communication.
- Xavier Leroy, Andrew W. Appel, Sandrine Blazy, and Gordon Stewart. 2012. The CompCert Memory Model, Version 2. Research Report RR-7987. INRIA. 26 pages. https://hal.inria.fr/hal-00703441
- Vladimir Makarov. 2020. MIR: A lightweight JIT compiler project. https://developers.redhat.com/blog/2020/01/20/mir-a-lightweight-jit-compiler-project
- Paul E. McKenney, Maged Michael, Jens Mauer, Peter Sewell, Martin Uecker, Hans Boehm, Hubert Tong, and Niall Douglas. 2019. Pointer lifetime-end zap. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1726r0.pdf
- Joseph Myers. 2014. "Bug 61502: comparison on "one-past" pointer gives wrong result, comment 1". https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61502
- Thi Viet Nga Nguyen and François Irigoin. 2003. Alias verification for Fortran code optimization. J. UCS 9, 3 (2003), 270.
- Vegard Nossum. 2016. "Subject [PATCH] firmware: declare _start, end_builtin_fw as pointers". https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61502
- X3J11 Technical Committee on the C Programming Language. 1989. ANSI X3.159, 1989 Edition, 1989 - INFORMATION SYSTEMS - PROGRAMMING LANGUAGE - C.
- Clang Project. 2021. Clang 13 Documentation. https://clang.llvm.org/docs/UsersManual.html
- GNU Project. 2021. GCC Documentation. https://gcc.gnu.org/onlinedocs/
- Ganesan Ramalingam. 1994. The undecidability of aliasing. ACM Transactions on Programming Languages and Systems (TOPLAS) 16, 5 (1994), 1467--1471.
- John Regehr. 2010. https://blog.regehr.org/archives/213
- John Regehr. 2016. The Strict Aliasing Situation is Pretty Bad. https://blog.regehr.org/archives/1307
- Dennis Ritchie. 1988. noalias comments to X3J11. (March 1988). https://groups.google.com/g/comp.lang.c/c/K0Cz2s9il3E/m/YDyo_xaRG5kJ
- DM Ritchie, SC Johnson, ME Lesk, and BW Kernighan. 1978. The C programming language, Bell Systems Tech. J 57, 6 (1978), 1991--2020.
- Eskil Steenberg. 2021. "Compiler Explorer UShort promotion UB". https://godbolt.org/z/7q9dPzEfM
- Eskil Steenberg. 2021. Redefining Undefined Behavior N2769. (21 6 2021). http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2769.pdf
- Linus Torvalds. [n.d.]. Reloc-Hide in Linux Kernel. https://github.com/torvalds/linux/blob/35e43538af8fd2cb39d58caca1134a87db173f75/include/linux/compiler-gcc.h
- Linus Torvalds. 2009. Re Gcc inlining heuristics. https://www.mailarchive.com/linux- [email protected]/msg01647.html
- Linus Torvalds. 2018. Re: [GIT PULL] Device properties framework update for v4.18-rc1. https://lkml.org/lkml/2018/6/5/769
- Linus Torvalds. 2018. Re: LKMM litmus test for Roman Penyaev's rcu-rr. https://lkml.org/lkml/2018/6/7/761
- Xi Wang, Haogang Chen, Alvin Cheung, Zhihao Jia, Nickolai Zeldovich, and M. Frans Kaashoek. 2012. Undefined Behavior: What Happened to My Code?. In Proceedings of the Asia-Pacific Workshop on Systems (Seoul, Republic of Korea) (APSYS '12). Association for Computing Machinery, New York, NY, USA, Article 9, 7 pages. https://doi.org/10.1145/2349896.2349905
- Xi Wang, Nickolai Zeldovich, M. Frans Kaashoek, and Armando Solar-Lezama. 2015. A Differential Approach to Undefined Behavior Detection. ACM Trans. Comput. Syst. 33, 1, Article 1 (March 2015), 29 pages. https://doi.org/10.1145/2699678
- William A Wulf. 1972. Systems for systems implementors: some experiences from Bliss. In Proceedings of the December 5-7, 1972, fall joint computer conference, part II. 943--948.
- Victor Yodaiken. 2021. Compiler Explorer ISO C Division. https://godbolt.org/z/zWh9c5e84
- Victor Yodaiken. 2021. Example of Clang and type based alias. https://godbolt.org/z/nq19n8dhE
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK