1,720,960 research outputs found
The Impact of Language Syntax on the Complexity of Programs: A Case Study of Java and Python
Programming is the cornerstone of computer science, yet it is difficult to learn and program. The syntax of a programming language is particularly challenging to comprehend, which makes learning arduous and affects the program\u27s testability. There is currently no literature that definitively gives quantitative evidence about the effect of programming language complex syntax. The main purpose of this article was to examine the effects of programming syntax on the complexity of their source programs. During the study, 298 algorithms were selected and their implementations in Java and Python were analyzed with the cyclomatic complexity matrix. The results of the study show that Python\u27s syntax is less complex than Java\u27s, and thus coding in Python is more comprehensive and less difficult than Java coding. The Mann-Whitney U test was performed on the results of a statistical analysis that showed a significant difference between Java and Python, indicating that the syntax of a programming language has a major impact on program complexity. The novelty of this article lies in the formulation of new knowledge and study patterns that can be used primarily to compare and analyze other programming languages
Analysis of Code Vulnerabilities in Repositories of GitHub and Rosettacode: A comparative Study
Open-source code hosted online at programming portals is present in 99% of commercial software and is common practice among developers for rapid prototyping and cost-effective development. However, research reports the presence of vulnerabilities, which result in catastrophic security compromise, and the individual, organization, and even national secrecy are all victims of this circumstance. One of the frustrating aspects of vulnerabilities is that vulnerabilities manifest themselves in hidden ways that software developers are unaware of. One of the most critical tasks in ensuring software security is vulnerability detection, which jeopardizes core security concepts like integrity, authenticity, and availability. This study aims to explore security-related vulnerabilities in programming languages such as C, C++, and Java and present the disparities between them hosted at popular code repositories. To attain this purpose, 708 programs were examined by severity-based guidelines. A total of 1371 vulnerable codes were identified, of which 327 in C, 51 in C++, and 993 in Java. Statistical analysis also indicated a substantial difference between them, as there is ample evidence that the Kruskal-Wallis H-test p-value (.000) is below the 0.05 significance level. The Mann-Whitney Test mean rank for GitHub (Mean-rank=676.05) and Rosettacode (Mean-rank=608.64) are also different. The novelty of this article is to identify security vulnerabilities and grasp the nature severity of vulnerability in popular code repositories. This study eventually manifests a guideline for choosing a secure programming language as a successful testing technique that targets vulnerabilities more liable to breaching security.
Full Tex
Unveiling Inefficiencies in Open-Source Code Using Multistage Analysis with Software Metrics
Software development is challenging due to its technical complexity and time-consuming nature. To overcome these difficulties, various technical solutions have been introduced. In commercial software development, code repositories serve as valuable resources, reducing the time and cost involved in the process. The utilization of pre-developed open code repositories has proven to reduce development time. However, ample amount of work has not determined whether these repositories are testable, maintainable, free of dead code, and have a concise implementation of equivalent algorithms. The objective of this article is to address this gap by thoroughly analyzing the complexity and maintainability of code repositories, determining the impact of removing dead code on size, complexity, and maintainability. For this study, a total of 200 Python open-source code were analyzed using RADON, a widely-used metric tool for assessing cyclomatic complexity, size, volume, and maintainability. The identification of dead code within the repositories was accomplished using Vulture, supplemented by expert evaluation. It has been revealed that the majority of the examined code included dead code, and the removal of this code led to a significant reduction in cyclomatic complexity, volume, and size, while improving code maintainability, as observed by the Mann Whitney U test. The study concludes that the blind use of open-source code is not safe. It strongly recommends the community to thoroughly explore and examine such code from different perspectives before actual implementation. The novelty of this study lies in the use of multiple software metrics in a multi-stage analysis to examine the impact of removing dead code on program complexity, size, and maintainability
Pedagogical Significance of Natural Language Programming in Introductory Programming
Learning programming is hard for novice students. Complicated syntax and semantic of programming languages and lack of previous knowledge are the contributing factors behind the hardness of programming. Natural programming language allows to program in a natural language and thereby ease the programming. In this paper, it is ascertained whether natural programming language is fruitful in learning the elementary programming concepts and supportive in preparing students for introductory programming courses. The discussion included in this paper can be used to design supportive programming languages and formulating effective courses and learning material to ameliorate performance of students’ in learning of introductory programming environments.</jats:p
Unveiling Inefficiencies in Open-Source Code Using Multistage Analysis with Software Metrics
Software development is challenging due to its technical complexity and time-consuming nature. To overcome these difficulties, various technical solutions have been introduced. In commercial software development, code repositories serve as valuable resources, reducing the time and cost involved in the process. The utilization of pre-developed open code repositories has proven to reduce development time. However, ample amount of work has not determined whether these repositories are testable, maintainable, free of dead code, and have a concise implementation of equivalent algorithms. The objective of this article is to address this gap by thoroughly analyzing the complexity and maintainability of code repositories, determining the impact of removing dead code on size, complexity, and maintainability. For this study, a total of 200 Python open-source code were analyzed using RADON, a widely-used metric tool for assessing cyclomatic complexity, size, volume, and maintainability. The identification of dead code within the repositories was accomplished using Vulture, supplemented by expert evaluation. It has been revealed that the majority of the examined code included dead code, and the removal of this code led to a significant reduction in cyclomatic complexity, volume, and size, while improving code maintainability, as observed by the Mann Whitney U test. The study concludes that the blind use of open-source code is not safe. It strongly recommends the community to thoroughly explore and examine such code from different perspectives before actual implementation. The novelty of this study lies in the use of multiple software metrics in a multi-stage analysis to examine the impact of removing dead code on program complexity, size, and maintainability
Learners Programming Language a Helping System for Introductory Programming Courses
Programming is the core of computer science and due to this momentousness a special care is taken in
designing the curriculum of programming courses. A substantial work has been conducted on the
definition of programming courses, yet the introductory programming courses are still facing high
attrition, low retention and lack of motivation. This paper introduced a tiny pre-programming language
called LPL (Learners Programming Language) as a ZPL (Zeroth Programming Language) to illuminate
novice students about elementary concepts of introductory programming before introducing the first
imperative programming course. The overall objective and design philosophy of LPL is based on a
hypothesis that the soft introduction of a simple and paradigm specific textual programming can increase
the motivation level of novice students and reduce the congenital complexities and hardness of the first
programming course and eventually improve the retention rate and may be fruitful in reducing the
dropout/failure level. LPL also generates the equivalent high level programs from user source program
and eventually very fruitful in understanding the syntax of introductory programming languages. To
overcome the inherent complexities of unusual and rigid syntax of introductory programming languages,
the LPL provide elementary programming concepts in the form of algorithmic and plain natural language based computational statements. The initial results obtained after the introduction of LPL are very encouraging in motivating novice students and improving the retention rate
Going Beyond Counting First Authors in Author Co-citation Analysis
The present study examines one of the fundamental aspects of author co-citation analysis (ACA) - the way co-citation
counts are defined. Co-citation counting provides the data on which all subsequent statistical analyses and mappings
are based, and we compare ACA results based on two different types of co-citation counting - the traditional type that
only counts the first one among a cited work's authors on the one hand and a non-traditional type that takes into
account the first 5 authors of a cited work on the other hand. Results indicate that the picture produced through this non-traditional author co-citation counting contains more coherent author groups and is therefore considerably clearer. However, this picture represents fewer specialties in the research field being studied than that produced through the traditional first-author co-citation counting when the same number of top-ranked authors is selected and analyzed. Reasons for these effects are discussed
Variations on the Author
“Variations on the Author” discusses two of Eduardo Coutinho’s recent films (Um Dia na Vida, from 2010, and Últimas Conversas, posthumously released in 2015) and their contribution to the general question of documentary authorship. The director’s filmography is characterized by a consistent yet self-effacing form of authorial self-inscription: Coutinho often features as an interviewer that rather than express opinions propels discourses; an interviewer that is good at listening. This mode of self-inscription characterizes him as an author who is not expressive but who is nonetheless markedly present on the screen. In Um Dia na Vida, however, Coutinho is completely absent form the image, while Últimas Conversas, on the contrary, includes a confessional prologue that moves the director from the margins to the center of his films. This article examines the ways in which these works stand out in the filmography of a director who offers new insights into the notion of cinematic authorship
Appropriate Similarity Measures for Author Cocitation Analysis
We provide a number of new insights into the methodological discussion about author cocitation analysis. We first argue that the use of the Pearson correlation for measuring the similarity between authors’ cocitation profiles is not very satisfactory. We then discuss what kind of similarity measures may be used as an alternative to the Pearson correlation. We consider three similarity measures in particular. One is the well-known cosine. The other two similarity measures have not been used before in the bibliometric literature. Finally, we show by means of an example that our findings have a high practical relevance.information science;Pearson correlation;cosine;similarity measure;author cocitation analysis
- …
