Characterization and Identification of Programming Languages

Authors Júlio Alves, Alvaro Costa Neto , Maria João Varanda Pereira , Pedro Rangel Henriques



PDF
Thumbnail PDF

File

OASIcs.SLATE.2023.13.pdf
  • Filesize: 0.54 MB
  • 13 pages

Document Identifiers

Author Details

Júlio Alves
  • ALGORITMI Research Centre/LASI, University of Minho, Braga, Portugal
Alvaro Costa Neto
  • Federal Institute of Education, Science and Technology of São Paulo, Barretos, Brazil
Maria João Varanda Pereira
  • Research Centre in Digitalization and Intelligent Robotics, Polythechnic Insitute of Bragança, Portugal
Pedro Rangel Henriques
  • ALGORITMI Research Centre/LASI, University of Minho, Braga, Portugal

Cite As Get BibTex

Júlio Alves, Alvaro Costa Neto, Maria João Varanda Pereira, and Pedro Rangel Henriques. Characterization and Identification of Programming Languages. In 12th Symposium on Languages, Applications and Technologies (SLATE 2023). Open Access Series in Informatics (OASIcs), Volume 113, pp. 13:1-13:13, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2023) https://doi.org/10.4230/OASIcs.SLATE.2023.13

Abstract

This paper presents and discusses a research work whose main goal is to identify which characteristics influence the recognition and identification, by a programmer, of a programming language, specifically analysing a program source code and its linguistic style. In other words, the study that is described aims at answering the following questions: which grammatical elements - including lexical, syntactic, and semantic details - contribute the most for the characterization of a language? How many structural elements of a language may be modified without losing its identity? The long term objective of such research is to acquire new insights on the factors that can lead language engineers to design new programming languages that reduce the cognitive load of both learners and programmers. To elaborate on that subject, the paper starts with a brief explanation of programming languages fundamentals. Then, a list of the main syntactic characteristics of a set of programming languages, chosen for the study, is presented. Those characteristics outcome from the analysis we carried on at first phase of our project. To go deeper on the investigation we decided to collect and analyze the opinion of other programmers. So, the design of a survey to address that task is discussed. The answers obtained from the application of the questionnaire are analysed to present an overall picture of programming languages characteristics and their relative influence to their identification from the programmers’ perspective.

Subject Classification

ACM Subject Classification
  • Software and its engineering → Language types
  • Software and its engineering → Formal language definitions
Keywords
  • Programming Languages
  • Programming Language Characterization
  • Programming Language Design
  • Programming Language Identification

Metrics

  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    0
    PDF Downloads

References

  1. Sam A Abolrous. Learn C-Sharp - Includes the C-Sharp 3.0 Features. Wordware Pub, 2007. Google Scholar
  2. Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman. Compilers: principles, techniques & tools. Addison Wesley, 2007. Google Scholar
  3. Francesca Del Bonifro, Maurizio Gabbrielli, Antonio Lategano, and Stefano Zacchiroli. Image-based many-language programming language identification. PeerJ Computer Science, 7, 2021. Google Scholar
  4. Alvaro Costa Neto, Cristiana Araújo, Maria João Varanda Pereira, and Pedro Rangel Henriques. Value-Focused Investigation into Programming Languages Affinity. In Alberto Simões and João Carlos Silva, editors, Third International Computer Programming Education Conference (ICPEC 2022), volume 102 of Open Access Series in Informatics (OASIcs), pages 1:1-1:12, Dagstuhl, Germany, 2022. Schloss Dagstuhl - Leibniz-Zentrum für Informatik. URL: https://doi.org/10.4230/OASIcs.ICPEC.2022.1.
  5. Robert W. Floyd. The syntax of programming languages, 1964. Google Scholar
  6. James Gosling, William N. Joy, and Guy L. Steele. The java language specification, 1996. Google Scholar
  7. Ralph L. Keeney. Value-focused thinking: Identifying decision opportunities and creating alternatives. European Journal of Operational Research, 92(3):537-549, 1996. URL: https://doi.org/10.1016/0377-2217(96)00004-5.
  8. Jyotiska Nath Khasnabish, Mitali Sodhi, Jayati Deshmukh, and Gopalakrishnan Srinivasaraghavan. Detecting programming language from source code using bayesian learning techniques. In MLDM, 2014. Google Scholar
  9. David Klein, Kyle Murray, and Simon Weber. Algorithmic programming language identification. ArXiv, abs/1106.4064, 2011. Google Scholar
  10. Dave Kuhlman. A Python Book: Beginning Python, Advanced Python, and Python Exercises. Platypus Global Media, 2015. Google Scholar
  11. Miran Lipovaca. Learn You a Haskell for Great Good! A Beginner’s Guide. No Starch Press, 2011. Google Scholar
  12. Tom Mitchell. Machine learning, 1997. Google Scholar
  13. Alvaro Costa Neto, Cristiana Araújo, Maria João Varanda Pereira, and Pedro Rangel Henriques. Programmers' affinity to languages. In ICPEC, 2021. Google Scholar
  14. Easy Programming. C Programming Language The Ultimate Beginner’s Guide. CreateSpace Independent Publishing Platform, 2016. Google Scholar
  15. Bjarne Stroustrup. A History of C++: 1979-1991, pages 699-769. Association for Computing Machinery, New York, NY, USA, 1996. Google Scholar
  16. Peter Norvig Stuart Russell. Artificial Intelligence: A Modern Approach. Prentice Hall Series in Artificial Intelligence. Prentice Hall, 3rd edition, 2010. Google Scholar
  17. Shaul Zevin and Catherine Holzem. Machine learning based source code classification using syntax oriented features. ArXiv, abs/1703.07638, 2017. Google Scholar
Questions / Remarks / Feedback
X

Feedback for Dagstuhl Publishing


Thanks for your feedback!

Feedback submitted

Could not send message

Please try again later or send an E-mail