• 学术搜索
  • 科研智能体
    • Research Labs
    • AI 阅读
    • AI 文库
    • 深度研究
    • 学者亮点
  • 学术资源
    • AI2000
    • 期刊/会议
    • 学者库
    • 学术API
      MCP&Skill
    • 溯源树
    • 数据集
  • 知识沉淀
    • 学术空间
订阅小程序
旧版功能
aminer vip
开通会员低至0.73元/天
一次搞定AI科研
立即登录
  • English
  • 联系方式
    ACM SIGPLAN Symposium on Scala

    ACM SIGPLAN Symposium on Scala

    Conference

    年发文量

    研究主题

    论文(150)

    排序
    1Enhancing Closures in Scala 3 with Spores3
    Philipp Haller

    The use of closures, a core language feature of functional programming languages, has become popular in the context of concurrent and distributed programming. Using closures in a concurrent or distributed setting increases safety hazards, however, due to captured variables. Previous work proposed spores, enhanced closures that increase safety by constraining their environment using types. This paper presents Spores3, a completely new library-based implementation of spores for Scala 3. It is shown how the new design is enabled by a unique combination of several new features in Scala 3. Moreover, Spores3 contributes a new, portable approach to serializing closures based on type classes. Its implementation supports the same serialization approach on both the JVM and the JavaScript backends of Scala.

    2022
    引用
    AI阅读
    加入学术空间
    2Type-safe Regular Expressions
    Olivier Blanvillain

    Regular expressions can easily go wrong. Capturing groups, in particular, require meticulous care to avoid running into off-by-one errors and null pointer exceptions. In this chapter, we propose a new design for Scala's regular expressions which completely eliminates this class of errors. Our design makes extensive use of match types, Scala's new feature for type-level programming, to statically analyze regular expressions during type checking. We show that our approach has a minor impact on compilation times, which makes it suitable for practical use.

    2022引用:1
    引用
    AI阅读
    加入学术空间
    3Explicit Nulls with Unsafe Nulls
    Yaoyu Zhao,Ondřej Lhoták

    The explicit nulls feature was merged into Scala 3 compiler at the end of 2019, which makes Null no longer a subtype of all reference types. This is the first step to enforce null safety in Scala language. Since then, we are continuously improving the usability to help users migrating to explicit nulls more easily. The UncheckedNull (originally named JavaNull) was introduced in the original design to allow calling Java members unsafely (Nieto et al. 2020). Due to limited usage and difficulty of implementation, we decided to discard this notion and introduced a new language feature, called UnsafeNulls. By simply importing scala.language-.unsafeNulls, users can create an "unsafe" scope. Inside this scope, Null will have similar semantic as in Scala without explicit nulls, which allows selecting members on nullable variables and assigning nullable values to non-nullable variables without checking. This is useful when a large chunk of Scala code is mainly interacting with nullable values from Java library. The community projects are used to evaluate this new feature. We found UnsafeNulls can significantly reduce the work of initial migration. This gives users more flexibility to migrate their projects gradually. We also migrated the Scala 3 compiler itself to explicit nulls.

    2022
    引用
    AI阅读
    加入学术空间
    4Design Patterns for Parser Combinators (functional Pearl)
    Jamie Willis,Nicolas Wu

    Parser combinators are a popular and elegant approach for parsing in functional languages. The design and implementation of such libraries are well discussed, but having a well-designed library is only one-half of the story. In this paper we explore several reusable approaches to writing parsers in combinator style, focusing on easy to apply patterns to keep parsing code simple, separated, and maintainable.

    2022引用:2
    引用
    AI阅读
    加入学术空间
    5Optimized Cascadic Multigrid Parareal Method for Explicit Time-Marching Schemes
    Chen,Kengo Nakajima

    High-performance computing research is entering the exascale computing era. Large-scale simulations have more than enough parallel resources but reach a saturation point in spatial parallelization due to the communication cost and synchronization overhead. Parallel-in-time (PinT) methods are a solution to the saturation problem. To date, many efficient PinT methods have been proposed, but most experiments focus on small problems with a large number of time steps. Applications that are solved by explicit time-marching schemes, especially, are highly scalable in the spatial domain. Therefore very few researchers use PinT methods on explicit time-marching schemes. Furthermore, PinT methods often require many processors to achieve faster computation than sequential code. This work proposes a PinT method for explicit schemes that provide efficient parallelization with few working processes. The numerical experiment of advection equation and compressible viscous flow simulation shows that the proposed method could achieve better parallel efficiency than spatial parallelization.

    2021引用:1
    引用
    AI阅读
    加入学术空间
    立即登录,查看全部 150 篇论文

    高被引作者

    作者引用发文
    Jack Dongarra16611
    Viktor Kunčak1505
    Eugene Burmako1302
    Etienne Kneuss1252
    Carlos Villavieja1171
    Nikola Puzovic1171
    Nikola Rajovic1171
    Lluís Vilanova1171
    Alex Ramirez1171
    Richard W. Vuduc (Rich Vuduc)1161

    高产作者

    作者引用发文
    Jack Dongarra16611
    Martin Odersky518
    Stanimire Tomov1127
    Yasuhiro Idomura505
    Hartwig Anzt805
    Piotr Luszczek805
    Viktor Kunčak1505
    Philipp Haller344
    Tiark Rompf564
    Naoyuki Onodera414

    相关期刊

    ACM SIGAPL APL Quote Quad
    European Conference on Parallel Processing
    IEEE/ACM International Symposium on Code Generation and Optimization
    ACM SIGPLAN Symposium on Principles & Practice of Parallel Programming
    Compiler Construction
    ACM International Conference on Supercomputing
    International Workshop on OpenCL
    Languages and Compilers for Parallel Computing
    ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems
    Proceedings. Symposium on Computer Architecture and High Performance Computing