School of Computing

Publications by Prof Simon Thompson

Also view these in the Kent Academic Repository

Articles
Horpácsi, D., Bereczky, P. and Thompson, S. (2023) 'Program Equivalence in an Untyped, Call-by-value Functional Language with Uncurried Functions', Journal of Logical and Algebraic Methods in Programming. Elsevier. doi: 10.1016/j.jlamp.2023.100857.
Seijas, P. L., Thompson, S. and Francisco, M. Ángel (2018) 'Model extraction and test generation from JUnit test suites', Software Quality Journal. Springer, pp. 1519-1552. doi: 10.1007/s11219-017-9399-x.
Thompson, S., Li, H., Baker, R., Adams, S., Trinder, P., Chechina, N., Papaspyrou, N., Sagonas, K., Aronis, S., Bihari, E. and others. (2017) 'Scaling Reliably: Improving the Scalability of the Erlang Distributed Actor Platform', ACM Transactions on Programming Languages and Systems. ACM. doi: 10.1145/3107937.
Thompson, S., Li, H. and Schumacher, A. (2017) 'The pragmatics of clone detection and elimination', The Art, Science, and Engineering of Programming. AOSA. doi: 10.22152/programming-journal.org/2017/1/8.
Thompson, S. (2017) 'A General Method for Defining Objects by Recursion over Syntax', Journal of Universal Computer Science, pp. 89-111. Available at: http://www.jucs.org/jucs_23_1/a_general_method_for.
Chechina, N., MacKenzie, K., Thompson, S., Trinder, P., Boudeville, O., Fordos, V., Hoch, csaba, Ghaffari, A. and Moro Hernandez, M. (2017) 'Evaluating Scalable Distributed Erlang for Scalability and Reliability', IEEE Transactions on Parallel and Distributed Systems. IEEE, pp. 2244-2257. doi: 10.1109/TPDS.2017.2654246.
Rodgers, P., Stapleton, G., Alsallakh, B., Micallef, L., Baker, R. and Thompson, S. (2016) 'A Task-Based Evaluation of Combined Set and Network Visualization', Information Sciences. Elsevier, pp. 58-79. doi: 10.1016/j.ins.2016.05.045.
Chechina, N., Li, H., Ghaffari, A., Thompson, S. and Trinder, P. (2016) 'Improving the network scalability of Erlang', Journal of Parallel and Distributed Computing. Elsevier, pp. 22-34. doi: 10.1016/j.jpdc.2016.01.002.
Thompson, S., Delaney, A., Stapleton, G. and Taylor, J. (2014) 'A normal form for spider diagrams of order', Journal of Visual Languages and Computing. 2014 International Workshop on Visual Languages and Computing, Elsevier, pp. 935-944. doi: 10.1016/j.jvlc.2014.10.029.
Thompson, S. and Li, H. (2013) 'Refactoring tools for functional languages', Journal of Functional Programming. Cambridge University Press, pp. 293-350. doi: doi:10.1017/S0956796813000117.
Thompson, S., Laemmel, R. and Kaiser, M. (2013) 'Programming errors in traversal programs over structured data', Science of Computer Programming. Elsevier. doi: 10.1016/j.scico.2011.11.006.
Griffin, D. K., Mitchell, D. and Thompson, S. (2009) 'Podcasting by synchronising PowerPoint and voice: What are the pedagogical benefits?', Computers and Education. Elsevier, pp. 532-539. doi: 10.1016/j.compedu.2009.03.011.
Stapleton, G., Taylor, J., Thompson, S. and Howse, J. (2009) 'The expressiveness of spider diagrams augmented with constants', Journal of Visual Languages and Computing. Elsevier, pp. 30-49. doi: 10.1016/j.jvlc.2008.01.005.
Li, H., Thompson, S. and Reinke, C. (2005) 'The Haskell Refactorer, HaRe, and its API', Electronic Notes in Theoretical Computer Science. Edited by J. Boyland and G. Hedin. 5th Workshop on Language Descriptions, Tools and Applications (LDTA 2005), Elsevier, pp. 29-34. doi: 10.1016/j.entcs.2005.02.053.
Thompson, S., King, P. and Cameron, H. (2005) 'Modelling Reactive Multimedia: Design and Authoring', Multimedia Tools and Applications, pp. 23-52. doi: doi:10.1007/s11042-005-2713-9.
Stapleton, G., Howse, J., Taylor, J. and Thompson, S. (2004) 'The Expressiveness of Spider Diagrams', Journal of Logic and Computation. Oxford University Press, pp. 857-880. doi: 10.1093/logcom/14.6.857.
Bowman, H. and Thompson, S. (2003) 'A Decision Procedure and Complete Axiomatization of Finite Interval Temporal Logic with Projection', Journal of Logic and Computation. Oxford University Press, pp. 195-239. doi: 10.1093/logcom/13.2.195.
Bowman, H., Cameron, H., King, P. and Thompson, S. (2003) 'Mexitl: Multimedia in Executable Interval Temporal Logic', Formal Methods in System Design. Kluwer, pp. 5-38. doi: 10.1023/A:1021736013555.
Cameron, H., King, P. and Thompson, S. (2003) 'Modelling Reactive Multimedia: Events and Behaviours', Multimedia Tools and Applications. Kluwer Academic Publishers, pp. 53-77. doi: 10.1023/A:1021168913400.
Charles, N., Bowman, H. and Thompson, S. (1997) 'From ACT-ONE to Miranda, a Translation Experiment', Computer Standards and Interfaces. North-Holland, pp. 31-49. doi: 10.1016/S0920-5489(97)00005-6.
Thompson, S. (1995) 'A Logic for Miranda, Revisited', Formal Aspects of Computing.
Lins, R. D., Thompson, S. and Jones, S. L. P. (1994) 'On the Equivalence Between CMC and TIM', Journal of Functional Programming. doi: 10.1017/S0956796800000939.
Thompson, S. and Lins, R. D. (1992) 'The categorical multi-combinator machine - cmcm', Computer Journal. Cambridge University press, pp. 170-176. doi: 10.1093/comjnl/35.2.170.
Thompson, S. (1989) 'A Logic for Miranda', Formal Aspects of Computing. doi: 10.1007/bf01887213.
Book sections
Lamela Seijas, P., Smith, D. and Thompson, S. (2020) 'Efficient Static Analysis of Marlowe Contracts', in Margaria, T. and Steffen, B. (eds) ISoLA 2020: Leveraging Applications of Formal Methods, Verification and Validation: Applications. Cham, Switzerland: Springer, pp. 161-177. doi: 10.1007/978-3-030-61467-6_11.
Bereczky, P., Horpácsi, D. and Thompson, S. (2020) 'Machine-checked natural semantics for Core Erlang: exceptions and side effects', in Proceedings of the 19th ACM SIGPLAN International Workshop on Erlang. 19th ACM SIGPLAN International Workshop on Erlang, ACM, pp. 1-13. doi: 10.1145/3406085.3409008.
Bereczky, P., Thompson, S. and Horpacsi, D. (2020) 'A Proof Assistant Based Formalisation of a Subset of Sequential Core Erlang', in Byrski, A. and Hughes, J. (eds) Trends in Functional Programming: 21st International Symposium, TFP 2020, Krakow, Poland, February 13–14, 2020, Revised Selected Papers. International Symposium on Trends in Functional Programming, Cham: Springer, pp. 139-158. doi: 10.1007/978-3-030-57761-2_7.
Lamela Seijas, P., Nemish, A., Smith, D. and Thompson, S. (2020) 'Marlowe: Implementing and Analysing Financial Contracts on Blockchain', in Bernhard, M., Bracciali, A., Camp, L. J., Matsuo, S., Maurushat, A., Rønne, P. B., and Sala, M. (eds) Financial Cryptography and Data Security. Cham, Switzerland: Springer, pp. 496-511. doi: 10.1007/978-3-030-54455-3_35.
Thompson, S. and Lamela Seijas, P. (2018) 'Marlowe: Financial Contracts on Blockchain', in Leveraging Applications of Formal Methods, Verification and Validation. Industrial Practice. ISoLA 2018: Leveraging Applications of Formal Methods, Verification and Validation. Industrial Practice, Switzerland: Springer-Verlag Berlin. doi: 10.1007%2F978-3-030-03427-6_27.
Lamela Seijas, P. and Thompson, S. (2016) 'Identifying and introducing interfaces and callbacks using Wrangler', in Proceedings of the 28th Symposium on the Implementation and Application of Functional Programming Languages. 28th Symposium on the Implementation and Application of Functional Programming Languages, New York, USA: ACM. doi: 10.1145/3064899.3064909.
Seijas, P. L., Thompson, S. and Francisco, M. Ángel (2016) 'Model extraction and test generation from JUnit test suites', in Proceedings of the 11th International Workshop on Automation of Software Test. 2016 11th IEEE/ACM International Workshop in Automation of Software Test, New York, USA: ACM, pp. 8-14. doi: 10.1145/2896921.2896927.
Li, H. and Thompson, S. (2015) 'Safe Concurrency Introduction through Slicing', in Proceedings of the 2015 Workshop on Partial Evaluation and Program Manipulation. 2015 Workshop on Partial Evaluation and Program Manipulation, New York, USA: ACM, pp. 103-113. doi: 10.1145/2678015.2682533.
Thompson, S. (2014) 'How to stand out digitally', in Jolly, A. (ed.) The Growing Business Handbook. Kogan Page, pp. 129-131.
Lamela Seijas, P., Li, H. and Thompson, S. (2013) 'Towards property-based testing of RESTful web services', in Proceedings of the twelfth ACM SIGPLAN workshop on Erlang. The 18th ACM SIGPLAN International Conference on Functional Programming, New York, USA: ACM, pp. 77-78. doi: 10.1145/2505305.2505317.
Boudeville, O., Cesarini, F., Chechina, N., Lundin, K., Papaspyrou, N., Sagonas, K., Thompson, S., Trinder, P. and Wiger, U. (2013) 'RELEASE: A High-level Paradigm for Reliable Large-scale Server Software', in Trends in Functional Programming 13th International Symposium. Berlin, Germany: Springer, pp. 263-278. doi: 10.1007/978-3-642-40447-4_17.
Stapleton, G., Howse, J., Thompson, S., Taylor, J. and Chapman, P. (2013) 'On the Completeness of Spider Diagrams Augmented with Constants', in Moktefi, A. and Shin, S.-J. (eds) Visual Reasoning with Diagrams. Birkhauser, pp. 101-133. doi: doi:10.1007/978-3-0348-0600-8_7.
Li, H. and Thompson, S. (2012) 'Let's Make Refactoring Tools User-extensible!', in Sommerlad, P. (ed.) Proceedings of the Fifth Workshop on Refactoring Tools. The Fifth ACM Workshop on Refactoring Tools, New York, USA: ACM, pp. 32-39. doi: 10.1145/2328876.2328881.
Clear, T., Caxton, G., Thompson, S. and Fincher, S. (2011) 'Cooperative and Work-Integrated Education in Information Technology', in Coll, R. and Zegwaard, K. (eds) Integrated Handbook for Cooperative and Work-Integrated Education. World Associate of Cooperative Education, Inc, pp. 182-196. Available at: http://www.cs.kent.ac.uk/pubs/2011/3178.
Arts, T. and Thompson, S. (2010) 'From Test Cases to FSMs: Augmented Test-driven Development and Property Inference', in Fritchie, S. L. and Sagonas, K. (eds) Proceedings of the 9th ACM SIGPLAN workshop on Erlang. Erlang'10: Proceedings of the 2010 ACM SIGPLAN Erlang Workshop, New York, USA: ACM, pp. 182-196. doi: 10.1145/1863509.1863511.
Li, H. and Thompson, S. (2010) 'Refactoring Support for Modularity Maintenance in Erlang', in Vunju, J. and Marinescu, C. (eds) 2010 10th IEEE Working Conference on Source Code Analysis and Manipulation. Tenth IEEE International Working Conference on Source Code Analysis and Manipulation, IEEE, pp. 182-196. doi: 10.1109/SCAM.2010.17.
Li, H. and Thompson, S. (2010) 'Improved Testing Through Refactoring: Experience from the ProTest project', in Bottaci, L. and Fraser, G. (eds) Testing – Practice and Research Techniques 5th International Academic and Industrial Conference. Testing - Practice and Research Techniques: 5th International Academic and Industrial Conference, TAIC PART 2010, Berlin, Germany: Springer, pp. 182-196. doi: 10.1007/978-3-642-15585-7_21.
Drienyovszky, D., Horpacsi, D. and Thompson, S. (2010) 'Quickchecking Refactoring Tools', in Fritchie, S. L. and Sagonas, K. (eds) Proceedings of the 9th ACM SIGPLAN workshop on Erlang. ErlangÂ?10: Proceedings of the 2010 ACM SIGPLAN Erlang Workshop, New York, USA: ACM, pp. 182-196. doi: 10.1145/1863509.1863521.
Brown, C. and Thompson, S. (2010) 'Clone Detection and Elimination for Haskell', in Gallagher, J. and Voigtlander, J. (eds) PEPM '10 Proceedings of the 2010 ACM SIGPLAN workshop on Partial evaluation and program manipulation. PEPM'10: Proceedings of the 2010 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, New York, USA: ACM, pp. 182-196. doi: 10.1145/1706356.1706378.
Li, H. and Thompson, S. (2010) 'Similar Code Detection and Elimination for Erlang Programs', in Carro, M. and Pena, R. (eds) Practical Aspects of Declarative Languages 12th International Symposium. Practical Aspects of Declarative languages 2010, Berlin, Germany: Springer, pp. 182-196. doi: 10.1007/978-3-642-11503-5_10.
Li, H., Thompson, S., Orosz, G. and Tóth, M. (2008) 'Refactoring with Wrangler, updated: Data and process refactorings, and integration with Eclipse', in Horváth, Z. and Teoh, T. (eds) ERLANG '08 Proceedings of the 7th ACM SIGPLAN workshop on ERLANG. Proceedings of the Seventh ACM SIGPLAN Erlang Workshop, New York, USA: ACM, pp. 61-72. doi: 10.1145/1411273.1411283.
Delaney, A., Taylor, J. and Thompson, S. (2008) 'Spider Diagrams of Order and a Hierarchy of Star-Free Regular Languages', in Stapleton, G., Howse, J., and Lee, J. (eds) Diagrammatic Representation and Inference 5th International Conference. Diagrammatic Representation and Inference: 5th International Conference, Diagrams 2008, Herrsching, Germany, September 19-21, 2008, Berlin, Germany: Springer, pp. 172-187. doi: 10.1007/978-3-540-87730-1_18.
Sultana, N. and Thompson, S. (2008) 'Mechanical Verification of Refactorings', in PEPM '08 Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation. Workshop on Partial Evaluation and Program Manipulation, New York, USA: ACM, pp. 51-60. doi: 10.1145/1328408.1328417.
Li, H. and Thompson, S. (2007) 'Testing Erlang Refactorings with QuickCheck', in Lecture Notes In Computer Science archive. the 19th International Symposium on Implementation and Application of Functional Languages, IFL 2007, LNCS, Berlin, Germany: Springer, pp. 19-36. doi: 10.1007/978-3-540-85373-2_2.
Thompson, S., King, P. R. and Schmitz, P. (2007) 'Declarative extensions of XML languages', in King, P. and Simske, S. (eds) DocEng '07 Proceedings of the 2007 ACM symposium on Document engineering. Proceedings of the 2007 ACM symposium on Document engineering, New York, USA: ACM, pp. 89-91. doi: 10.1145/1284420.1284442.
Li, H. and Thompson, S. (2006) 'A Comparative Study of Refactoring Haskell and Erlang Programs', in Penta, M. D. and Moonen, L. (eds) Sixth IEEE International Workshop on Source Code Analysis and Manipulation. Sixth IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 2006), IEEE, pp. 197-206. doi: 10.1109/SCAM.2006.8.
Stapleton, G., Thompson, S., Fish, A., Howse, J. and Taylor, J. (2005) 'A New Language for the Visualization of Logic and reasoning', in Cox, P. and Smedley, T. (eds) Proceedings of the 2005 International Workshop on Visual Languages and Computing. Proceedings of the 2005 International Workshop on Visual Languages and Computing, Knowledge Systems Institute, pp. 287-292.
Ryder, C. and Thompson, S. (2005) 'Software Metrics: Measuring Haskell', in van Eekelen, M. (ed.) Trends in Functional Programming. Bristol, UK: Intellect Books.
Li, H. and Thompson, S. (2005) 'Formalisation of Haskell Refactorings', in van Eekelen, M. and Hammond, K. (eds) Trends In Funtional Programming. Bristol, UK: Intellect Books.
Stapleton, G., Howse, J., Taylor, J. and Thompson, S. (2004) 'The Expressiveness of Spider Diagrams Augmented with Constants', in 2004 IEEE Symposium on Visual Languages - Human Centric Computing. Visual Languages / Human Centered Computing 2004, IEEE, pp. 90-98. doi: 10.1109/VLHCC.2004.57.
Thompson, S. (2004) 'Refactoring Functional Programs', in Vene, V. and Uustalu, T. (eds) Advanced Functional Programming 5th International School. Advanced Functional Programming: 5th International School, AFP 2004, Berlin, Germany: Springer, pp. 331-357. doi: 10.1007/11546382_9.
King, P., Schmitz, P. and Thompson, S. (2004) 'Behavioural Reactivity and Real Time Programming in XML: Functional Programming meets SMIL animation', in Vion-Dury, J.-Y. (ed.) Proceedings of the 2004 ACM symposium on Document engineering. ACM Symposium on Document Engineering 2004, New York, USA: ACM, pp. 57-66. doi: 10.1145/1030397.1030411.
Li, H. and Thompson, S. (2003) 'Tool Support for Refactoring Functional Programs', in Jeuring, J. (ed.) Proceedings of the 2nd Workshop on Refactoring Tools. ACM SIGPLAN 2003 Haskell Workshop, ACM, pp. 27-38. doi: 10.1145/1636642.1636644.
Thompson, S. and Reinke, C. (2003) 'A Case Study in Refactoring Functional Programs', in Ierusalimschy, R., Figueiredo, L., and Valente, M. T. (eds) Proceedings of the 7th Brazilian Symposium on Programming Languages. VII Brazilian Symposium on Programming Languages, Springer, pp. 1-16.
Poll, E. and Thompson, S. (2000) 'Integrating Computer Algebra and Reasoning through the Type System of Aldor', in Kirchner, H. and Ringeissen, C. (eds) Frontiers of Combining Systems Third International Workshop. 3rd International Workshop on Frontiers of Combining Systems (FroCoS 2000), Berlin, Germany: Springer, pp. 136-150. doi: 10.1007/10720084_10.
Thompson, S. (1999) 'Proof', in Hammond, K. and Michaelson, G. (eds) Research Directions in Parallel Functional Programming. Springer Verlag, pp. 93-119.
Cameron, H., King, P., Bowman, H. and Thompson, S. (1998) 'Synchronization in Multimedia Documents', in Andre, J. (ed.) Electronic Publishing, Artistic Imaging, and Digital Typography 7th International Conference on Electronic Publishing. Electronic Publishing 98, Berlin, Germany: Springer, pp. 355-369. doi: 10.1007/BFb0053283.
Bowman, H. and Thompson, S. (1998) 'A tableau method for interval temporal logic with projection', in deSwart, H. (ed.) Automated Reasoning with Analytic Tableaux and Related Methods International Conference. International Conference on Analytic Tableaux and Related Methods (TABLEAUX 98), Berlin, Germany: Springer, pp. 108-123. doi: 10.1007/3-540-69778-0_17.
Thompson, S. and Hill, S. (1995) 'Functional programming through the curriculum', in Hartel, P. H. and Plasmeijer, R. (eds) Funtional Programming Languages in Education First International Symposium. 1st International Symposium on Functional Programming Languages in Education (FPLE 95), Berlin Germany: Springer, pp. 85-102. doi: 10.1007/3-540-60675-0_40.
Thompson, S. (1992) 'Are subsets necessary in Martin-Lof type theory?', in Myers Jr, J. and O'Donnell, M. (eds) Constructivity in Computer Science Summer Symposium. Berlin, Germany: Springer, pp. 46-57. doi: 10.1007/BFb0021082.
Monographs
Lamela Seijas, P., Thompson, S., Taylor, R., Bogdanov, K. and Derrick, J. (2014) Synapse: automatic behaviour inference and implementation comparison for Erlang. University of Kent.
Lamela Seijas, P., Li, H. and Thompson, S. (2013) Towards Property-Based Testing of RESTful Web Services. School of Computing, University of Kent.
Li, H. and Thompson, S. (2011) A User-extensible Refactoring Tool for Erlang Programs. Available at: http://www.cs.kent.ac.uk/pubs/2011/3171.
Li, H. and Thompson, S. (2011) A Domain-Specific Language for Scripting Refactorings in Erlang. Available at: http://www.cs.kent.ac.uk/pubs/2011/3172.
Li, H., Lindberg, A., Schumacher, A. and Thompson, S. (2009) Improving your test code with Wrangler. Available at: http://www.cs.kent.ac.uk/pubs/2009/2964.
Ryder, C. and Thompson, S. (2005) Porting HaRe to the GHC API. Computing Laboratory, University of Kent.
Li, H., Reinke, C. and Thompson, S. (2004) Progress on HaRe: the Haskell Refactorer. kent university.
Thompson, S. and Reinke, C. (2001) Refactoring Functional Programs. Computing Laboratory, University of Kent.
Bowman, H. and Thompson, S. (2000) A Complete Axiomatization of Interval Temporal Logic with Projection. University of Kent.
Thompson, S. (2000) Regular Expressions and Automata using Haskell. University of Kent.
Ryder, C. and Thompson, S. (1999) Aldor meets Haskell. Computing Laboratory, University of Kent.
Felleisen, M., Hanus, M. and Thompson, S. (1999) Proceedings of the 1999 Workshop on Functional and Declarative Programming in Education. Rice University.
Poll, E. and Thompson, S. (1999) The Type System of Aldor. Available at: http://www.cs.kent.ac.uk/pubs/1999/874.
Poll, E. and Thompson, S. (1998) Adding the axioms to Axiom: Towards a system of automated reasoning in Aldor. Kent University.
Thompson, S. (1998) A Functional Reactive Animation of a Lift using Fran. Cambridge University Press.
Bowman, H. and Thompson, S. (1997) A Tableau Method for Interval Temporal Logic. University of Kent at Canterbury.
Bowman, H., Cameron, H., King, P. and Thompson, S. (1997) Mexitl: Multimedia in Executable Interval Temporal Logic. University of Kent.
Thompson, S. (1997) Higher-order + Polymorphic = Reusable. University of Kent.
Telford, A. J. and Thompson, S. (1996) Abstract Interpretation of Constructive Type Theory. UKC.
Thompson, S. (1995) Programming Language Semantics using Miranda. UKC.
Thompson, S. (1995) Regular Expressions and Automata using Miranda. UKC.
Thompson, S. (1992) Formulating Haskell. University of Kent, Canterbury, UK.
Lins, R. D. and Thompson, S. (1990) Implementing SASL using Categorical Multi-combinators. UKC.
Thompson, S. (1987) Interactive Functional Programs: a Method and a Formal Semantics. Computing Laboratory, University of Kent.
Thompson, S. (1986) Proving properties of functions defined on lawful types. Computing Laboratory, University of Kent.
Conference or workshop items
Thompson, S. and Horpacsi, D. (2023) 'Refactoring = Substitution + Rewriting: Towards Generic, Language-Independent Refactorings', in. Eelco Visser Commemorative Symposium (EVCS 2023), Dagstuhl, Germany: Schloss Dagstuhl — Leibniz-Zentrum für Informatik, pp. 26:1-26:9. doi: 10.4230/OASIcs.EVCS.2023.26.
Brown, C., Barwell, A. D., Thompson, S., Sarkar, S. and Brady, E. (2022) 'Towards a Refactoring Tool for Dependently-Typed Programs Extended Abstract', in. 9th International Workshop on Rewriting Techniques for Program Transformations and Evaluation. Available at: https://wpte2022.github.io/.
Bocchi, L., Lange, J., Thompson, S. and Voinea, L. (2022) 'A Model of Actors and Grey Failures', in ter Beek, M. H. and Sirjani, M. (eds). COORDINATION 2022: Coordination Models and Languages, Springer. doi: 10.1007/978-3-031-08143-9_9.
Harrison, J. R., Thompson, S., Varoumas, S. and Rowe, R. (2020) 'API migration: compare transformed', in. OCaml workshop 2020. Available at: https://ocaml.org/workshops/ocaml-workshop-2020.
Rowe, R., Férée, H., Thompson, S. and Owens, S. (2019) 'Characterising Renaming within OCaml's Module System: Theory and Implementation', in. PLDI '19: ACM SIGPLAN Conference on Programming Language Design and Implementation, ACM New York, NY, USA ©2019: ACM, pp. 950-965. doi: 10.1145/3314221.3314600.
Rowe, R., Férée, H., Thompson, S. and Owens, S. (2019) 'ROTOR : A Tool for Renaming Values in OCaml's Module System', in. 3rd International Workshop on Refactoring, IEEE Press, pp. 27-30. doi: 10.1109/IWoR.2019.00013.
Thompson, S., Horpacsi, D. and Koszegi, J. (2016) 'Towards Trustworthy Refactoring in Erlang', in Hamilton, G., Lisitsa, A., and Nemytykh, A. P. (eds). Fourth International Workshop on Verification and Program Transformation, pp. 83-103. doi: 10.4204/EPTCS.216.5.
Thompson, S. and Runciman, C. (2015) 'Demur: checking functional-program properties using bounded recursion', in. Sixth Workshop on Tools for Automatic Program Analysis.
Li, H. and Thompson, S. (2014) 'Improved semantics and implementation through property-based testing with QuickCheck', in. Proceedings of the 9th International Workshop on Automation of Software Test, pp. 50-56. doi: doi:10.1145/2593501.2593509.
Li, H., Thompson, S., Lamela Seijas, P. and Francisco, M. A. (2014) 'Automating property-based testing of evolving web services', in. ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation (PEPM'14), pp. 169-180. doi: doi:10.1145/2543728.2543741.
Li, H. and Thompson, S. (2013) 'Multicore Profiling for Erlang Programs Using Percept2', in. Erlang Workshop 2013. doi: 2505305.2505311.
Rodgers, P., Baker, R., Thompson, S. and Li, H. (2013) 'Multi-level Visualization of Concurrent and Distributed Computation in Erlang', in. Visual Languages and Computing (VLC) in The 19th International Conference on Distributed Multimedia Systems (DMS 2013), Knowledge Systems Institute. Available at: http://www.ksi.edu/seke/dms13.html.
Li, H. and Thompson, S. (2012) 'Automated API migration in a user-extensible refactoring tool for Erlang programs', in. the 27th IEEE/ACM International Conference on Automated Software Engineering, ACM, pp. 294-297. doi: 10.1145/2351676.2351727.
Moraglio, A., Otero, F. E., Johnson, C. G., Thompson, S. and Freitas, A. A. (2012) 'Evolving Recursive Programs using Non-recursive Scaffolding', in. Proceedings of the 2012 IEEE World Congress on Computational Intelligence, pp. 1596-1603. Available at: http://www.cs.kent.ac.uk/pubs/2012/3225.
Li, H. and Thompson, S. (2012) 'A Domain-Specific Language for Scripting Refactorings in Erlang', in de Lara, J. and Zisman, A. (eds). 15th Fundamental Approaches to Software Engineering(FASE2012), Tallinn, Estonia: Lecture Notes in Computer Science. Springer, p. 15pp. doi: 10.1007/978-3-642-28872-2_34.
Arts, T., Lamela Seijas, P. and Thompson, S. (2011) 'Extracting QuickCheck Specifications from EUnit Test Cases', in Rikitake, K. and Stenman, E. (eds). Erlang Workshop 2011, ACM Press, pp. 182-196. doi: 10.1145/2034654.2034666.
Li, H., Thompson, S. and Arts, T. (2011) 'Extracting Properties from Test Cases by Refactoring', in Counsell, S. (ed.). Proceedings of the Refactoring and Testing Workshop (RefTest 2011), IEEE digital library, pp. 182-196. Available at: http://www.cs.kent.ac.uk/pubs/2011/3086.
Li, H. and Thompson, S. (2011) 'Incremental Code Clone Detection and Elimination for Erlang Programs', in Giannakopoulou, D. and Orejas, F. (eds). Proceedings of the Conference on Fundamental Approaches to Software Engineering (FASE'11), Springer, pp. 182-196. Available at: http://www.cs.kent.ac.uk/pubs/2011/3087.
Cesarini, F. and Thompson, S. (2010) 'Erlang Behaviours: Programming With Process Design Patterns', in Horváth, Z., Plasmeijer, R., and Zóka, V. (eds). Central European Functional Programming School, CEFP 2009, Springer, pp. 182-196. doi: 10.1007/978-3-642-17685-2_2.
Otero, F. E., Johnson, C. G., Freitas, A. A. and Thompson, S. (2010) 'Refactoring in Automatically Generated Programs', in. 2nd International Symposium on Search Based Software Engineering.
Delaney, A., Stapleton, G., Taylor, J. and Thompson, S. (2010) 'Fragments of Spider Diagrams of Order and their Relative Expressiveness', in Goel, A. K., Jamnik, M., and Narayanan, N. H. (eds). Diagrammatic Representation and Inference 6th International Conference, Diagrams 2010, Springer, pp. 182-196. doi: 10.1007/978-3-642-14600-8.
Brown, C., Li, H. and Thompson, S. (2010) 'An Expression Processor: A Case Study in Refactoring Haskell Programs', in Page, R. (ed.). Eleventh Symposium on Trends in Functional Programming, pp. 182-196. Available at: http://www.cs.kent.ac.uk/pubs/2010/3009.
Li, H. and Thompson, S. (2009) 'Testing-framework-aware Refactoring', in. The Third ACM Workshop on Refactoring Tools, Orlando, Florida, pp. 182-196. Available at: http://www.cs.kent.ac.uk/pubs/2009/2965.
Rowe, R., Férée, H., Thompson, S. and Owens, S. (2009) 'ROTOR: A Tool for Renaming Values in OCaml's Module System', in. 3rd International Workshop on Refactoring, IEEE. doi: 10.1109/IWoR.2019.00013.
Li, H. and Thompson, S. (2009) 'Clone Detection and Removal for Erlang/OTP within a Refactoring Environment', in Penta, M. D. and Knodel, J. (eds). Third International Workshop on Detection of Software Clones, Kaiserslautern, Germany, p. 1pp.
Li, H. and Thompson, S. (2009) 'Clone Detection and Removal for Erlang/OTP within a Refactoring Environment', in. ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation (PEPM'09), Savannah, Georgia, USA.
Li, H., Thompson, S., Orosz, G. and Töth, M. (2008) 'Refactoring with Wrangler, updated', in. doi: 10.1145/1411273.1411283.
Li, H. and Thompson, S. (2008) 'Clone Detection and Removal for Erlang/OTP within a Refactoring Environment', in Achten, P., Koopman, P., and Morazán, M. (eds). Draft Proceedings of the Ninth Symposium on Trends in Functional Programming(TFP), The Netherlands. doi: 10.1145/1480945.1480971.
Sultana, N. and Thompson, S. (2008) 'A Certified Refactoring Engine', in Achten, P., Koopman, P., and Morazán, M. (eds). Draft Proceedings of the Ninth Symposium on Trends in Functional Programming (TFP).
Laemmel, R., Thompson, S. and Kaiser, M. (2008) 'Programming errors in traversal programs over structured data', in Vinju, J. and Johnstone, A. (eds). 8th Workshop on Language Description, Tools and Applications, Springer. doi: 10.1016/j.entcs.2009.09.045.
Brown, C. and Thompson, S. (2007) 'Refactorings that Split and Merge Programs', in. Draft Proceedings of the 19th International Symposium on Implementation and Application of Functional Languages, IFL 2007, Freiburg, Germany.
Li, H., Thompson, S., Lövei, L., Horváth, Z., Kozsik, T., Víg, A. and Nagy, T. (2006) 'Refactoring Erlang Programs', in. The Proceedings of 12th International Erlang/OTP User Conference, Stockholm, Sweden.
Patrascoiu, O., Thompson, S. and Rodgers, P. (2005) 'Tableaux for Diagrammatic Reasoning', in Cox, P. and Smedley, T. (eds). Proceedings of the 2005 International Workshop on Visual Languages and Computing, Knowledge Systems Institute, pp. 279-286.
Stapleton, G., Howse, J., Taylor, J. and Thompson, S. (2004) 'What Can Spider Diagrams Say?', in Blackwell, A., Marriott, K., and Shimojima, A. (eds). Diagrammatic Representation and Inference, Springer, pp. 179-186. doi: 10.1007/978-3-540-25931-2_12.
Schmitz, P., Thompson, S. and King, P. (2003) 'Presentation Dynamism in XML', in. Budapest, Hungary: W3C. Available at: http://www.cs.kent.ac.uk/pubs/2003/1608.
Hanus, M., Krishnamurthy, S. and Thompson, S. (2002) 'Functional and Declarative Programming in Education 2002', in. Functional and Declarative Programming in Education (FDPE02).
Thompson, S. (2001) 'Logic and Dependent Types in the Aldor Computer Algebra System', in Kerber, M. and Kohlhase, M. (eds). Symbolic Computation and Automated Reasoning, A K Peters, pp. 205-219.
Bowman, H. and Thompson, S. (1998) 'A Tableau Method for Interval Temporal Logic with Projection', in. TABLEAUX'98, International Conference on Analytic Tableaux and Related Methods.
Thompson, S. (1997) 'em Where do I begin? A problem solving approach to teaching functional programming', in Apt, K., Hartel, P. H., and Klint, P. (eds). First International Conference on Declarative Programming Languages in Education, Springer-Verlag.
Barnes, D. J., Fincher, S. and Thompson, S. (1997) 'Introductory Problem Solving in Computer Science', in Daughton, G. and Magee, P. (eds). 5th Annual Conference on the Teaching of Computing, Centre for Teaching Computing, Dublin City University, Dublin 9, Ireland, pp. 36-39.
Bowman, H., Cameron, H., King, P. and Thompson, S. (1997) 'Specification and Prototyping of Structured Multimedia Documents using Interval Temporal Logic', in. International Conference on Temporal Logic, Kluwer.
Thompson, S. (1997) 'Constructive interval temporal logic in Alf', in Barringer, H. (ed.). International Conference on Temporal Logic 1997, Kluwer, pp. 377-390.
Hill, S. and Thompson, S. (1995) 'Miranda in Isabelle', in Paulson, L. C. (ed.). Preceedings of the first Isabelle Users Workshop, pp. 122-135.
Books
Thompson, S. (2011) Haskell: the craft of functional programming. Addison-Wesley, pp. 182-196. Available at: http://www.cs.kent.ac.uk/pubs/2011/3185.
Cesarini, F. and Thompson, S. (2009) Erlang Programming. O'Reilly.
Thompson, S. (1999) Haskell: the Craft of Functional Programming. Harlow, UK: Addison-Wesley, p. 507pp.
Thompson, S. (1996) Haskell: The Craft of Functional Programming. Addison Wesley.
Thompson, S. (1995) Miranda: The Craft of Functional Programming. Addison Wesley.
Thompson, S. (1991) Type Theory and Functional Programming. Addison Wesley. Available at: http://www.cs.kent.ac.uk/people/staff/sjt/TTFP/ttfp.pdf.
Others
Cesarini, F. and Thompson, S. (2011) 'Erlang by Example', pp. 182-196. Available at: http://www.cs.kent.ac.uk/pubs/2011/3187.
Howse, J., Bosworth, R., Fish, A., Stapleton, G., Taylor, J., Rodgers, P. and Thompson, S. (2006) 'Euler diagram-based notations', Technical Report. N/A.
Edited books
Thompson, S. (2018) Proceedings of the Sixth Workshop on Trends in Functional Programming in Education. Edited by S. Thompson. EPTCS. doi: 10.4204/EPTCS.270.
Preprint
Thompson, S., Lamela Seijas, P. and Adams, D. (2016) 'Scripting smart contracts for distributed ledger technology'. doi: Paper 2016/1156.
Total publications in KAR: 142 [See all in KAR]

School of Computing, University of Kent, Canterbury, Kent, CT2 7NF

Enquiries: +44 (0)1227 824180 or contact us.

Last Updated: 28/03/2024