{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,7,10]],"date-time":"2023-07-10T17:14:14Z","timestamp":1689009254741},"reference-count":38,"publisher":"Walter de Gruyter GmbH","issue":"1","license":[{"start":{"date-parts":[[2016,12,1]],"date-time":"2016-12-01T00:00:00Z","timestamp":1480550400000},"content-version":"unspecified","delay-in-days":0,"URL":"http:\/\/creativecommons.org\/licenses\/by\/4.0"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2016,12,1]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>We consider the problem of comparison of programming languages with respect to their ability to express programmers\u2019 ideas. Our assumption is that the way of programmers\u2019 thinking is reflected in languages used to describe software systems and programs (modelling languages, type theory, pattern languages). We have developed a list of criteria based on these languages and applied it to comparison of a number of widely used programming languages. The obtained result may be used to select a language for a particular task and choose evolution directions of programming languages.<\/jats:p>","DOI":"10.1515\/acss-2016-0012","type":"journal-article","created":{"date-parts":[[2017,1,24]],"date-time":"2017-01-24T10:01:09Z","timestamp":1485252069000},"page":"27-35","source":"Crossref","is-referenced-by-count":4,"title":["Extensible Model for Comparison of Expressiveness of Object-Oriented Programming Languages"],"prefix":"10.1515","volume":"20","author":[{"given":"Ruslan","family":"Batdalov","sequence":"first","affiliation":[{"name":"Riga Technical University, Latvia"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Oksana","family":"\u0145ikiforova","sequence":"additional","affiliation":[{"name":"Riga Technical University, Latvia"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Adrian","family":"Giurca","sequence":"additional","affiliation":[{"name":"Brandenburg Technical University, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"374","published-online":{"date-parts":[[2017,1,23]]},"reference":[{"key":"2021040615521176929_j_acss-2016-0012_ref_001_w2aab2b8c11b1b7b1ab1ab1Aa","unstructured":"[1] Matrix Resources, \u201cJune TIOBE index indicates the fall of programming market leaders,\u201d June 2016. [Online]. Available: http:\/\/www.matrixres.com\/resources\/tech-trends\/june-tiobe-index-indicates-the-fall-of-programming-market-leaders\/ [Accessed: Nov. 28, 2016]."},{"key":"2021040615521176929_j_acss-2016-0012_ref_002_w2aab2b8c11b1b7b1ab1ab2Aa","unstructured":"[2] J. Gosling, B. Joy, G. Steele, G. Bracha, and A. Buckley, \u201cThe Java language specification: Java\u00ae SE 8 edition,\u201d March 2015. [Online]. Available: http:\/\/docs.oracle.com\/javase\/specs\/jls\/se8\/jls8.pdf [Accessed: Nov. 28, 2016]."},{"key":"2021040615521176929_j_acss-2016-0012_ref_003_w2aab2b8c11b1b7b1ab1ab3Aa","doi-asserted-by":"crossref","unstructured":"[3] R. Batdalov, \u201cIs there a need for a programming language adapted for implementation of design patterns?\u201d in Proceedings of the 21st European Conference on Pattern Languages of Programs (EuroPLoP), Irsee, Germany, July 6\u201310, 2016.","DOI":"10.1145\/3011784.3011822"},{"key":"2021040615521176929_j_acss-2016-0012_ref_004_w2aab2b8c11b1b7b1ab1ab4Aa","unstructured":"[4] S. J. Russell and P. Norvig, Artificial Intelligence: A Modern Approach, Englewood Cliffs, NJ, USA: Prentice Hall, 1995."},{"key":"2021040615521176929_j_acss-2016-0012_ref_005_w2aab2b8c11b1b7b1ab1ab5Aa","doi-asserted-by":"crossref","unstructured":"[5] A. Leit\u00e3o, S. Proen\u00e7a, \u201cOn the expressive power of programming languages for generative design: the case of higher-order functions,\u201d in Proceedings of the 32nd International Conference on Education and Research in Computer Aided Architectural Design in Europe (eCAADe), Newcastle upon Tyne, England, Sep. 22\u201326, 2014, pp. 257\u2013266.","DOI":"10.52842\/conf.ecaade.2014.1.257"},{"key":"2021040615521176929_j_acss-2016-0012_ref_006_w2aab2b8c11b1b7b1ab1ab6Aa","unstructured":"[6] W. M. Farmer, \u201cChiron: a multi-paradigm logic,\u201d Studies in Logic, Grammar and Rhetoric, vol. 10, no. 23, 2007, pp. 1\u201319."},{"key":"2021040615521176929_j_acss-2016-0012_ref_007_w2aab2b8c11b1b7b1ab1ab7Aa","unstructured":"[7] S. C. McConnell, Code Complete, Microsoft Press, 2004."},{"key":"2021040615521176929_j_acss-2016-0012_ref_008_w2aab2b8c11b1b7b1ab1ab8Aa","unstructured":"[8] D. Berkholz, \u201cProgramming languages ranked by expressiveness,\u201d March 2013. [Online]. Available: http:\/\/redmonk.com\/dberkholz\/2013\/03\/25\/programming-languages-ranked-by-expressiveness\/ [Accessed: Nov. 28, 2016]."},{"key":"2021040615521176929_j_acss-2016-0012_ref_009_w2aab2b8c11b1b7b1ab1ab9Aa","doi-asserted-by":"crossref","unstructured":"[9] Y. Zhang, M. C. Loring, G. Salvaneschi, B. Liskov and A. C. Myers, \u201cLightweight, flexible object-oriented generics\u201d in Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation, Portland, OR, June 13\u201317, 2015, pp. 436\u2013445. https:\/\/doi.org\/10.1145\/2737924.2738008","DOI":"10.1145\/2737924.2738008"},{"key":"2021040615521176929_j_acss-2016-0012_ref_010_w2aab2b8c11b1b7b1ab1ac10Aa","unstructured":"[10] D. E. Knuth, The Art of Computer Programming: Fundamental Algorithms, Addison-Wesley, 1997."},{"key":"2021040615521176929_j_acss-2016-0012_ref_011_w2aab2b8c11b1b7b1ab1ac11Aa","doi-asserted-by":"crossref","unstructured":"[11] \u017d. Vaira and A. \u010caplinskas, \u201cSoftware engineering paradigm independent design problems, GoF 23 design patterns, and aspect design,\u201d Informatica, vol. 22, no. 2, pp. 289\u2013317, Apr. 2011.","DOI":"10.15388\/Informatica.2011.328"},{"key":"2021040615521176929_j_acss-2016-0012_ref_012_w2aab2b8c11b1b7b1ab1ac12Aa","doi-asserted-by":"crossref","unstructured":"[12] Z. Anik and O. F. Bayko\u00e7, \u201cComparison of the most popular object-oriented software languages and criterions for introductory programming courses with analytic network process: a pilot study,\u201d Computer Applications in Engineering Education, vol. 19, no. 1, pp. 89\u201396, March 2011. https:\/\/doi.org\/10.1002\/cae.20294","DOI":"10.1002\/cae.20294"},{"key":"2021040615521176929_j_acss-2016-0012_ref_013_w2aab2b8c11b1b7b1ab1ac13Aa","doi-asserted-by":"crossref","unstructured":"[13] N. Archvadze and M. Pkhovelishvili, \u201cReforming the trees \u2013 C# and F# comparison,\u201d in Proceedings of the 4th International Conference on Problems of Cybernetics and Informatics (PCI), Baku, Azerbaijan, Sep. 12\u201314, 2012, pp. 1\u20134. https:\/\/doi.org\/10.1109\/ICPCI.2012.6486287","DOI":"10.1109\/ICPCI.2012.6486287"},{"key":"2021040615521176929_j_acss-2016-0012_ref_014_w2aab2b8c11b1b7b1ab1ac14Aa","doi-asserted-by":"crossref","unstructured":"[14] B. M. Brosgol, \u201cA comparison of generic template support: Ada, C++, C#, and Java \u2122,\u201d in Proceedings of the 15th Ada-Europe International Conference on Reliable Software Technologies (Lecture Notes in Computer Science), Valencia, Spain, June 14\u201318, 2010, pp. 222\u2013237. https:\/\/doi.org\/10.1007\/978-3-642-13550-7_16","DOI":"10.1007\/978-3-642-13550-7_16"},{"key":"2021040615521176929_j_acss-2016-0012_ref_015_w2aab2b8c11b1b7b1ab1ac15Aa","doi-asserted-by":"crossref","unstructured":"[15] R. L\u00e4mmel, M. Leinberger, T. Schmorleiz and A. Varanovich, \u201cComparison of feature implementations across languages, technologies, and styles,\u201d in Proceedings of Software Evolution Week \/ IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE), Antwerp, Belgium, Feb. 3\u20136, 2014, pp. 333\u2013337. https:\/\/doi.org\/10.1109\/csmr-wcre.2014.6747188","DOI":"10.1109\/CSMR-WCRE.2014.6747188"},{"key":"2021040615521176929_j_acss-2016-0012_ref_016_w2aab2b8c11b1b7b1ab1ac16Aa","unstructured":"[16] M. Stein and A. Geyer-Schulz, \u201cA comparison of five programming languages in a graph clustering scenario,\u201d Journal of Universal Computer Science, vol. 19, no. 3, pp. 428\u2013456, 2013."},{"key":"2021040615521176929_j_acss-2016-0012_ref_017_w2aab2b8c11b1b7b1ab1ac17Aa","doi-asserted-by":"crossref","unstructured":"[17] N. Togashi and V. Klyuev, \u201cConcurrency in Go and Java: performance analysis\u201d in Proceedings of the 4th IEEE International Conference on Information Science and Technology (ICIST), Shenzen, China, Apr. 26\u201328, 2014, pp. 213\u2013216. https:\/\/doi.org\/10.1109\/icist.2014.6920368","DOI":"10.1109\/ICIST.2014.6920368"},{"key":"2021040615521176929_j_acss-2016-0012_ref_018_w2aab2b8c11b1b7b1ab1ac18Aa","unstructured":"[18] F. Buschmann, K. Henney and D. C. Schmidt, Pattern-Oriented Software Architecture Volume 5: On Patterns and Pattern Languages, Wiley, 2007."},{"key":"2021040615521176929_j_acss-2016-0012_ref_019_w2aab2b8c11b1b7b1ab1ac19Aa","unstructured":"[19] R. Batdalov, \u201cInheritance and class structure,\u201d in Proceedings of the 1st International Scientific-Practical Conference Object Systems \u2013 2010, Rostov-on-Don, Russia, May 10\u201312, 2010, pp. 92\u201395."},{"key":"2021040615521176929_j_acss-2016-0012_ref_020_w2aab2b8c11b1b7b1ab1ac20Aa","unstructured":"[20] R. Batdalov and O. Nikiforova, \u201cTowards easier implementation of design patterns,\u201d in Proceedings of the Eleventh International Conference on Software Engineering Advances (ICSEA 2016), Rome, Italy, August 21\u201325, 2016, pp. 123\u2013128."},{"key":"2021040615521176929_j_acss-2016-0012_ref_021_w2aab2b8c11b1b7b1ab1ac21Aa","unstructured":"[21] OMG, \u201cOMG Unified Modeling Language\u2122 (OMG UML),\u201d March 2015. [Online]. Available: http:\/\/www.omg.org\/spec\/UML\/2.5\/PDF [Accessed: Nov. 28, 2016]."},{"key":"2021040615521176929_j_acss-2016-0012_ref_022_w2aab2b8c11b1b7b1ab1ac22Aa","unstructured":"[22] B. C. Pierce, Types and Programming Languages, MIT Press, 2002."},{"key":"2021040615521176929_j_acss-2016-0012_ref_023_w2aab2b8c11b1b7b1ab1ac23Aa","unstructured":"[23] E. Gamma, R. Helm, R. Johnson and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley Publishing Company, 1995."},{"key":"2021040615521176929_j_acss-2016-0012_ref_024_w2aab2b8c11b1b7b1ab1ac24Aa","unstructured":"[24] F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad and M. Stal, Pattern-Oriented Software Architecture: A System of Patterns, Wiley, 2013."},{"key":"2021040615521176929_j_acss-2016-0012_ref_025_w2aab2b8c11b1b7b1ab1ac25Aa","unstructured":"[25] M. Fowler, Patterns of Enterprise Application Architecture, Addison-Wesley, 2003."},{"key":"2021040615521176929_j_acss-2016-0012_ref_026_w2aab2b8c11b1b7b1ab1ac26Aa","unstructured":"[26] Python Software Foundation, \u201cThe Python Language Reference,\u201d Oct. 2016. [Online]. Available: https:\/\/docs.python.org\/3\/reference\/index.html [Accessed: Nov. 28, 2016]."},{"key":"2021040615521176929_j_acss-2016-0012_ref_027_w2aab2b8c11b1b7b1ab1ac27Aa","unstructured":"[27] Mozilla Developer Network, \u201cJavaScript Reference,\u201d November 2016. [Online]. Available: https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference [Accessed: Nov. 28, 2016]."},{"key":"2021040615521176929_j_acss-2016-0012_ref_028_w2aab2b8c11b1b7b1ab1ac28Aa","unstructured":"[28] Perl 5 Porters, \u201cLanguage Reference.\u201d [Online]. Available: http:\/\/perldoc.perl.org\/index-language.html [Accessed: Nov. 28, 2016]."},{"key":"2021040615521176929_j_acss-2016-0012_ref_029_w2aab2b8c11b1b7b1ab1ac29Aa","unstructured":"[29] ISO\/IEC, \u201cInformation technology \u2013 Programming languages \u2013 C++,\u201d ISO\/IEC standard 14882:2014(E), Dec. 15, 2014."},{"key":"2021040615521176929_j_acss-2016-0012_ref_030_w2aab2b8c11b1b7b1ab1ac30Aa","unstructured":"[30] Microsoft Corporation, \u201cC# Language Specification: Version 5.0,\u201d 2012. [Online]. Available: https:\/\/www.microsoft.com\/en-us\/download\/details.aspx?id=7029 [Accessed: Nov. 28, 2016]."},{"key":"2021040615521176929_j_acss-2016-0012_ref_031_w2aab2b8c11b1b7b1ab1ac31Aa","unstructured":"[31] PHP Group, \u201cLanguage Reference,\u201d 2016. [Online]. Available: http:\/\/www.php.net\/manual\/en\/langref.php [Accessed: Nov. 28, 2016]."},{"key":"2021040615521176929_j_acss-2016-0012_ref_032_w2aab2b8c11b1b7b1ab1ac32Aa","unstructured":"[32] Microsoft Corporation, \u201cThe Microsoft\u00ae Visual Basic\u00ae Language Specification: Version 11.0,\u201d 2016. [Online]. Available: https:\/\/www.microsoft.com\/en-us\/download\/details.aspx?id=15039 [Accessed: Nov. 28, 2016]."},{"key":"2021040615521176929_j_acss-2016-0012_ref_033_w2aab2b8c11b1b7b1ab1ac33Aa","unstructured":"[33] ISO\/IEC, \u201cInformation technology \u2013 Programming languages \u2013 Ruby,\u201d ISO\/IEC standard 30170:2012(E), April 15, 2012."},{"key":"2021040615521176929_j_acss-2016-0012_ref_034_w2aab2b8c11b1b7b1ab1ac34Aa","unstructured":"[34] M. Odersky, P. Altherr, V. Cremet, G. Dubochet, B. Emir et al., \u201cScala Language Specification: Version 2.11.\u201d [Online]. Available: http:\/\/www.scala-lang.org\/files\/archive\/spec\/2.11\/ [Accessed: Nov. 28, 2016]."},{"key":"2021040615521176929_j_acss-2016-0012_ref_035_w2aab2b8c11b1b7b1ab1ac35Aa","unstructured":"[35] Google, \u201cThe Go Programming Language Specification,\u201d May 31, 2016. [Online]. Available: https:\/\/www.golang.org\/ref\/spec [Accessed: Nov. 28, 2016]."},{"key":"2021040615521176929_j_acss-2016-0012_ref_036_w2aab2b8c11b1b7b1ab1ac36Aa","unstructured":"[36] JetBrains, \u201cKotlin Language Documentation.\u201d [Online]. Available: http:\/\/www.kotlinlang.org\/docs\/kotlin-docs.pdf [Accessed: Nov. 28, 2016]."},{"key":"2021040615521176929_j_acss-2016-0012_ref_037_w2aab2b8c11b1b7b1ab1ac37Aa","unstructured":"[37] R. Johnson, J. Hoeller, K. Donald, C. Shampaleanu, R. Harrop et al., \u201cSpring Framework Reference Documentation,\u201d 2016. [Online]. Available: http:\/\/docs.spring.io\/spring\/docs\/5.0.0.M3\/spring-framework-reference\/htmlsingle\/ [Accessed: Nov. 28, 2016]."},{"key":"2021040615521176929_j_acss-2016-0012_ref_038_w2aab2b8c11b1b7b1ab1ac38Aa","unstructured":"[38] TIOBE, \u201cTIOBE Programming Community Index Definition.\u201d [Online]. Available: http:\/\/www.tiobe.com\/tiobe-index\/programming-languages-definition\/ [Accessed: Nov. 28, 2016]."}],"container-title":["Applied Computer Systems"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/content.sciendo.com\/view\/journals\/acss\/20\/1\/article-p27.xml","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/www.sciendo.com\/article\/10.1515\/acss-2016-0012","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,7,22]],"date-time":"2022-07-22T16:56:02Z","timestamp":1658508962000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.sciendo.com\/article\/10.1515\/acss-2016-0012"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2016,12,1]]},"references-count":38,"journal-issue":{"issue":"1","published-online":{"date-parts":[[2017,1,23]]},"published-print":{"date-parts":[[2016,12,1]]}},"alternative-id":["10.1515\/acss-2016-0012"],"URL":"https:\/\/doi.org\/10.1515\/acss-2016-0012","relation":{},"ISSN":["2255-8691"],"issn-type":[{"value":"2255-8691","type":"electronic"}],"subject":[],"published":{"date-parts":[[2016,12,1]]}}}