This paper describes the design of Monty, a language intended to be equally suitable for both scripting and conventional programming. Monty features an unusually flexible type system in which all values are viewed as ...
详细信息
This paper describes the design of Monty, a language intended to be equally suitable for both scripting and conventional programming. Monty features an unusually flexible type system in which all values are viewed as objects in a single-inheritance class hierarchy, static and dynamic typing are smoothly integrated, and both nonvariant and covariant generic classes are supported. An interesting by product of the design of Monty has been the light it has shed on the power of mutability as a linguistic concept. Among other things, it turns out that the type-soundness of a covariant generic class is closely related to the class's mutability.
BACKGROUND:Published descriptions of biology protocols are often ambiguous and incomplete, making them difficult to replicate in other laboratories. However, there is increasing benefit to formalizing the descriptions...
详细信息
BACKGROUND:Published descriptions of biology protocols are often ambiguous and incomplete, making them difficult to replicate in other laboratories. However, there is increasing benefit to formalizing the descriptions of protocols, as laboratory automation systems (such as microfluidic chips) are becoming increasingly capable of executing them. Our goal in this paper is to improve both the reproducibility and automation of biology experiments by using a programming language to express the precise series of steps taken.
RESULTS:We have developed BioCoder, a C++ library that enables biologists to express the exact steps needed to execute a protocol. In addition to being suitable for automation, BioCoder converts the code into a readable, English-language description for use by biologists. We have implemented over 65 protocols in BioCoder; the most complex of these was successfully executed by a biologist in the laboratory using BioCoder as the only reference. We argue that BioCoder exposes and resolves ambiguities in existing protocols, and could provide the software foundations for future automation platforms. BioCoder is freely available for download at http://***/en-us/um/india/projects/biocoder/.
CONCLUSIONS:BioCoder represents the first practical programming system for standardizing and automating biology protocols. Our vision is to change the way that experimental methods are communicated: rather than publishing a written account of the protocols used, researchers will simply publish the code. Our experience suggests that this practice is tractable and offers many benefits. We invite other researchers to leverage BioCoder to improve the precision and completeness of their protocols, and also to adapt and extend BioCoder to new domains.
A truly general purpose programming language, GPL, is described which contains facilities for constructing (within the language) new data types as well as facilities for operations performed upon them. The basic langu...
详细信息
EDISON-80, a superset of the programming language EDISON, is implemented on an Intel Corp. development system. It attempts to provide software designers with a programming environment that combines the benefits of a...
详细信息
EDISON-80, a superset of the programming language EDISON, is implemented on an Intel Corp. development system. It attempts to provide software designers with a programming environment that combines the benefits of abstraction of high-level languages with those of machine-orientation and is powerful enough to support the development of nontrivial system software with a wide range of facilities, including parallel processing. Modifications -- for example, the separate compilation facility -- are introduced into EDISON-80 to make it more powerful than the original. Despite being an interpreted language, the resulting EDISON-80 object code can be downloaded on and is compatible with the existing compiled languages on the system, so that they can be tied together and run on user systems.
This study explores the large language model-powered low-code and no-code (LC/NC) data analytics methods and evaluates their advantages and risks. Then, we conducted an empirical study at a university to examine how L...
详细信息
This study explores the large language model-powered low-code and no-code (LC/NC) data analytics methods and evaluates their advantages and risks. Then, we conducted an empirical study at a university to examine how LC/NC tools enable complex data analyses without requiring extensive programming training.
Subroutines for numerical computation have in the past been written mainly in Fortran and in Algol 60, whereas most programming in the future is expected to be in more advanced languages, for example in Ada. It seems ...
详细信息
Subroutines for numerical computation have in the past been written mainly in Fortran and in Algol 60, whereas most programming in the future is expected to be in more advanced languages, for example in Ada. It seems to be a great waste if it will become necessary to convert all existing numerical software into the new languages. What is needed is a facility to include subroutines written in the old languages into programs being written in the newer languages. In this paper an automatic procedure to facilitate the use of mixed languages is suggested, the purpose of the paper is to indicate the desirability for providing the required facilities, and to encourage discussion and further research in the area of mixed languageprogramming.
A large part of data science projects is spent on data engineering. Especially in open data contexts, data quality issues are prevalent and are often tackled by non-professional programmers. We introduce and evaluate ...
详细信息
A large part of data science projects is spent on data engineering. Especially in open data contexts, data quality issues are prevalent and are often tackled by non-professional programmers. We introduce and evaluate Jayvee, a domain-specific language for data engineering aimed at reducing barriers to building data pipelines. We show that a structured DSL can have positive effects on speed, ease of use, and quality for data engineering by non-professional developers. For this, we present an empirical quantitative study, in which we compare the performance of students as proxies for non-professional programmers using Jayvee with Python and Pandas. We search for reasons for the empirical findings using a follow-up interview study on how using a DSL changes how non-professional programmers build data pipelines. Participants solve a subset of tasks faster, more easily, and with higher quality when using Jayvee compared to Python. Interviewees describe tradeoffs regarding the DSL's more limited features, stricter code structure, and explicit descriptions. Jayvee is found to be more approachable, which leads to a more guided development flow. New data engineering languages should provide good tooling and documentation, plan how to visualize intermediate data and consider new development workflows involving tools like ChatGPT to find adoption.
In the video game software industry, scripting languages have been used to alleviate the complexity of game development. Much of this complexity resides in managing game characters' multiple concurrent activities....
详细信息
In the video game software industry, scripting languages have been used to alleviate the complexity of game development. Much of this complexity resides in managing game characters' multiple concurrent activities. However, current scripting languages seem to lack support for interactions among multiple concurrent activities in a state-dependent manner. To overcome this problem, we propose a mechanism called "join token'' in which the states of game characters can be expressed as tokens and interactions can be described as handlers involving multiple tokens. For the purpose of evaluation, we have developed a game scripting language called "Mogemoge'', and we have written several sample games in this language. In this paper, we explain the join token, the design/implementation of Mogemoge, and its evaluation through a sample game. (C) 2011 International Federation for Information Processing Published by Elsevier B.V. All rights reserved.
Programmable data plane has been moving towards deployments in data centers as mainstream vendors of switching ASICs enable programmability in their newly launched products, such as Broadcom's Trident-4, Intel/Bar...
详细信息
ISBN:
(纸本)9781450379557
Programmable data plane has been moving towards deployments in data centers as mainstream vendors of switching ASICs enable programmability in their newly launched products, such as Broadcom's Trident-4, Intel/Barefoot's Tofino, and Cisco's Silicon One. However, current data plane programs are written in low-level, chip-specific languages (e.g., P4 and NPL) and thus tightly coupled to the chip-specific architecture. As a result, it is arduous and error-prone to develop, maintain, and composite data plane programs in production networks. This paper presents Lyra, the first cross-platform, high-level language & compiler system that aids the programmers in programming data planes efficiently. Lyra offers a one-big-pipeline abstraction that allows programmers to use simple statements to express their intent, without laboriously taking care of the details in hardware;Lyra also proposes a set of synthesis and optimization techniques to automatically compile this "big-pipeline" program into multiple pieces of runnable chip-specific code that can be launched directly on the individual programmable switches of the target network. We built and evaluated Lyra. Lyra not only generates runnable real-world programs (in both P4 and NPL), but also uses up to 87.5% fewer hardware resources and up to 78% fewer lines of code than human-written programs.
暂无评论