Nachiappan Nagappan

200 papers A* 24A 60B 1C 5Misc 2Journal 63Unranked 41
YearRankTypeTitle / Venue / Authors
2026 J jnl
ACM Trans. Softw. Eng. Methodol.
Peter C. Rigby, Seth Rogers, Sadruddin Saleem, Parth Suresh, Daniel Suskin, Patrick Riggs, Chandra Shekhar Maddila, Nachiappan Nagappan, Audris Mockus
2025 J jnl
ACM Comput. Surv.
Nima Shiri Harzevili, Alvine Boaye Belle, Junjie Wang, Song Wang, Zhen Ming (Jack) Jiang, Nachiappan Nagappan
2025 J jnl
CoRR
Chandra Shekhar Maddila, Negar Ghorbani, James Saindon, Parth Thakkar, Vijayaraghavan Murali, Rui Abreu, Jingyue Shen, Brian Zhou, Nachiappan Nagappan, Peter C. Rigby
2025 J jnl
CoRR
Chandra Shekhar Maddila, Adam Tait, Claire Chang, Daniel Cheng, Nauman Ahmad, Vijayaraghavan Murali, Marshall Roch, Arnaud Avondet, Aaron Meltzer, Victor Montalvao, Michael Hopko, Chris Waterson, Parth Thakkar, Renuka Fernandez, Kristian Kristensen, Sivan Barzily, Sherry Chen, Rui Abreu, Nachiappan Nagappan, Payam Shodjai, Killian Murphy, James Everingham, Aparna Ramani, Peter C. Rigby
2025 J jnl
CoRR
Audris Mockus, Peter C. Rigby, Rui Abreu, Anatoly Akkerman, Yogesh Bhootada, Payal Bhuptani, Gurnit Ghardhora, Lan Hoang Dao, Chris Hawley, Renzhi He, Sagar Krishnamoorthy, Sergei Krauze, Jianmin Li, Anton Lunov, Dragos Martac, François Morin, Neil Mitchell, Venus Montes, Maher Saba, Matt Steiner, Andrea Valori, Shanchao Wang, Nachiappan Nagappan
2025 J jnl
ACM Trans. Softw. Eng. Methodol.
Audris Mockus, Rui Abreu, Peter C. Rigby, David Amsallem, Parveen Bansal, Kaavya Chinniah, Brian Ellis, Peng Fan, Jun Ge, Bingjie He, Kelly Hirano, Sahil Kumar, Ajay Lingapuram, Andrew Loe, Megh Mehta, Venus Montes, Maher Saba, Gursharan Singh, Matt Steiner, Weiyan Sun, Siri Uppalapati, Nachiappan Nagappan
2025 A* conf
ASE
Audris Mockus, Peter C. Rigby, Rui Abreu, Anatoly Akkerman, Yogesh Bhootada, Payal Bhuptani, Gurnit Ghardhora, Lan Hoang Dao, Chris Hawley, Renzhi He, Sagar Krishnamoorthy, Sergei Krauze, Jianmin Li, Anton Lunov, Dragos Martac, François Morin, Neil Mitchell, Venus Montes, Maher Saba, Matt Steiner, Andrea Valori, Shanchao Wang, Nachiappan Nagappan
2025 conf
SEIP@ICSE
Rui Abreu, Vijayaraghavan Murali, Peter C. Rigby, Chandra Shekhar Maddila, Weiyan Sun, Jun Ge, Kaavya Chinniah, Audris Mockus, Megh Mehta, Nachiappan Nagappan
2024 J jnl
Proc. ACM Softw. Eng.
Vijayaraghavan Murali, Chandra Shekhar Maddila, Imad Ahmad, Michael Bolin, Daniel Cheng, Negar Ghorbani, Renuka Fernandez, Nachiappan Nagappan, Peter C. Rigby
2024 J jnl
CoRR
Nima Shiri Harzevili, Mohammad Mahdi Mohajer, Jiho Shin, Moshi Wei, Gias Uddin, Jinqiu Yang, Junjie Wang, Song Wang, Zhen Ming Jiang, Nachiappan Nagappan
2024 J jnl
CoRR
Rui Abreu, Vijayaraghavan Murali, Peter C. Rigby, Chandra Shekhar Maddila, Weiyan Sun, Jun Ge, Kaavya Chinniah, Audris Mockus, Megh Mehta, Nachiappan Nagappan
2024 conf
SIGSOFT FSE Companion
Omer Dunay, Daniel Cheng, Adam Tait, Parth Thakkar, Peter C. Rigby, Andy Chiu, Imad Ahmad, Arun Ganesan, Chandra Shekhar Maddila, Vijayaraghavan Murali, Ali Tayyebi, Nachiappan Nagappan
2024 J jnl
CoRR
Omer Dunay, Daniel Cheng, Adam Tait, Parth Thakkar, Peter C. Rigby, Andy Chiu, Imad Ahmad, Arun Ganesan, Chandra Shekhar Maddila, Vijayaraghavan Murali, Ali Tayyebi, Nachiappan Nagappan
2024 J jnl
IEEE Trans. Software Eng.
Sebastián Uchitel, Marsha Chechik, Massimiliano Di Penta, Bram Adams, Nazareno Aguirre, Gabriele Bavota, Domenico Bianculli, Kelly Blincoe, Ana Cavalcanti, Yvonne Dittrich, Filomena Ferrucci, Rashina Hoda, Liguo Huang, David Lo, Michael R. Lyu, Lei Ma, Jonathan I. Maletic, Leonardo Mariani, Collin McMillan, Tim Menzies, Martin Monperrus, Ana Moreno, Nachiappan Nagappan, Liliana Pasquale, Patrizio Pelliccione, Michael Pradel, Rahul Purandare, Sukyoung Ryu, Mehrdad Sabetzadeh, Alexander Serebrenik, Jun Sun, Chakkrit Kla Tantithamthavorn, Christoph Treude, Manuel Wimmer, Yingfei Xiong, Tao Yue, Andy Zaidman, Tao Zhang, Hao Zhong
2023 J jnl
CoRR
Nima Shiri Harzevili, Alvine Boaye Belle, Junjie Wang, Song Wang, Zhen Ming Jiang, Nachiappan Nagappan
2023 A conf
MSR
Gunnar Kudrjavets, Nachiappan Nagappan, Ayushi Rastogi
2023 J jnl
CoRR
Gunnar Kudrjavets, Nachiappan Nagappan, Ayushi Rastogi
2023 J jnl
CoRR
Nima Shiri Harzevili, Jiho Shin, Junjie Wang, Song Wang, Nachiappan Nagappan
2023 A conf
ISSRE
Nima Shiri Harzevili, Jiho Shin, Junjie Wang, Song Wang, Nachiappan Nagappan
2023 A conf
MSR
Nima Shiri Harzevili, Jiho Shin, Junjie Wang, Song Wang, Nachiappan Nagappan
2023 J jnl
CoRR
Vijayaraghavan Murali, Chandra Shekhar Maddila, Imad Ahmad, Michael Bolin, Daniel Cheng, Negar Ghorbani, Renuka Fernandez, Nachiappan Nagappan
2023 conf
ESEC/SIGSOFT FSE
Will Shackleton, Katriel Cohn-Gordon, Peter C. Rigby, Rui Abreu, James Gill, Nachiappan Nagappan, Karim Nakad, Ioannis Papagiannis, Luke Petre, Giorgi Megreli, Patrick Riggs, James Saindon
2023 J jnl
CoRR
Peter C. Rigby, Seth Rogers, Sadruddin Saleem, Parth Suresh, Daniel Suskin, Patrick Riggs, Chandra Shekhar Maddila, Nachiappan Nagappan
2023 conf
ESEC/SIGSOFT FSE
Audris Mockus, Peter C. Rigby, Rui Abreu, Parth Suresh, Yifen Chen, Nachiappan Nagappan
2023 J jnl
ACM Trans. Softw. Eng. Methodol.
Chandra Shekhar Maddila, Sai Surya Upadrasta, Chetan Bansal, Nachiappan Nagappan, Georgios Gousios, Arie van Deursen
2023 conf
ICSE-SEIP
Gunnar Kudrjavets, Ayushi Rastogi, Jeff Thomas, Nachiappan Nagappan
2022 J jnl
IEEE Trans. Software Eng.
Paulo Anselmo da Mota Silveira Neto, Umme Ayda Mannan, Eduardo Santana de Almeida, Nachiappan Nagappan, David Lo, Pavneet Singh Kochhar, Cuiyun Gao, Iftekhar Ahmed
2022 J jnl
ACM Trans. Softw. Eng. Methodol.
Denae Ford, Margaret-Anne D. Storey, Thomas Zimmermann, Christian Bird, Sonia Jaffe, Chandra Shekhar Maddila, Jenna L. Butler, Brian Houck, Nachiappan Nagappan
2022 A conf
SANER
Abhishek Sharma, Gede Artha Azriadi Prana, Anamika Sawhney, Nachiappan Nagappan, David Lo
2022 A conf
ESEM
Dhia Elhaq Rzig, Foyzul Hassan, Chetan Bansal, Nachiappan Nagappan
2022 conf
ISSRE Workshops
Noah Lee, Rui Abreu, Nachiappan Nagappan
2022 J jnl
CoRR
Jiri Gesi, Siqi Liu, Jiawei Li, Iftekhar Ahmed, Nachiappan Nagappan, David Lo, Eduardo Santana de Almeida, Pavneet Singh Kochhar, Lingfeng Bao
2022 J jnl
ACM Trans. Softw. Eng. Methodol.
Chandra Shekhar Maddila, Nachiappan Nagappan, Christian Bird, Georgios Gousios, Arie van Deursen
2022 A conf
MSR
Gunnar Kudrjavets, Nachiappan Nagappan, Ayushi Rastogi
2022 J jnl
CoRR
Gunnar Kudrjavets, Nachiappan Nagappan, Ayushi Rastogi
2022 J jnl
IEEE Trans. Software Eng.
Gede Artha Azriadi Prana, Denae Ford, Ayushi Rastogi, David Lo, Rahul Purandare, Nachiappan Nagappan
2022 A conf
ICSME
Gunnar Kudrjavets, Jeff Thomas, Nachiappan Nagappan, Ayushi Rastogi
2022 J jnl
CoRR
Gunnar Kudrjavets, Jeff Thomas, Nachiappan Nagappan, Ayushi Rastogi
2022 conf
ESEC/SIGSOFT FSE
Lawrence Chen, Rui Abreu, Tobi Akomolede, Peter C. Rigby, Satish Chandra, Nachiappan Nagappan
2022 A conf
MSR
Gunnar Kudrjavets, Aditya Kumar, Nachiappan Nagappan, Ayushi Rastogi
2022 J jnl
CoRR
Gunnar Kudrjavets, Aditya Kumar, Nachiappan Nagappan, Ayushi Rastogi
2022 A conf
ICSME
Gunnar Kudrjavets, Ayushi Rastogi, Jeff Thomas, Nachiappan Nagappan
2022 conf
MOBILESoft
Gunnar Kudrjavets, Jeff Thomas, Aditya Kumar, Nachiappan Nagappan, Ayushi Rastogi
2022 J jnl
CoRR
Gunnar Kudrjavets, Jeff Thomas, Aditya Kumar, Nachiappan Nagappan, Ayushi Rastogi
2022 J jnl
Empir. Softw. Eng.
Manish Shetty, Chetan Bansal, Sumit Kumar, Nikitha Rao, Nachiappan Nagappan
2022 A conf
ICSME
Noah Lee, Rui Abreu, Mehmet Yatbaz, Hang Qu, Nachiappan Nagappan
2022 A conf
EASE
Gunnar Kudrjavets, Jeff Thomas, Nachiappan Nagappan
2022 J jnl
CoRR
Gunnar Kudrjavets, Jeff Thomas, Nachiappan Nagappan
2022 conf
ICSE (SEIP)
Gunnar Kudrjavets, Aditya Kumar, Nachiappan Nagappan, Ayushi Rastogi
2022 J jnl
CoRR
Gunnar Kudrjavets, Aditya Kumar, Nachiappan Nagappan, Ayushi Rastogi
2022 J jnl
CoRR
Gunnar Kudrjavets, Nachiappan Nagappan, Ayushi Rastogi
2022 A conf
MSR
Gunnar Kudrjavets, Nachiappan Nagappan, Ayushi Rastogi
2022 A conf
ICSME
Gunnar Kudrjavets, Jeff Thomas, Aditya Kumar, Nachiappan Nagappan, Ayushi Rastogi
2022 J jnl
CoRR
Gunnar Kudrjavets, Jeff Thomas, Aditya Kumar, Nachiappan Nagappan, Ayushi Rastogi
2022 conf
ESEC/SIGSOFT FSE
Lawrence Chen, Peter C. Rigby, Nachiappan Nagappan
2022 conf
ESEC/SIGSOFT FSE
Qianhua Shan, David Sukhdeo, Qianying Huang, Seth Rogers, Lawrence Chen, Elise Paradis, Peter C. Rigby, Nachiappan Nagappan
2022 conf
ISSRE Workshops
Gunnar Kudrjavets, Jeff Thomas, Aditya Kumar, Nachiappan Nagappan, Ayushi Rastogi
2022 J jnl
CoRR
Gunnar Kudrjavets, Jeff Thomas, Aditya Kumar, Nachiappan Nagappan, Ayushi Rastogi
2022 J jnl
CoRR
Gunnar Kudrjavets, Ayushi Rastogi, Jeff Thomas, Nachiappan Nagappan
2022 conf
ESEC/SIGSOFT FSE
Yifen Chen, Peter C. Rigby, Yulin Chen, Kun Jiang, Nader Dehghani, Qianying Huang, Peter Cottle, Clayton Andrews, Noah Lee, Nachiappan Nagappan
2021 A* conf
ICSE
Song Wang, Nishtha Shrestha, Abarna Kucheri Subburaman, Junjie Wang, Moshi Wei, Nachiappan Nagappan
2021 A* conf
ICSE
Rangeet Pan, Vu Le, Nachiappan Nagappan, Sumit Gulwani, Shuvendu K. Lahiri, Mike Kaufman
2021 J jnl
CoRR
Rangeet Pan, Vu Le, Nachiappan Nagappan, Sumit Gulwani, Shuvendu K. Lahiri, Mike Kaufman
2021 A conf
ISSRE
Song Wang, Nachiappan Nagappan
2021 J jnl
CoRR
Chandra Shekhar Maddila, Nachiappan Nagappan, Christian Bird, Georgios Gousios, Arie van Deursen
2021 A conf
ESEM
Song Wang, Junjie Wang, Jaechang Nam, Nachiappan Nagappan
2021 A* conf
ASE
Hung Viet Pham, Mijung Kim, Lin Tan, Yaoliang Yu, Nachiappan Nagappan
2021 J jnl
Inf. Softw. Technol.
Song Wang, Chetan Bansal, Nachiappan Nagappan
2021 J jnl
IEEE Trans. Software Eng.
Pavneet Singh Kochhar, Eirini Kalliamvakou, Nachiappan Nagappan, Thomas Zimmermann, Christian Bird
2021 conf
ICSE (SEIP)
Manish Shetty, Chetan Bansal, Sumit Kumar, Nikitha Rao, Nachiappan Nagappan, Thomas Zimmermann
2021 conf
ESEC/SIGSOFT FSE
Nachiappan Nagappan
2020 J jnl
CoRR
Paulo Anselmo da Mota Silveira Neto, Umme Ayda Mannan, Eduardo Santana de Almeida, Nachiappan Nagappan, David Lo, Pavneet Singh Kochhar, Cuiyun Gao, Iftekhar Ahmed
2020 J jnl
CoRR
Denae Ford, Margaret-Anne D. Storey, Thomas Zimmermann, Christian Bird, Sonia Jaffe, Chandra Shekhar Maddila, Jenna L. Butler, Brian Houck, Nachiappan Nagappan
2020 A conf
ESEM
Foyzul Hassan, Chetan Bansal, Nachiappan Nagappan, Thomas Zimmermann, Ahmed Hassan Awadallah
2020 J jnl
CoRR
Foyzul Hassan, Chetan Bansal, Nachiappan Nagappan, Thomas Zimmermann, Ahmed Hassan Awadallah
2020 conf
IEEE BigData
Nikitha Rao, Chetan Bansal, Thomas Zimmermann, Ahmed Hassan Awadallah, Nachiappan Nagappan
2020 J jnl
Proc. ACM Program. Lang.
Xiang Gao, Shraddha Barke, Arjun Radhakrishna, Gustavo Soares, Sumit Gulwani, Alan Leung, Nachiappan Nagappan, Ashish Tiwari
2020 J jnl
CoRR
Gede Artha Azriadi Prana, Denae Ford, Ayushi Rastogi, David Lo, Rahul Purandare, Nachiappan Nagappan
2020 J jnl
CoRR
Manish Shetty, Chetan Bansal, Sumit Kumar, Nikitha Rao, Nachiappan Nagappan, Thomas Zimmermann
2020 J jnl
CoRR
Chandra Shekhar Maddila, Sai Surya Upadrasta, Chetan Bansal, Nachiappan Nagappan, Georgios Gousios, Arie van Deursen
2020 A* conf
ASE
Hung Viet Pham, Shangshu Qian, Jiannan Wang, Thibaud Lutellier, Jonathan Rosenthal, Lin Tan, Yaoliang Yu, Nachiappan Nagappan
2020 A conf
MSR
Danielle Gonzalez, Thomas Zimmermann, Nachiappan Nagappan
2019 J jnl
CoRR
Abhishek Sharma, Gede Artha Azriadi Prana, Anamika Sawhney, Nachiappan Nagappan, David Lo
2019 A* conf
ICSE
Adithya Abraham Philip, Ranjita Bhagwan, Rahul Kumar, Chandra Shekhar Maddila, Nachiappan Nagappan
2019 conf
PROMISE
Song Wang, Chetan Bansal, Nachiappan Nagappan, Adithya Abraham Philip
2019 conf
ESEC/SIGSOFT FSE
Chandra Shekhar Maddila, Chetan Bansal, Nachiappan Nagappan
2019 conf
ICSE (SEIP)
Saleema Amershi, Andrew Begel, Christian Bird, Robert DeLine, Harald C. Gall, Ece Kamar, Nachiappan Nagappan, Besmira Nushi, Thomas Zimmermann
2019 J jnl
CoRR
Chetan Bansal, Thomas Zimmermann, Ahmed Hassan Awadallah, Nachiappan Nagappan
2018 A conf
ESEM
Ayushi Rastogi, Nachiappan Nagappan, Georgios Gousios, André van der Hoek
2017 A conf
ESEM
Denae Ford, Tom Zimmermann, Christian Bird, Nachiappan Nagappan
2017 J jnl
IEEE Trans. Reliab.
Pavneet Singh Kochhar, David Lo, Julia Lawall, Nachiappan Nagappan
2017 J jnl
Top. Cogn. Sci.
Jeff Huang, Eddie Q. Yan, Gifford Cheung, Nachiappan Nagappan, Thomas Zimmermann
2017 conf
ISEC
Ayushi Rastogi, Suresh Thummalapenta, Thomas Zimmermann, Nachiappan Nagappan, Jacek Czerwonka
2016 A conf
SANER
Ayushi Rastogi, Nachiappan Nagappan
2016 J jnl
IEEE Trans. Software Eng.
Xin Xia, David Lo, Sinno Jialin Pan, Nachiappan Nagappan, Xinyu Wang
2016 A conf
ISSRE
Ayushi Rastogi, Nachiappan Nagappan
2015 J jnl
Empir. Softw. Eng.
Abram Hindle, Christian Bird, Thomas Zimmermann, Nachiappan Nagappan
2015 conf
ICSE (2)
Kim Herzig, Nachiappan Nagappan
2015 conf
ESEC/SIGSOFT FSE
David Lo, Nachiappan Nagappan, Thomas Zimmermann
2015 A conf
ESEM
Ayushi Rastogi, Suresh Thummalapenta, Thomas Zimmermann, Nachiappan Nagappan, Jacek Czerwonka
2015 J jnl
IEEE Trans. Software Eng.
Emerson R. Murphy-Hill, Thomas Zimmermann, Christian Bird, Nachiappan Nagappan
2015 conf
Software Engineering & Management
Kim Herzig, Nachiappan Nagappan
2015 A conf
MSR
Baishakhi Ray, Meiyappan Nagappan, Christian Bird, Nachiappan Nagappan, Thomas Zimmermann
2015 A conf
ICST
Pavneet Singh Kochhar, Ferdian Thung, Nachiappan Nagappan, Thomas Zimmermann, David Lo
2015 Misc conf
CHI PLAY
Erik Harpstead, Thomas Zimmermann, Nachiappan Nagappan, Jose J. Guajardo, Ryan Cooper, Tyson Solberg, Dan Greenawalt
2014 J jnl
IEEE Trans. Software Eng.
Miryung Kim, Thomas Zimmermann, Nachiappan Nagappan
2014 A* conf
ICSE
Emerson R. Murphy-Hill, Thomas Zimmermann, Nachiappan Nagappan
2014 conf
ICSE Companion
Christian Bird, Venkatesh-Prasad Ranganath, Thomas Zimmermann, Nachiappan Nagappan, Andreas Zeller
2014 A conf
ESEM
Ashish Gupta, Thomas Zimmermann, Christian Bird, Nachiappan Nagappan, Thirumalesh Bhat, Syed Emran
2014 C conf
FDG
Thomas Debeauvais, Thomas Zimmermann, Nachiappan Nagappan, Kevin Carter, Ryan Cooper, Dan Greenawalt, Tyson Solberg
2014 C conf
Software Engineering
Thomas Zimmermann, Nachiappan Nagappan
2014 Misc conf
CHI PLAY
Gifford K. Cheung, Thomas Zimmermann, Nachiappan Nagappan
2014 A conf
ESEM
Kim Herzig, Nachiappan Nagappan
2014 A* conf
ICSE
Kivanç Muslu, Christian Bird, Nachiappan Nagappan, Jacek Czerwonka
2013 A* conf
ICSE
Grace A. Lewis, Jeff Gray, Henry Muccini, Nachiappan Nagappan, David S. Rosenblum, Emad Shihab
2013 ed.
ISEC
Sugata Ghosal, Gautam Shroff, Satish Chandra, Nachiappan Nagappan
2013 J jnl
IEEE Softw.
Jacek Czerwonka, Nachiappan Nagappan, Wolfram Schulte, Brendan Murphy
2013 A* conf
ICSE
Ekrem Kocaguneli, Thomas Zimmermann, Christian Bird, Nachiappan Nagappan, Tim Menzies
2013 A conf
ESEM
Brendan Murphy, Christian Bird, Thomas Zimmermann, Laurie A. Williams, Nachiappan Nagappan, Andrew Begel
2013 A* conf
CHI
Jeff Huang, Thomas Zimmermann, Nachiappan Nagappan, Charles Harrison, Bruce C. Phillips
2013 A conf
ISSRE
Alexander Tarvo, Nachiappan Nagappan, Thomas Zimmermann
2013 J jnl
ACM SIGSOFT Softw. Eng. Notes
Grace A. Lewis, Nachiappan Nagappan, Jeff Gray, David S. Rosenblum, Henry Muccini, Emad Shihab
2013 A* conf
ICSE
Emerson R. Murphy-Hill, Thomas Zimmermann, Christian Bird, Nachiappan Nagappan
2012 conf
SIGSOFT FSE
Miryung Kim, Thomas Zimmermann, Nachiappan Nagappan
2012 A conf
ESEM
Narendar Mandala, Gursimran Singh Walia, Jeffrey C. Carver, Nachiappan Nagappan
2012 A* conf
ICSE
Thomas Zimmermann, Nachiappan Nagappan, Philip J. Guo, Brendan Murphy
2012 A conf
ESEM
Kenneth Hullett, Nachiappan Nagappan, Eric Schuh, John Hopson
2012 conf
ICSM
Abram Hindle, Christian Bird, Thomas Zimmermann, Nachiappan Nagappan
2012 A conf
MSR
Christian Bird, Nachiappan Nagappan
2011 A conf
CSCW
Philip J. Guo, Thomas Zimmermann, Nachiappan Nagappan, Brendan Murphy
2011 A conf
ICST
Thomas Zimmermann, Nachiappan Nagappan, Kim Herzig, Rahul Premraj, Laurie A. Williams
2011 A conf
ICST
Jacek Czerwonka, Rajiv Das, Nachiappan Nagappan, Alex Tarvo, Alex Teterev
2011 A* conf
ICSE
Paul Luo Li, Ryan Kivett, Zhiyuan Zhan, Sung-eok Jeon, Nachiappan Nagappan, Brendan Murphy, Amy J. Ko
2011 A conf
DSN
Sunghun Kim, Thomas Zimmermann, Nachiappan Nagappan
2011 A* conf
ICSE
Kenneth Hullett, Nachiappan Nagappan, Eric Schuh, John Hopson
2011 conf
SIGSOFT FSE
Christian Bird, Nachiappan Nagappan, Brendan Murphy, Harald C. Gall, Premkumar T. Devanbu
2011 A conf
CSCW
Christian Bird, Brendan Murphy, Nachiappan Nagappan, Thomas Zimmermann
2011 ch.
Making Software
Nachiappan Nagappan, Thomas Ball
2011 A conf
ESEM
Laurie A. Williams, Gabe Brown, Adam Meltzer, Nachiappan Nagappan
2011 A* conf
SIGCOMM
Phillipa Gill, Navendu Jain, Nachiappan Nagappan
2010 A conf
ISSRE
Nachiappan Nagappan, Andreas Zeller, Thomas Zimmermann, Kim Herzig, Brendan Murphy
2010 conf
ICSE (1)
Philip J. Guo, Thomas Zimmermann, Nachiappan Nagappan, Brendan Murphy
2010 conf
SoCC
Kashi Venkatesh Vishwanath, Nachiappan Nagappan
2010 conf
TAP@TOOLS
Nachiappan Nagappan
2010 A ed.
ESEM
Giancarlo Succi, Maurizio Morisio, Nachiappan Nagappan
2010 J jnl
Empir. Softw. Eng.
Constantin Sârbu, Andréas Johansson, Neeraj Suri, Nachiappan Nagappan
2010 A conf
ICST
Thomas Zimmermann, Nachiappan Nagappan, Laurie A. Williams
2009 B conf
CHASE
Andrew Begel, Nachiappan Nagappan, Christopher Poile, Lucas Layman
2009 conf
ESEC/SIGSOFT FSE
Thomas Zimmermann, Nachiappan Nagappan, Harald C. Gall, Emanuel Giger, Brendan Murphy
2009 A* conf
ICSE
Christian Bird, Nachiappan Nagappan, Premkumar T. Devanbu, Harald C. Gall, Brendan Murphy
2009 J jnl
Commun. ACM
Christian Bird, Nachiappan Nagappan, Premkumar T. Devanbu, Harald C. Gall, Brendan Murphy
2009 J jnl
IEEE Softw.
Nachiappan Nagappan, Andreas Zeller, Thomas Zimmermann
2009 A conf
ISSRE
Laurie A. Williams, Gunnar Kudrjavets, Nachiappan Nagappan
2009 A conf
ESEM
Thomas Zimmermann, Nachiappan Nagappan
2009 A conf
ISSRE
Christian Bird, Nachiappan Nagappan, Harald C. Gall, Brendan Murphy, Premkumar T. Devanbu
2009 A conf
ESEM
Audris Mockus, Nachiappan Nagappan, Trung T. Dinh-Trong
2008 conf
SIGSOFT FSE
Martin Pinzger, Nachiappan Nagappan, Brendan Murphy
2008 A conf
ISSTA
Premkumar T. Devanbu, Brendan Murphy, Nachiappan Nagappan, Thomas Zimmermann, Valentin Dallmeier
2008 J jnl
IEEE Trans. Software Eng.
Marc Eaddy, Thomas Zimmermann, Kaitin D. Sherwood, Vibhav Garg, Gail C. Murphy, Nachiappan Nagappan, Alfred V. Aho
2008 C conf
ICGSE
Andrew Begel, Nachiappan Nagappan
2008 C conf
ICGSE
Shilpa Bugde, Nachiappan Nagappan, Sriram K. Rajamani, G. Ramalingam
2008 A conf
ESEM
Lucas Layman, Gunnar Kudrjavets, Nachiappan Nagappan
2008 A conf
MSR
Lucas Layman, Nachiappan Nagappan, Sam Guckenheimer, Jeff Beehler, Andrew Begel
2008 A conf
ESEM
Andrew Begel, Nachiappan Nagappan
2008 ch.
Software Evolution
Thomas Zimmermann, Nachiappan Nagappan, Andreas Zeller
2008 A* conf
ICSE
Thomas Zimmermann, Nachiappan Nagappan
2008 ed.
DEFECTS
Premkumar T. Devanbu, Brendan Murphy, Nachiappan Nagappan, Thomas Zimmermann
2008 A conf
ISSRE
Constantin Sârbu, Andréas Johansson, Neeraj Suri, Nachiappan Nagappan
2008 J jnl
Empir. Softw. Eng.
Nachiappan Nagappan, E. Michael Maximilien, Thirumalesh Bhat, Laurie A. Williams
2008 A conf
DSN
Thirumalesh Bhat, Nachiappan Nagappan
2008 J jnl
IEEE Trans. Software Eng.
Jeffrey C. Carver, Nachiappan Nagappan, Alan Page
2008 A* conf
ICSE
Gursimran Singh Walia, Jeffrey C. Carver, Nachiappan Nagappan
2008 A* conf
ICSE
Nachiappan Nagappan, Brendan Murphy, Victor R. Basili
2007 A conf
ISSRE
Thomas Zimmermann, Nachiappan Nagappan
2007 A conf
ESEM
Andrew Begel, Nachiappan Nagappan
2007 A conf
ISSRE
Nachiappan Nagappan, Laurie A. Williams, Mladen A. Vouk, Jason A. Osborne
2007 A conf
ESEM
Nachiappan Nagappan, Thomas Ball
2006 A conf
ISSRE
Gunnar Kudrjavets, Nachiappan Nagappan, Thomas Ball
2006 C conf
APSEC
Thirumalesh Bhat, Nachiappan Nagappan
2006 conf
Empirical Software Engineering Issues
Nachiappan Nagappan
2006 conf
ISESE
Thirumalesh Bhat, Nachiappan Nagappan
2006 A* conf
ICSE
Nachiappan Nagappan, Thomas Ball, Andreas Zeller
2006 J jnl
IEEE Trans. Software Eng.
Jiang Zheng, Laurie A. Williams, Nachiappan Nagappan, Will Snipes, John P. Hudepohl, Mladen A. Vouk
2006 conf
Empirical Software Engineering Issues
Nachiappan Nagappan
2006 A conf
ISSRE
Nachiappan Nagappan, Thomas Ball, Brendan Murphy
2005 conf
A-MOST
Mark Sherriff, Nachiappan Nagappan, Laurie A. Williams, Mladen A. Vouk
2005 J jnl
ACM SIGSOFT Softw. Eng. Notes
Mark Sherriff, Nachiappan Nagappan, Laurie A. Williams, Mladen A. Vouk
2005 conf
WoSQ@ICSE
Nachiappan Nagappan, Laurie A. Williams, Mladen A. Vouk, Jason A. Osborne
2005 J jnl
ACM SIGSOFT Softw. Eng. Notes
Nachiappan Nagappan, Laurie A. Williams, Mladen A. Vouk, Jason A. Osborne
2005 A conf
ISSRE
Nachiappan Nagappan, Laurie A. Williams, Jason A. Osborne, Mladen A. Vouk, Pekka Abrahamsson
2005 A* conf
ICSE
Nachiappan Nagappan, Thomas Ball
2005 A* conf
ICSE
Nachiappan Nagappan, Thomas Ball
2004 A conf
ISSRE
Martin Davidsson, Jiang Zheng, Nachiappan Nagappan, Laurie A. Williams, Mladen A. Vouk
2004 A conf
ISSRE
Nachiappan Nagappan, Laurie A. Williams, John P. Hudepohl, Will Snipes, Mladen A. Vouk
2004 A* conf
ICSE
Nachiappan Nagappan
2003 conf
eTX
Nachiappan Nagappan, Laurie A. Williams, Mladen A. Vouk
2003 conf
ISESE
Laurie A. Williams, Charlie McDowell, Nachiappan Nagappan, Julian Fernald, Linda L. Werner
2003 A conf
SIGCSE
Nachiappan Nagappan, Laurie A. Williams, Miriam Ferzli, Eric N. Wiebe, Kai Yang, Carol Miller, Suzanne Balik
2003 conf
XP/Agile Universe
Nachiappan Nagappan, Laurie A. Williams, Eric N. Wiebe, Carol Miller, Suzanne Balik, Miriam Ferzli, Julie Petlick
2003 conf
XP/Agile Universe
P. David Stotts, Laurie A. Williams, Nachiappan Nagappan, Prashant Baheti, Dennis Jen, Anne Jackson
redb/extractors/decompiler/bninja/arch/x86.py
← Index redb/extractors/decompiler/bninja/arch/x86.py python
from binaryninja.enums import (
    InstructionTextTokenType,
)

