9,324 research outputs found
Dynamically typed languages
Dynamically typed languages such as Python and Ruby have experienced a rapid grown in popularity in recent times. However, there is much confusion as to what makes these languages interesting relative to statically typed languages, and little knowledge of their rich history. In this chapter I explore the general topic of dynamically typed languages, how they differ from statically typed languages, their history, and their defining features
Tracing the Use of Practices through Networks of Collaboration
An active line of research has used on-line data to study the ways in which
discrete units of information---including messages, photos, product
recommendations, group invitations---spread through social networks. There is
relatively little understanding, however, of how on-line data might help in
studying the diffusion of more complex {\em practices}---roughly, routines or
styles of work that are generally handed down from one person to another
through collaboration or mentorship. In this work, we propose a framework
together with a novel type of data analysis that seeks to study the spread of
such practices by tracking their syntactic signatures in large document
collections. Central to this framework is the notion of an "inheritance graph"
that represents how people pass the practice on to others through
collaboration. Our analysis of these inheritance graphs demonstrates that we
can trace a significant number of practices over long time-spans, and we show
that the structure of these graphs can help in predicting the longevity of
collaborations within a field, as well as the fitness of the practices
themselves.Comment: To Appear in Proceedings of ICWSM 2017, data at
https://github.com/CornellNLP/Macro
MELT - a Translated Domain Specific Language Embedded in the GCC Compiler
The GCC free compiler is a very large software, compiling source in several
languages for many targets on various systems. It can be extended by plugins,
which may take advantage of its power to provide extra specific functionality
(warnings, optimizations, source refactoring or navigation) by processing
various GCC internal representations (Gimple, Tree, ...). Writing plugins in C
is a complex and time-consuming task, but customizing GCC by using an existing
scripting language inside is impractical. We describe MELT, a specific
Lisp-like DSL which fits well into existing GCC technology and offers
high-level features (functional, object or reflexive programming, pattern
matching). MELT is translated to C fitted for GCC internals and provides
various features to facilitate this. This work shows that even huge, legacy,
software can be a posteriori extended by specifically tailored and translated
high-level DSLs.Comment: In Proceedings DSL 2011, arXiv:1109.032
PASCal: A principal-axis strain calculator for thermal expansion and compressibility determination
We describe a web-based tool (PASCal; Principal Axis Strain Calculator) aimed
at simplifying the determination of principal coefficients of thermal expansion
and compressibilities from variable-temperature and variable-pressure lattice
parameter data. In a series of three case studies, we use PASCal to re-analyse
previously-published lattice parameter data and show that additional scientific
insight is obtainable in each case. First, the two-dimensional metal-organic
framework Cu-SIP-3 is found to exhibit the strongest area-negative thermal
expansion (NTE) effect yet observed; second, the widely-used explosive HMX
exhibits much stronger mechanical anisotropy than had previously been
anticipated, including uniaxial NTE driven by thermal changes in molecular
conformation; and, third, the high-pressure form of the mineral malayaite is
shown to exhibit a strong negative linear compressibility (NLC) effect that
arises from correlated tilting of SnO6 and SiO4 coordination polyhedra.Comment: 31 pages, 8 figures, formatted as preprint for J. Appl. Crys
The Complexity of Planning Problems With Simple Causal Graphs
We present three new complexity results for classes of planning problems with
simple causal graphs. First, we describe a polynomial-time algorithm that uses
macros to generate plans for the class 3S of planning problems with binary
state variables and acyclic causal graphs. This implies that plan generation
may be tractable even when a planning problem has an exponentially long minimal
solution. We also prove that the problem of plan existence for planning
problems with multi-valued variables and chain causal graphs is NP-hard.
Finally, we show that plan existence for planning problems with binary state
variables and polytree causal graphs is NP-complete
Data Definitions in the ACL2 Sedan
We present a data definition framework that enables the convenient
specification of data types in ACL2s, the ACL2 Sedan. Our primary motivation
for developing the data definition framework was pedagogical. We were teaching
undergraduate students how to reason about programs using ACL2s and wanted to
provide them with an effective method for defining, testing, and reasoning
about data types in the context of an untyped theorem prover. Our framework is
now routinely used not only for pedagogical purposes, but also by advanced
users.
Our framework concisely supports common data definition patterns, e.g. list
types, map types, and record types. It also provides support for polymorphic
functions. A distinguishing feature of our approach is that we maintain both a
predicative and an enumerative characterization of data definitions.
In this paper we present our data definition framework via a sequence of
examples. We give a complete characterization in terms of tau rules of the
inclusion/exclusion relations a data definition induces, under suitable
restrictions. The data definition framework is a key component of
counterexample generation support in ACL2s, but can be independently used in
ACL2, and is available as a community book.Comment: In Proceedings ACL2 2014, arXiv:1406.123
- …