The influential pure embedding methodology of embedding domainspecific languages (DSLs) as libraries into a general-purpose host language forces the DSL designer to commit to a single semantics. This precludes the subsequent addition of compilation, optimization or domain-specific analyses. We propose polymorphic embedding of DSLs, where many different interpretations of a DSL can be provided as reusable components, and show how polymorphic embedding can be realized in the programming language Scala. With polymorphic embedding, the static type-safety, modularity, composability and rapid prototyping of pure embedding are reconciled with the flexibility attainable by external toolchains.
Self-representation -the ability to represent programs in their own language -has important applications in reflective languages and many other domains of programming language design. Although approaches to designing typed program representations for sublanguages of some base language have become quite popular recently, the question whether a fully metacircular typed selfrepresentation is possible is still open. This paper makes a big step towards this aim by defining the F * ω calculus, an extension of the higher-order polymorphic lambda calculus Fω that allows typed self-representations. While the usability of these representations for metaprogramming is still limited, we believe that our approach makes a significant step towards a new generation of reflective languages that are both safe and efficient.
Our current labour market is affected by massive changes like digitalization, automation and globalization, which gives rise to completely new forms of generating income. One such innovative idea is crowdworking, where many people (a so-called crowd) work on individual tasks for a firm in a way similar to a self-employed freelancer. This form of occupation is a recent development but gains acceptance, esteem and relevance quite rapidly. The risk potential for wage dumping and (self-) exploitation is still unknown. A crucial, but often neglected fact about crowdworking is that it exists in many variants which have completely different properties. We investigate how much these distinct versions of crowdworking differ by using an agent-based computer simulation. Wages, job security, workforce composition and other relevant indicators are calculated by simulating the micro scale to gain aggregated information on the macro-scale. We find that there is a significant difference between the versions of crowdworking. Our main finding is that especially variants where the crowdworkers are able to set their own wages are susceptible to wage dumping. Simulations suggest that this phenomenon is independent of the specifics of the labour market but rather a fundamental property of those variants of crowdworking.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.