# Support both package and standalone imports
try:
    from .architecture import Architecture
except ImportError:
    # Fallback to absolute imports (for multiprocessing spawned processes)
    from redb.extractors.decompiler.bninja.arch.architecture import Architecture


class Arch_x86(Architecture):
    """The concrete class for architecture-dependent details for x86_64"""

    def __init__(self):
        # general purpose registers for 64bits
        self.gpr_64 = [
            "RAX",
            "RBX",
            "RCX",
            "RDX",
            "RSI",
            "RDIR9",
            "R10",
            "R11",
            "R12",
            "R13",
            "R14",
            "R15",
        ]

        self.gpr_32 = [
            "EAX",
            "EBX",
            "ECX",
            "EDX",
            "ESI",
            "EDI",
            "R8D",
            "R9D",
            "R10D",
            "R11D",
            "R12D",
            "R13D",
            "R14D",
            "R15D",
        ]

        self.gpr_16 = [
            "AX",
            "BX",
            "CX",
            "DX",
            "SI",
            "DI",
            "R8W",
            "R9W",
            "R10W",
            "R11W",
            "R12W",
            "R13W",
            "R14W",
            "R15W",
        ]

        self.gpr_8 = [
            "AL",
            "BL",
            "CL",
            "DL",
            "SIL",
            "DIL",
            "R8B",
            "R9B",
            "R10B",
            "R11B",
            "R12B",
            "R13B",
            "R14B",
            "R15B",
        ]

        self.fpu_x87 = ["ST0", "ST1", "ST2", "ST3", "ST4", "ST5", "ST6", "ST7"]

        self.sse_xmm = [
            "XMM0",
            "XMM1",
            "XMM2",
            "XMM3",
            "XMM4",
            "XMM5",
            "XMM6",
            "XMM7",
            "XMM8",
            "XMM9",
            "XMM10",
            "XMM11",
            "XMM12",
            "XMM13",
            "XMM14",
            "XMM15",
        ]

        self.avx_ymm = [
            "YMM0",
            "YMM1",
            "YMM2",
            "YMM3",
            "YMM4",
            "YMM5",
            "YMM6",
            "YMM7",
            "YMM8",
            "YMM9",
            "YMM10",
            "YMM11",
            "YMM12",
            "YMM13",
            "YMM14",
            "YMM15",
        ]
        self.flags = ["FLAGS", "EFLAGS", "RFLAGS"]
        self.stack_registers = ["RBP", "RSP", "SP", "BP"]
        self.size = 8
        self.global_registers = (
            self.gpr_64
            + self.gpr_32
            + self.gpr_16
            + self.gpr_8
            + self.fpu_x87
            + self.sse_xmm
            + self.avx_ymm
        )
        self.opcode_categories = self._initialize_opcode_categories()

        ## instructions
        self.instructions = []

    def is_register(self, register):
        register = register.upper()
        return register in self.global_registers

    def is_general_purpose_register(self, register):
        register = register.upper()
        return (
            register in self.gpr_64
            or register in self.gpr_32
            or register in self.gpr_16
            or register in self.gpr_8
        )

    def is_stack_register(self, register):
        register = register.upper()
        return register in self.stack_registers

    def is_xmm_register(self, register):
        register = register.upper()
        return register in self.sse_xmm

    def is_control_flow(self, instr_tokens):
        return False

    def is_control_flow_instruction(self, instr_tokens):
        """Check if an instruction is a control flow instruction (jump, call, return, loop)."""
        try:
            # Extract the mnemonic from the instruction tokens
            mnemonic = None
            for token in instr_tokens:
                if token.type == InstructionTextTokenType.InstructionToken:
                    mnemonic = token.text.upper()
                    break

            if not mnemonic:
                return False

            # Check if it's a jump, call, return, or loop instruction
            return (
                mnemonic.startswith("J")  # All jumps (JMP, JE, JNE, etc.)
                or mnemonic == "CALL"  # Function calls
                or mnemonic == "RET"  # Return
                or mnemonic == "RETN"  # Another form of return
                or mnemonic.startswith("LOOP")
            )  # Loop instructions

        except Exception as e:
            print(e)
            # If we can't determine, assume it's not a control flow instruction
            return False

    def is_control_flow_instruction_by_mnemonic(self, mnemonic):
        """Check if an instruction is a control flow instruction based on its mnemonic."""
        if not mnemonic:
            return False

        mnemonic = mnemonic.upper()
        return (
            mnemonic.startswith("J")  # All jumps (JMP, JE, JNE, etc.)
            or mnemonic == "CALL"  # Function calls
            or mnemonic == "RET"  # Return
            or mnemonic == "RETN"  # Another form of return
            or mnemonic.startswith("LOOP")
        )

    def _initialize_opcode_categories(self):
        """Initialize mapping of opcodes to categories similar to Ghidra's implementation."""
        opcode_categories = {}
        opcode_index = {}  # Add this to mimic Ghidra's opcodeIndex

        # Define common opcodes array similar to Ghidra's COMMON_OPCODES
        COMMON_OPCODES = [
            # Core instructions (tracked individually)
            "MOV",
            "PUSH",
            "POP",
            "LEA",
            "CALL",
            "RET",  # Data movement and control
            "ADD",
            "SUB",
            "MUL",
            "DIV",  # Basic arithmetic
            "AND",
            "OR",
            "XOR",
            "NOT",  # Logical operations
            "JMP",
            "JE",
            "JNE",  # Basic jumps
            "TEST",
            "CMP",  # Comparisons
            # Grouped categories (aggregated tracking)
            "SIMD_MOVE",  # MOVAPS, MOVDQA, MOVDQU, etc.
            "COND_JUMP_EXT",  # Other conditional jumps (JG, JL, JGE, etc.)
            "STRING_OP",  # MOVS, STOS, LODS, SCAS, CMPS
            "STACK_ADV",  # ENTER, LEAVE, PUSHA, POPA
            "ARITHMETIC_ADV",  # IMUL, IDIV, ADC, SBB
            "BIT_OP",  # SHL, SHR, SAR, ROL, ROR, etc.
            "FPU_OP",  # FLD, FST, FADD, etc.
            "SYSTEM_OP",  # SYSCALL, INT, SYSENTER
            "CRYPTO_OP",  # AES*, SHA* instructions
            "MISC_OP",  # Rare but interesting (CPUID, RDTSC, etc.)
        ]

        # Create index map like Ghidra
        for i, opcode in enumerate(COMMON_OPCODES):
            opcode_index[opcode] = i

        # Now categorize opcodes using if/elif/else structure like in Ghidra
        for opcode in COMMON_OPCODES:
            # String Operations (checking these first to avoid MOV confusion)
            if opcode.startswith("MOVS") or opcode in [
                "STOS",
                "LODS",
                "SCAS",
                "CMPS",
                "REP",
                "REPE",
                "REPNE",
            ]:
                opcode_categories[opcode] = "STRING_MANIPULATION"

            # Data Movement (after string ops to avoid MOVS confusion)
            elif opcode.startswith("MOV") or opcode in ["LEA", "XCHG"]:
                opcode_categories[opcode] = "DATA_MOVEMENT"

            # Stack Operations
            elif opcode in ["PUSH", "POP", "ENTER", "LEAVE", "PUSHA", "POPA"]:
                opcode_categories[opcode] = "STACK_MANAGEMENT"

            # Control Flow (non-conditional)
            elif opcode in ["JMP", "CALL", "RET"]:
                opcode_categories[opcode] = "CONTROL_FLOW"

            # Conditional Jumps and Loops
            elif opcode.startswith("J") or opcode.startswith("LOOP"):
                opcode_categories[opcode] = "CONDITIONAL_JUMP"

            # Arithmetic
            elif opcode in [
                "ADD",
                "SUB",
                "MUL",
                "DIV",
                "IMUL",
                "IDIV",
                "ADC",
                "SBB",
                "INC",
                "DEC",
                "NEG",
            ]:
                opcode_categories[opcode] = "ARITHMETIC"

            # Logical
            elif opcode in ["AND", "OR", "XOR", "NOT", "TEST", "CMP"]:
                opcode_categories[opcode] = "LOGICAL"

            # Shifts & Rotates
            elif opcode in ["SHL", "SHR", "SAR", "SAL", "ROL", "ROR", "RCL", "RCR"]:
                opcode_categories[opcode] = "SHIFT_ROTATE"

            # System & Interrupts
            elif opcode in [
                "SYSCALL",
                "INT",
                "SYSENTER",
                "SYSEXIT",
                "SGDT",
                "SIDT",
                "SLDT",
                "WRMSR",
                "RDMSR",
            ]:
                opcode_categories[opcode] = "SYSTEM_CALLS"

            # Floating Point
            elif opcode.startswith("F"):
                opcode_categories[opcode] = "FPU_ARITHMETIC"

            # System Information and Random Number Generation
            elif opcode in ["PUSHF", "POPF", "CPUID", "RDTSC", "RDRAND", "RDSEED"]:
                opcode_categories[opcode] = "CPU_FEATURES"

            # Cryptography
            elif opcode.startswith("AES") or opcode.startswith("SHA"):
                opcode_categories[opcode] = "CRYPTOGRAPHIC"

            # Miscellaneous (including flag operations)
            else:
                opcode_categories[opcode] = "MISC"

        # Additional categorization for opcodes not in COMMON_OPCODES
        # This can be used in the normalize_opcode method

        # Store both maps as instance variables
        # self.opcode_categories = opcode_categories
        self.opcode_index = opcode_index

        return opcode_categories

    def is_simd_register(self, register):
        return register in self.sse_xmm