This paper describes the effort of redesigning an undergraduate course: CSC370 Principles of programming languages. Like courses similar to CSC370, the book Concepts of programming languages and written by Robert Sebe...
详细信息
ISBN:
(纸本)9781665458412
This paper describes the effort of redesigning an undergraduate course: CSC370 Principles of programming languages. Like courses similar to CSC370, the book Concepts of programming languages and written by Robert Sebesta is as the textbook. The lectures sequentially cover the topics from its Chapters 1-10. Based on the students' feedback and their performance, this book is good, however, with several limitations. Hence, the lectures were redesigned in the Summer of 2021 to reflect the concerns. In the new design, the topics selected from the book will be reorganized into three categories, and the coursework will include two term projects for different purposes. It will be piloted in the Spring of 2022.
In "Big Data" research, the data acquired from many sources are fused and analyzed to obtain valuable and sometimes unexpected information. Even though the volumes of data are unprecedented, the data are usu...
详细信息
ISBN:
(纸本)9781467383509
In "Big Data" research, the data acquired from many sources are fused and analyzed to obtain valuable and sometimes unexpected information. Even though the volumes of data are unprecedented, the data are usually stored for post-experiment analysis and for sharing among scientists. Typical scenarios implicitly assume that the data are stored and can be re-analyzed later. The reality is, unfortunately, not so ideal because the data may be "non-persistent" and allow only one-time use. We propose to reformulate how big data programs are developed, and introduce the notion of data-carrying programs that are, in a sense, self-validating. By writing these programs in a specially-defined language, and transforming them to store sample data, programs can save enough data to provide high-confidence validation of their results.
Serverless Computing is a Cloud architecture, an alternative to the traditional model. It offers numerous advantages over the monolithic model, such as providing agility, innovation, automatic scaling, flexibility in ...
详细信息
ISBN:
(纸本)9783031622441;9783031622458
Serverless Computing is a Cloud architecture, an alternative to the traditional model. It offers numerous advantages over the monolithic model, such as providing agility, innovation, automatic scaling, flexibility in development and better evaluation and control of costs. It emerged as an evolution of microservices running in containers and implementing functions, which is why it is sometimes called function as a service. Although it has the aforementioned advantages, there are also many challenges and problems to solve. Among them the initialization or startup of said functions, this problem known as cold start. Most scientific publications do not take programming languages into account for this analysis. In this work, the behavior of different programming languages in initialization, cold start, memory use and scalability is evaluated, under a serverless approach on the Amazon Web Services platform. Because the comparison of languages can be carried out in different aspects or taking different types of metrics, it was considered appropriate to perform the tests using CRUD operations. This also allows us to analyze their behavior when initializing the database. Therefore, a series of questions arise, such as: Are the initialization of the programming languages all the same? Is the initialization of the database with the programming languages independent of the language used? Is the cold start equivalent in the different languages? Is its impact relevant when the number of requirements is high? Does memory usage and scalability behave the same, regardless of the programming language? Through the tests carried out, it was possible to evaluate the behavior of the programming languages and answer some of the questions mentioned above.
In today's scenario, this world is moving rapidly toward the global warming. Various experiments are performed, to concentrate more on the energy efficiency. One way to achieve this is by implementing the sorting ...
详细信息
ISBN:
(纸本)9789811088483;9789811088476
In today's scenario, this world is moving rapidly toward the global warming. Various experiments are performed, to concentrate more on the energy efficiency. One way to achieve this is by implementing the sorting algorithms in such a programming language which consumes least amount of energy which is our current area of research in this paper. In this study, our main goal is to find such a programming language which consumes least amount of energy and contributes to green computing. In our experiment, we implemented different sorting algorithms in different programming languages in order to find the most power-efficient language.
New programming languages (e.g., Swift, Go, Rust, etc.) are being introduced to provide a better opportunity to developers by matching the requirements of new platforms and application contexts. In the beginning, a pr...
详细信息
ISBN:
(纸本)9781728126074
New programming languages (e.g., Swift, Go, Rust, etc.) are being introduced to provide a better opportunity to developers by matching the requirements of new platforms and application contexts. In the beginning, a programming language is likely to have constraints of resources that encourage the developers to seek help from experienced peers active in Question-answering (QA) sites such as Stack Overflow (SO). In this study, we would like to analyze the discussions on three popular new languages that are introduced after the inception of SO (2008). The relevant posts in SO present an interesting representation of the growth/evolution of that language and also expose the demands of the relevant development community. The major findings of the study are: (i) the time when adequate resources are expected to be available vary from language to language, (ii) the unanswered question ratio increases regardless of the age of the language and (iii) a new language is benefited from its predecessor language. The study outcome is likely to help the owner/sponsor of these languages to design better features and documentation and software developers or students to prepare themselves to work on these languages in an informed way.
Choosing a suitable programming language to use in teaching undergraduate courses is a critical issue. This paper discusses some issues in the choice of the programming language that need to be considered by faculty. ...
详细信息
ISBN:
(纸本)0769521088
Choosing a suitable programming language to use in teaching undergraduate courses is a critical issue. This paper discusses some issues in the choice of the programming language that need to be considered by faculty. These issues include choosing C++ versus Java, recursion versus iteration, and using the Advanced Placement tests in computer science. We also discuss and suggest some design criteria that can be used to develop a programming language for undergraduate curricula whish is more student friendly.
Wireless sensor networks have opened opportunities for new applications and attracted users from domains beyond computer system design. Sensor network design is challenging. It is generally an ad hoc process carried o...
详细信息
Wireless sensor networks have opened opportunities for new applications and attracted users from domains beyond computer system design. Sensor network design is challenging. It is generally an ad hoc process carried out by embedded system experts. In this dissertation, we argue that human efforts necessary to the design of sensor networks can be reduced with the help of high-level specification languages, compilers, and synthesis tools. We designed and implemented a framework to simplify and automate the design of a class of sensor network applications. Our results show that a sensor network novice given only a few pages of instructions, can successfully specify sensing applications within 30 minutes, compared with hours or days required by prior approaches. Within approximately 30 minutes, our modeling and design exploration techniques translate these specifications into implementations, automatically selecting from among 405,790 designs. Moreover, our memory management and compiler-assisted techniques make difficult-to-implement optimizations available to novice programmers, enabling better tolerance of sensor faults and making 39% more usable memory available than would otherwise be the case. We propose a design process that decouples specification from implementation. Application designers specify abstract functionality and design requirements. Compiler and synthesis tools automatically determine implementation details, optimizing design parameter optimization and generating code. First, we develop a design process in which programming novices (e.g., application experts) use high-level, specification languages designed for particular classes of applications. We focus on the class most commonly encountered in sensor network deployment publications. Second, we develop two compiler and runtime techniques to relieve application experts from explicitly dealing with sensor faults and limited memory, two common sources of sensor network design complexity. The first tec
JavaScript is a ubiquitous programming language with usage in web, mobile applications and server software. The status of the language as the de-facto programming language of the web has made the language ecosystem ad...
详细信息
JavaScript is a ubiquitous programming language with usage in web, mobile applications and server software. The status of the language as the de-facto programming language of the web has made the language ecosystem advanced with a great number of userspace libraries and major companies working on efficient runtime systems. The core language, however, has numerous known difficulties caused by the initial design and persisted by the requirements for backwards-compatibility. In the last decade, a number of programming languages have chosen JavaScript as the compile target of the language.
Type theory and its application, programming language type systems, is an essential area of study in the design of programming languages. Every high-level programming language features a type system that greatly influences the ways of designing and implementing programs in the language. This thesis examines a group of selected statically-typed programming languages that compile to JavaScript. The core topics of research in this thesis are the motivation for new JS-compiled languages, the type system design of the languages, and the future direction of the JavaScript ecosystem based on the current trends and parallels to other programming ecosystems.
The results of the work include identifying several trends in type systems for the JS ecosystem and the web. These include unsound yet convenient partially inferred type systems for object-oriented and multi-paradigm programming and fully inferred extended Hindley-Milner type systems for primarily functional programming languages. Additionally, different options for the advancement of the programming ecosystem, including type annotations, inference of dynamically typed languages and new compile targets, are explored. Finally, based on the design choices of the languages researched, we provide several recommendations for safe and productive statically typed programming in the JavaScript ecosystem.
[Auto Generated] CHAPTER I INTRODUCTION 2 CHAPTER II languageS COVERED 4 CHAPTER III SPECIAL FEATURES COMMON TO THE NEW languageS 7 A Data Types 7 B Control Structures 9 C Pattern Matching 13 D Deductive Mechanisms 14...
详细信息
[Auto Generated] CHAPTER I INTRODUCTION 2 CHAPTER II languageS COVERED 4 CHAPTER III SPECIAL FEATURES COMMON TO THE NEW languageS 7 A Data Types 7 B Control Structures 9 C Pattern Matching 13 D Deductive Mechanisms 14 CHAPTER IV DIFFERENCES BETWEEN THE NEW languageS 16 A Data Types and Storage Meohanisms 16 1 SAIL 16 2 PLANNER/CONNIVER 18 3 QLISP/INTERLISP 20 4 POPLER 21 B Control Structures 22 1 SAIL 22 2 PLANNER/CONNIVER 23 3 INTERLISP/QLISP 25 4 POPLER/POP-2 28 C Pattern Matching 29 1 SAIL 29
If programming languages were user interfaces it could be possible to evaluate their friendliness, easy of learning, error tolerance, user satisfaction and some other factors that make up what we call usability. Never...
详细信息
If programming languages were user interfaces it could be possible to evaluate their friendliness, easy of learning, error tolerance, user satisfaction and some other factors that make up what we call usability. Nevertheless experienced programmers know that some languages produce a better user experience than others, and there is also the fact that the same language could generate dissimilar interactivity results according to the development environment and the tools provided for actually building programs. In this paper the idea of programming languages as user interfaces is examined and a two dimensions model for evaluation is proposed. After showing that several methods exist to perform such evaluation a rationale for choosing one is explained. A brief report on the utilization of the proposed model at an initial stage is presented and some conclusions are drawn using three programming environments as subjects: Alice from Carnegie Mellon, Scratch from MIT and Small Basic from Microsoft.
暂无评论