Open Access. Powered by Scholars. Published by Universities.®
Programming Languages and Compilers Commons™
Open Access. Powered by Scholars. Published by Universities.®
- Discipline
-
- Software Engineering (63)
- Artificial Intelligence and Robotics (14)
- Social and Behavioral Sciences (5)
- Data Science (4)
- Databases and Information Systems (4)
-
- Graphics and Human Computer Interfaces (4)
- Other Computer Sciences (3)
- Science and Technology Studies (3)
- Statistics and Probability (3)
- Theory and Algorithms (3)
- Communication (2)
- Information Security (2)
- Life Sciences (2)
- Numerical Analysis and Scientific Computing (2)
- Animal Sciences (1)
- Anthropology (1)
- Applied Linguistics (1)
- Applied Statistics (1)
- Art and Design (1)
- Arts and Humanities (1)
- Behavior and Ethology (1)
- Biochemistry, Biophysics, and Structural Biology (1)
- Biophysics (1)
- Climate (1)
- Communication Technology and New Media (1)
- Computational Linguistics (1)
- Computer Engineering (1)
- Keyword
-
- Refactoring (23)
- Java (17)
- Java 8 (12)
- Software engineering (11)
- Deep learning (10)
-
- Imperative programs (9)
- Programming languages (9)
- Default methods (8)
- Static analysis (8)
- Streams (8)
- Automated refactoring (7)
- Empirical studies (7)
- Scala (7)
- Software evolution (7)
- Software maintenance (6)
- Software tools (6)
- Typestate analysis (6)
- Aspect-oriented programming (5)
- Automatic parallelization (4)
- Computer science (4)
- Enumerated types (4)
- Graph execution (4)
- Hybrid programming paradigms (4)
- Interfaces (4)
- Introduction to computer programming (4)
- Programming (4)
- Python (4)
- Aspect-Oriented programming (3)
- Aspect-oriented software (3)
- Concurrency (3)
- Publication Year
- Publication
- Publication Type
- File Type
Articles 31 - 60 of 92
Full-Text Articles in Programming Languages and Compilers
A Tool For Rejuvenating Feature Logging Levels Via Git Histories And Degree Of Interest, Yiming Tang, Allan Spektor, Raffi Khatchadourian, Mehdi Bagherzadeh
A Tool For Rejuvenating Feature Logging Levels Via Git Histories And Degree Of Interest, Yiming Tang, Allan Spektor, Raffi Khatchadourian, Mehdi Bagherzadeh
Publications and Research
Logging is a significant programming practice. Due to the highly transactional nature of modern software applications, a massive amount of logs are generated every day, which may overwhelm developers. Logging information overload can be dangerous to software applications. Using log levels, developers can print the useful information while hiding the verbose logs during software runtime. As software evolves, the log levels of logging statements associated with the surrounding software feature implementation may also need to be altered. Maintaining log levels necessitates a significant amount of manual effort. In this paper, we demonstrate an automated approach that can rejuvenate feature log …
Eclipse, Osgi, And The Java Model, Raffi Khatchadourian
Eclipse, Osgi, And The Java Model, Raffi Khatchadourian
Open Educational Resources
No abstract provided.
Abstract Syntax Trees (Asts) And The Visitor Pattern, Raffi Khatchadourian
Abstract Syntax Trees (Asts) And The Visitor Pattern, Raffi Khatchadourian
Open Educational Resources
No abstract provided.
An Empirical Study Of Refactorings And Technical Debt In Machine Learning Systems, Yiming Tang, Raffi Khatchadourian, Mehdi Bagherzadeh, Rhia Singh, Ajani Stewart, Anita Raja
An Empirical Study Of Refactorings And Technical Debt In Machine Learning Systems, Yiming Tang, Raffi Khatchadourian, Mehdi Bagherzadeh, Rhia Singh, Ajani Stewart, Anita Raja
Publications and Research
Machine Learning (ML), including Deep Learning (DL), systems, i.e., those with ML capabilities, are pervasive in today’s data-driven society. Such systems are complex; they are comprised of ML models and many subsystems that support learning processes. As with other complex systems, ML systems are prone to classic technical debt issues, especially when such systems are long-lived, but they also exhibit debt specific to these systems. Unfortunately, there is a gap in knowledge of how ML systems evolve and are maintained. In this paper, we fill this gap by studying refactorings, i.e., source-to-source semantics-preserving program transformations, performed in real-world, open-source software, …
An Empirical Study Of Refactorings And Technical Debt In Machine Learning Systems, Yiming Tang, Raffi Khatchadourian, Mehdi Bagherzadeh, Rhia Singh, Ajani Stewart, Anita Raja
An Empirical Study Of Refactorings And Technical Debt In Machine Learning Systems, Yiming Tang, Raffi Khatchadourian, Mehdi Bagherzadeh, Rhia Singh, Ajani Stewart, Anita Raja
Publications and Research
Machine Learning (ML), including Deep Learning (DL), systems, i.e., those with ML capabilities, are pervasive in today’s data-driven society. Such systems are complex; they are comprised of ML models and many subsystems that support learning processes. As with other complex systems, ML systems are prone to classic technical debt issues, especially when such systems are long-lived, but they also exhibit debt specific to these systems. Unfortunately, there is a gap of knowledge in how ML systems actually evolve and are maintained. In this paper, we fill this gap by studying refactorings, i.e., source-to-source semantics-preserving program transformations, performed in real-world, open-source …
Actor Concurrency Bugs: A Comprehensive Study On Symptoms, Root Causes, Api Usages, And Differences, Mehdi Bagherzadeh, Nicholas Fireman, Anas Shawesh, Raffi Khatchadourian
Actor Concurrency Bugs: A Comprehensive Study On Symptoms, Root Causes, Api Usages, And Differences, Mehdi Bagherzadeh, Nicholas Fireman, Anas Shawesh, Raffi Khatchadourian
Publications and Research
Actor concurrency is becoming increasingly important in the development of real-world software systems. Although actor concurrency may be less susceptible to some multithreaded concurrency bugs, such as low-level data races and deadlocks, it comes with its own bugs that may be different. However, the fundamental characteristics of actor concurrency bugs, including their symptoms, root causes, API usages, examples, and differences when they come from different sources are still largely unknown. Actor software development can significantly benefit from a comprehensive qualitative and quantitative understanding of these characteristics, which is the focus of this work, to foster better API documentations, development practices, …
Csci 49380/79526: Fundamentals Of Reactive Programming - Assignment 5, Raffi Khatchadourian
Csci 49380/79526: Fundamentals Of Reactive Programming - Assignment 5, Raffi Khatchadourian
Open Educational Resources
No abstract provided.
Collections In Scala, Raffi Khatchadourian
Collections In Scala, Raffi Khatchadourian
Open Educational Resources
No abstract provided.
Csci 49380/79526: Fundamentals Of Reactive Programming - Assignment 4, Raffi Khatchadourian
Csci 49380/79526: Fundamentals Of Reactive Programming - Assignment 4, Raffi Khatchadourian
Open Educational Resources
No abstract provided.
Csci 49380/79526: Fundamentals Of Reactive Programming - Assignment 3, Raffi Khatchadourian
Csci 49380/79526: Fundamentals Of Reactive Programming - Assignment 3, Raffi Khatchadourian
Open Educational Resources
No abstract provided.
Csci 49380/79526: Fundamentals Of Reactive Programming- Assignment 1, Raffi Khatchadourian
Csci 49380/79526: Fundamentals Of Reactive Programming- Assignment 1, Raffi Khatchadourian
Open Educational Resources
No abstract provided.
Csci 49380/79526: Fundamentals Of Reactive Programming- Syllabus, Raffi Khatchadourian
Csci 49380/79526: Fundamentals Of Reactive Programming- Syllabus, Raffi Khatchadourian
Open Educational Resources
No abstract provided.
Csci 49380/79526: Fundamentals Of Reactive Programming - Assignment 2, Raffi Khatchadourian
Csci 49380/79526: Fundamentals Of Reactive Programming - Assignment 2, Raffi Khatchadourian
Open Educational Resources
No abstract provided.
Inheritance Details In Scala, Raffi Khatchadourian
Inheritance Details In Scala, Raffi Khatchadourian
Open Educational Resources
No abstract provided.
An Empirical Study Of Refactorings And Technical Debt In Machine Learning Systems, Yiming Tang, Raffi Khatchadourian, Mehdi Bagherzadeh, Rhia Singh, Ajani Stewart, Anita Raja
An Empirical Study Of Refactorings And Technical Debt In Machine Learning Systems, Yiming Tang, Raffi Khatchadourian, Mehdi Bagherzadeh, Rhia Singh, Ajani Stewart, Anita Raja
Publications and Research
Machine Learning (ML), including Deep Learning (DL), systems, i.e., those with ML capabilities, are pervasive in today's data-driven society. Such systems are complex; they are comprised of ML models and many subsystems that support learning processes. As with other complex systems, ML systems are prone to classic technical debt issues, especially when such systems are long-lived, but they also exhibit debt specific to these systems. Unfortunately, there is a gap of knowledge in how ML systems actually evolve and are maintained. In this paper, we fill this gap by studying refactorings, i.e., source-to-source semantics-preserving program transformations, performed in real-world, open-source …
Snow-Albedo Feedback In Northern Alaska: How Vegetation Influences Snowmelt, Lucas C. Reckhaus
Snow-Albedo Feedback In Northern Alaska: How Vegetation Influences Snowmelt, Lucas C. Reckhaus
Theses and Dissertations
This paper investigates how the snow-albedo feedback mechanism of the arctic is changing in response to rising climate temperatures. Specifically, the interplay of vegetation and snowmelt, and how these two variables can be correlated. This has the potential to refine climate modelling of the spring transition season. Research was conducted at the ecoregion scale in northern Alaska from 2000 to 2020. Each ecoregion is defined by distinct topographic and ecological conditions, allowing for meaningful contrast between the patterns of spring albedo transition across surface conditions and vegetation types. The five most northerly ecoregions of Alaska are chosen as they encompass …
An Empirical Study On The Use And Misuse Of Java 8 Streams, Raffi Khatchadourian, Yiming Tang, Mehdi Bagherzadeh, Baishakhi Ray
An Empirical Study On The Use And Misuse Of Java 8 Streams, Raffi Khatchadourian, Yiming Tang, Mehdi Bagherzadeh, Baishakhi Ray
Publications and Research
Streaming APIs allow for big data processing of native data structures by providing MapReduce-like operations over these structures. However, unlike traditional big data systems, these data structures typically reside in shared memory accessed by multiple cores. Although popular, this emerging hybrid paradigm opens the door to possibly detrimental behavior, such as thread contention and bugs related to non-execution and non-determinism. This study explores the use and misuse of a popular streaming API, namely, Java 8 Streams. The focus is on how developers decide whether or not to run these operations sequentially or in parallel and bugs both specific and tangential …
An Empirical Study On The Use And Misuse Of Java 8 Streams, Raffi Khatchadourian, Yiming Tang, Mehdi Bagherzadeh, Baishakhi Ray
An Empirical Study On The Use And Misuse Of Java 8 Streams, Raffi Khatchadourian, Yiming Tang, Mehdi Bagherzadeh, Baishakhi Ray
Publications and Research
Streaming APIs allow for big data processing of native data structures by providing MapReduce-like operations over these structures. However, unlike traditional big data systems, these data structures typically reside in shared memory accessed by multiple cores. Although popular, this emerging hybrid paradigm opens the door to possibly detrimental behavior, such as thread contention and bugs related to non-execution and non-determinism. This study explores the use and misuse of a popular streaming API, namely, Java 8 Streams. The focus is on how developers decide whether or not to run these operations sequentially or in parallel and bugs both specific and tangential …
Safe Automated Refactoring For Intelligent Parallelization Of Java 8 Streams, Raffi Khatchadourian, Yiming Tang, Mehdi Bagherzadeh
Safe Automated Refactoring For Intelligent Parallelization Of Java 8 Streams, Raffi Khatchadourian, Yiming Tang, Mehdi Bagherzadeh
Publications and Research
Streaming APIs are becoming more pervasive in mainstream Object-Oriented programming languages and platforms. For example, the Stream API introduced in Java 8 allows for functional-like, MapReduce-style operations in processing both finite, e.g., collections, and infinite data structures. However, using this API efficiently involves subtle considerations such as determining when it is best for stream operations to run in parallel, when running operations in parallel can be less efficient, and when it is safe to run in parallel due to possible lambda expression side-effects. ics-preserving fashion. The approach, based on a novel data ordering and typestate analysis, consists of preconditions and …
V-Slam And Sensor Fusion For Ground Robots, Ejup Hoxha
V-Slam And Sensor Fusion For Ground Robots, Ejup Hoxha
Dissertations and Theses
In underground, underwater and indoor environments, a robot has to rely solely on its on-board sensors to sense and understand its surroundings. This is the main reason why SLAM gained the popularity it has today. In recent years, we have seen excellent improvement on accuracy of localization using cameras and combinations of different sensors, especially camera-IMU (VIO) fusion. Incorporating more sensors leads to improvement of accuracy,but also robustness of SLAM. However, while testing SLAM in our ground robots, we have seen a decrease in performance quality when using the same algorithms on flying vehicles.We have an additional sensor for ground …
Safe Automated Refactoring For Intelligent Parallelization Of Java 8 Streams, Raffi Khatchadourian, Yiming Tang, Mehdi Bagherzadeh, Syed Ahmed
Safe Automated Refactoring For Intelligent Parallelization Of Java 8 Streams, Raffi Khatchadourian, Yiming Tang, Mehdi Bagherzadeh, Syed Ahmed
Publications and Research
Streaming APIs are becoming more pervasive in mainstream Object-Oriented programming languages and platforms. For example, the Stream API introduced in Java 8 allows for functional-like, MapReduce-style operations in processing both finite, e.g., collections, and infinite data structures. However, using this API efficiently involves subtle considerations such as determining when it is best for stream operations to run in parallel, when running operations in parallel can be less efficient, and when it is safe to run in parallel due to possible lambda expression side-effects. Also, streams may not run all operations in parallel depending on particular collectors used in reductions. In …
Safe Automated Refactoring For Intelligent Parallelization Of Java 8 Streams, Raffi Khatchadourian, Yiming Tang, Mehdi Bagherzadeh, Syed Ahmed
Safe Automated Refactoring For Intelligent Parallelization Of Java 8 Streams, Raffi Khatchadourian, Yiming Tang, Mehdi Bagherzadeh, Syed Ahmed
Publications and Research
Streaming APIs are becoming more pervasive in mainstream Object-Oriented programming languages. For example, the Stream API introduced in Java 8 allows for functional-like, MapReduce-style operations in processing both finite and infinite data structures. However, using this API efficiently involves subtle considerations like determining when it is best for stream operations to run in parallel, when running operations in parallel can be less efficient, and when it is safe to run in parallel due to possible lambda expression side-effects. In this paper, we present an automated refactoring approach that assists developers in writing efficient stream code in a semantics-preserving fashion. The …
Cst1101–Problem Solving With Computer Programming, Syllabus, Spring 2019, Douglas L. Moody
Cst1101–Problem Solving With Computer Programming, Syllabus, Spring 2019, Douglas L. Moody
Open Educational Resources
No abstract provided.
Cs04all: List Comprehensions, Hunter R. Johnson
Cs04all: List Comprehensions, Hunter R. Johnson
Open Educational Resources
List Comprehensions
This is a tutorial on list comprehensions in Python, suitable for use in an Intro or CS0 course. We also briefly mention set comprehensions and dictionary comprehensions.
https://cocalc.com/share/bde99afd-76c8-493d-9608-db9019bcd346/171/list_comprehensions?viewer=share/
This OER material was produced as a result of the CS04ALL CUNY OER project
A Tool For Optimizing Java 8 Stream Software Via Automated Refactoring, Raffi Khatchadourian, Yiming Tang, Mehdi Bagherzadeh, Syed Ahmed
A Tool For Optimizing Java 8 Stream Software Via Automated Refactoring, Raffi Khatchadourian, Yiming Tang, Mehdi Bagherzadeh, Syed Ahmed
Publications and Research
Streaming APIs are pervasive in mainstream Object-Oriented languages. For example, the Java 8 Stream API allows for functional-like, MapReduce-style operations in processing both finite and infinite data structures. However, using this API efficiently involves subtle considerations like determining when it is best for stream operations to run in parallel, when running operations in parallel can be less efficient, and when it is safe to run in parallel due to possible lambda expression side-effects. In this paper, we describe the engineering aspects of an open source automated refactoring tool called Optimize Streams that assists developers in writing optimal stream software in …
Poster: Towards Safe Refactoring For Intelligent Parallelization Of Java 8 Streams, Yiming Tang, Raffi Khatchadourian, Mehdi Bagherzadeh, Syed Ahmed
Poster: Towards Safe Refactoring For Intelligent Parallelization Of Java 8 Streams, Yiming Tang, Raffi Khatchadourian, Mehdi Bagherzadeh, Syed Ahmed
Publications and Research
The Java 8 Stream API sets forth a promising new programming model that incorporates functional-like, MapReduce-style features into a mainstream programming language. However, using streams correctly and efficiently may involve subtle considerations. In this poster, we present our ongoing work and preliminary results towards an automated refactoring approach that assists developers in writing optimal stream code. The approach, based on ordering and typestate analysis, determines when it is safe and advantageous to convert streams to parallel and optimize a parallel streams.
Designing Smart Applications Using Ar (Augmented Reality), Kimberly A. De La Santa
Designing Smart Applications Using Ar (Augmented Reality), Kimberly A. De La Santa
Publications and Research
Augmented Reality is rapidly developing in popularity because it brings elements of the virtual world, into our real world. Augmented Reality (AR) is a variation of Virtual Reality (VR). VR technologies immerses a user inside an imaginary environment. While immersed, the user cannot see the real world around them. In contrast, AR allows the user to see the real world, with virtual objects and information intertwined. Therefore, AR supplements reality and enhances the things we see, hear, and feel. This research project will implement a Web page that gives the user the opportunity to experiment with AR.
Proactive Empirical Assessment Of New Language Feature Adoption Via Automated Refactoring: The Case Of Java 8 Default Methods, Raffi Khatchadourian, Hidehiko Masuhara
Proactive Empirical Assessment Of New Language Feature Adoption Via Automated Refactoring: The Case Of Java 8 Default Methods, Raffi Khatchadourian, Hidehiko Masuhara
Publications and Research
Programming languages and platforms improve over time, sometimes resulting in new language features that offer many benefits. However, despite these benefits, developers may not always be willing to adopt them in their projects for various reasons. In this paper, we describe an empirical study where we assess the adoption of a particular new language feature. Studying how developers use (or do not use) new language features is important in programming language research and engineering because it gives designers insight into the usability of the language to create meaning programs in that language. This knowledge, in turn, can drive future innovations …
Proactive Empirical Assessment Of New Language Feature Adoption Via Automated Refactoring: The Case Of Java 8 Default Methods, Raffi Khatchadourian, Hidehiko Masuhara
Proactive Empirical Assessment Of New Language Feature Adoption Via Automated Refactoring: The Case Of Java 8 Default Methods, Raffi Khatchadourian, Hidehiko Masuhara
Publications and Research
Programming languages and platforms improve over time, sometimes resulting in new language features that offer many benefits. However, despite these benefits, developers may not always be willing to adopt them in their projects for various reasons. In this paper, we describe an empirical study where we assess the adoption of a particular new language feature. Studying how developers use (or do not use) new language features is important in programming language research and engineering because it gives designers insight into the usability of the language to create meaning programs in that language. This knowledge, in turn, can drive future innovations …
Poster: Towards Safe Refactoring For Intelligent Parallelization Of Java 8 Streams, Yiming Tang, Raffi Khatchadourian, Mehdi Bagherzadeh, Syed Ahmed
Poster: Towards Safe Refactoring For Intelligent Parallelization Of Java 8 Streams, Yiming Tang, Raffi Khatchadourian, Mehdi Bagherzadeh, Syed Ahmed
Publications and Research
The Java 8 Stream API sets forth a promising new programming model that incorporates functional-like, MapReduce-style features into a mainstream programming language. However, using streams correctly and efficiently may involve subtle considerations. In this poster, we present our ongoing work and preliminary results to- wards an automated refactoring approach that assists developers in writing optimal stream code. The approach, based on ordering and typestate analysis, determines when it is safe and advantageous to convert streams to parallel and optimize a parallel streams.