Proceedings of the XXIII Brazilian Symposium on Programming Languages最新文献

筛选
英文 中文
Profiling Halide DSL with CPU Performance Events for Schedule Optimization 分析卤化物DSL与CPU性能事件调度优化
Proceedings of the XXIII Brazilian Symposium on Programming Languages Pub Date : 2019-09-23 DOI: 10.1145/3355378.3355381
R. Machado, André Murbach Maidl, Daniel Weingaertner
{"title":"Profiling Halide DSL with CPU Performance Events for Schedule Optimization","authors":"R. Machado, André Murbach Maidl, Daniel Weingaertner","doi":"10.1145/3355378.3355381","DOIUrl":"https://doi.org/10.1145/3355378.3355381","url":null,"abstract":"Halide is a domain-specific language (DSL) for image processing that enforces a separation of the algorithm and the execution schedule, allowing the generation of specialized code for distinct computer architectures by rewriting only the execution schedule, instead of the whole algorithm. In order to support the creation of good Halide schedules, our work extends the Halide DSL by adding a profiling API that uses the CPU Performance Events to measure events supported by the target processor during the application runtime. The proposed extension offers profiling of the application loop levels and functions' producer and consumer relations, embedding calls to a profiling library in the loop nests of the generated code. It also supports individualized profiling by threads on parallel regions. As a case study we use the PAPI library in order to count events such as L1 cache misses, number of float operations (FLOP) and L3 data volume on an Intel Core i5-7500 CPU, and discuss how the reported results can be used to manually or automatically generate better schedules for an image processing pipeline.","PeriodicalId":429937,"journal":{"name":"Proceedings of the XXIII Brazilian Symposium on Programming Languages","volume":"32 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122219642","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
Towards Typed Semantics for Parsing Expression Grammars 解析表达式语法的类型化语义
Proceedings of the XXIII Brazilian Symposium on Programming Languages Pub Date : 2019-09-23 DOI: 10.1145/3355378.3355388
R. Ribeiro, L. Reis, Samuel da Silva Feitosa, E. Cardoso
{"title":"Towards Typed Semantics for Parsing Expression Grammars","authors":"R. Ribeiro, L. Reis, Samuel da Silva Feitosa, E. Cardoso","doi":"10.1145/3355378.3355388","DOIUrl":"https://doi.org/10.1145/3355378.3355388","url":null,"abstract":"We describe the formalization of a type system for parsing expression grammars (PEG) which is equivalent to Ford's original fixpoint-based definition of well-formed PEGs. We use our type system definition to implement a functional big-step semantics for typed PEGs using the Agda programming language.","PeriodicalId":429937,"journal":{"name":"Proceedings of the XXIII Brazilian Symposium on Programming Languages","volume":"97 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127164173","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 2
Java Stream Fusion: Adapting FP mechanisms for an OO setting Java流融合:为OO设置调整FP机制
Proceedings of the XXIII Brazilian Symposium on Programming Languages Pub Date : 2019-09-23 DOI: 10.1145/3355378.3355386
Francisco Ribeiro, J. Saraiva, Alberto Pardo
{"title":"Java Stream Fusion: Adapting FP mechanisms for an OO setting","authors":"Francisco Ribeiro, J. Saraiva, Alberto Pardo","doi":"10.1145/3355378.3355386","DOIUrl":"https://doi.org/10.1145/3355378.3355386","url":null,"abstract":"In this paper, we show how stream fusion, a program transformation technique used in functional programming, can be adapted for an Object-Oriented setting. This makes it possible to have more Stream operators than the ones currently provided by the Java Stream API. The addition of more operators allows for a greater deal of expressiveness. To this extent, we show how these operators are incorporated in the stream setting. Furthermore, we also demonstrate how a specific set of optimizations eliminates overheads and produces equivalent code in the form of for loops. In this way, programmers are relieved from the burden of writing code in such a cumbersome style, thus allowing for a more declarative and intuitive programming approach.","PeriodicalId":429937,"journal":{"name":"Proceedings of the XXIII Brazilian Symposium on Programming Languages","volume":"55 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122262333","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 2
IML - An Image Manipulation Language IML -一个图像处理语言
Proceedings of the XXIII Brazilian Symposium on Programming Languages Pub Date : 2019-09-23 DOI: 10.1145/3355378.3355382
Carlos Vieira, S. Medeiros
{"title":"IML - An Image Manipulation Language","authors":"Carlos Vieira, S. Medeiros","doi":"10.1145/3355378.3355382","DOIUrl":"https://doi.org/10.1145/3355378.3355382","url":null,"abstract":"Several image manipulation tools support the use of at least one general scripting language (e.g., Python, JavaScript), for task automation. But, users of such tools usually do not have much experience or skill with these (or often any) programming languages, which represents a barrier for the use of such languages when automating a task. With this in mind, we present IML, a work-in-progress, domain-specific language designed for easy and clear image manipulation. Besides describing the basic constructs and operations of this language, we compared a simple IML program with equivalent implementations in the languages currently supported by the popular image manipulation tool GIMP. This illustrates how IML might make the image editing automation process simpler, easier to learn, and more straightforward.","PeriodicalId":429937,"journal":{"name":"Proceedings of the XXIII Brazilian Symposium on Programming Languages","volume":"310 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116339230","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
An Inherently-Typed Formalization for Featherweight Java 轻量级Java的固有类型形式化
Proceedings of the XXIII Brazilian Symposium on Programming Languages Pub Date : 2019-09-23 DOI: 10.1145/3355378.3355385
Samuel da Silva Feitosa, A. S. Mena, R. Ribeiro, A. R. D. Bois
{"title":"An Inherently-Typed Formalization for Featherweight Java","authors":"Samuel da Silva Feitosa, A. S. Mena, R. Ribeiro, A. R. D. Bois","doi":"10.1145/3355378.3355385","DOIUrl":"https://doi.org/10.1145/3355378.3355385","url":null,"abstract":"Featherweight Java is one of the most popular calculi which specify object-oriented programming features. It has been used as the basis for investigating novel language functionalities, as well as to specify and understand the formal properties of existing features for languages in this paradigm. However, when considering mechanized formalization, it is hard to find an implementation for languages with complex structures and binding mechanisms as Featherweight Java. In this paper we explore an inherently-typed approach to formalize Featherweight Java, implementing the static and dynamic semantics in Agda using dependent types, and then replicating it in Coq (the latter using the Equations plug-in). Using this approach, the interpreter is correct by construction, since the type checker of the host language is responsible for verifying type safety, thus avoiding repetitions of proofs and error checking.","PeriodicalId":429937,"journal":{"name":"Proceedings of the XXIII Brazilian Symposium on Programming Languages","volume":"25 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127247035","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
Structure verification of deep neural networks at compilation time using dependent types 编译时使用依赖类型的深度神经网络结构验证
Proceedings of the XXIII Brazilian Symposium on Programming Languages Pub Date : 2019-09-23 DOI: 10.1145/3355378.3355379
Leonardo Piñeyro, Alberto Pardo, Marcos Viera
{"title":"Structure verification of deep neural networks at compilation time using dependent types","authors":"Leonardo Piñeyro, Alberto Pardo, Marcos Viera","doi":"10.1145/3355378.3355379","DOIUrl":"https://doi.org/10.1145/3355378.3355379","url":null,"abstract":"This paper presents TensorSafe, a dependently typed Haskell library which makes possible the definition and structural validation of deep neural networks architectures. Nowadays, the development process of deep learning models has been notably simplified due to the availability of sophisticated tools in the industry. However, most of these tools do not provide any security controls at compilation time, making the developers deal with unexpected run-time errors and uncertainties. In particular, validating the structure of deep neural networks at compilation time is a complex subject which involves the mathematical validation of all operations that a deep learning model will perform. Moreover, this structural checking requires an advanced usage of types systems theories to manipulate abstract type definitions capable of modeling neural networks constructions. Many different programming techniques were involved in the specification of TensorSafe. Primarily, the application of the functional programming paradigm and the use of dependent types were of great importance for the development process and to probe the correctness of the neural network models. The experimental evaluation showed that by using TensorSafe it is possible to correctly create well known deep neural network architectures, such like MNIST or ResNet50.","PeriodicalId":429937,"journal":{"name":"Proceedings of the XXIII Brazilian Symposium on Programming Languages","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117084680","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 5
Synthesis of Benchmarks for the C Programming Language by Mining Software Repositories 基于软件资源库的C编程语言基准综合
Proceedings of the XXIII Brazilian Symposium on Programming Languages Pub Date : 2019-09-23 DOI: 10.1145/3355378.3355380
B. Guimarães, José Wesley de S. Magalhães, A. F. Silva, F. Pereira
{"title":"Synthesis of Benchmarks for the C Programming Language by Mining Software Repositories","authors":"B. Guimarães, José Wesley de S. Magalhães, A. F. Silva, F. Pereira","doi":"10.1145/3355378.3355380","DOIUrl":"https://doi.org/10.1145/3355378.3355380","url":null,"abstract":"Compilers are usually distributed with a test framework. This framework supports the task of tuning optimizations and static analyses. As an example, clang has a test suite that, in March 2019, counted 259 benchmarks. Although in principle a large collection, this number is small once we consider the needs of the automatic tuning techniques that became fashionable recently. To mitigate the problems caused by such lack of benchmarks, this paper introduces a technique that allows the automatic construction of compilable programs out of open-source repositories. Our approach has made it possible to build, in less than 24 hours, a collection with over 500 thousand functions that clang can compile. In this paper, we show that such abundance of data gives us precise information about the behavior of compiler optimizations, and lets us create accurate prediction models. This collection of benchmarks is today freely available to the open-source community.","PeriodicalId":429937,"journal":{"name":"Proceedings of the XXIII Brazilian Symposium on Programming Languages","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129425320","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 2
Efficient and Precise Dynamic Construction of Control Flow Graphs 高效、精确的控制流程图动态构造
Proceedings of the XXIII Brazilian Symposium on Programming Languages Pub Date : 2019-09-23 DOI: 10.1145/3355378.3355383
A. Rimsa, J. N. Amaral, Fernando Magno Quintão Pereira
{"title":"Efficient and Precise Dynamic Construction of Control Flow Graphs","authors":"A. Rimsa, J. N. Amaral, Fernando Magno Quintão Pereira","doi":"10.1145/3355378.3355383","DOIUrl":"https://doi.org/10.1145/3355378.3355383","url":null,"abstract":"The extraction of high-level information from binary code is an important problem in programming languages, whose solution supports the detection of malware in binary code and the construction of dynamic program slices. The Control Flow Graph is one of the instruments used to represent the structure of binary programs. Most solutions to reconstruct CFGs from binary programs rely on purely static techniques, based either on data-flow analyses, or in type inference. In contrast, in this work we use a purely dynamic approach to such a purpose. Our technique can be used alone, or in combination with static analysis tools. We demonstrate that it is possible to verify completeness in several real-world programs. We also show how to combine our technique with DynInst, the current state-of-the-art static CFG reconstructor. By providing DynInst with extra information, we improve its capacity to deal with indirect jumps. Our dynamic CFG reconstructor has been implemented on top of valgrind. When applied on cBench, this implementation is able to completely cover 36% of all the functions available in that suite. It adds an average overhead of 43x onto the execution of the original programs. Although expressive, this overhead is almost four times lower than the overhead of DCFG, a tool distributed by Intel, and built on top of PinPlay.","PeriodicalId":429937,"journal":{"name":"Proceedings of the XXIII Brazilian Symposium on Programming Languages","volume":"81 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131433828","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 2
Structured Stream Parallelism for Rust Rust的结构化流并行
Proceedings of the XXIII Brazilian Symposium on Programming Languages Pub Date : 2019-09-23 DOI: 10.1145/3355378.3355384
Ricardo Pieper, Dalvan Griebler, L. G. Fernandes
{"title":"Structured Stream Parallelism for Rust","authors":"Ricardo Pieper, Dalvan Griebler, L. G. Fernandes","doi":"10.1145/3355378.3355384","DOIUrl":"https://doi.org/10.1145/3355378.3355384","url":null,"abstract":"Structured parallel programming has been studied and applied in several programming languages. This approach has proven to be suitable for abstracting low-level and architecture-dependent parallelism implementations. Our goal is to provide a structured and high-level library for the Rust language, targeting parallel stream processing applications for multi-core servers. Rust is an emerging programming language that has been developed by Mozilla Research group, focusing on performance, memory safety, and thread-safety. However, it lacks parallel programming abstractions, especially for stream processing applications. This paper contributes to a new API based on the structured parallel programming approach to simplify parallel software developing. Our experiments highlight that our solution provides higher-level parallel programming abstractions for stream processing applications in Rust. We also show that the throughput and speedup are comparable to the state-of-the-art for certain workloads.","PeriodicalId":429937,"journal":{"name":"Proceedings of the XXIII Brazilian Symposium on Programming Languages","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130687228","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 5
A Graph Transformation System formalism for Software Transactional Memory Opacity 软件事务性内存不透明性的图变换系统形式化
Proceedings of the XXIII Brazilian Symposium on Programming Languages Pub Date : 2019-09-23 DOI: 10.1145/3355378.3355387
Diogo J. Cardoso, Luciana Foss, A. R. D. Bois
{"title":"A Graph Transformation System formalism for Software Transactional Memory Opacity","authors":"Diogo J. Cardoso, Luciana Foss, A. R. D. Bois","doi":"10.1145/3355378.3355387","DOIUrl":"https://doi.org/10.1145/3355378.3355387","url":null,"abstract":"In order to check the correctness of Transactional Memory (TM) systems, a formal description of the implementations guarantees is necessary. There are many consistency conditions for TM, one of the most common is opacity. In this paper we present a formal definition to prove opacity on TM histories using a Graph Transformation System (GTS). We explore the connection between a history definition, a sequence of actions to the TM, and a result of direct graph transformations based on the actions portrayed in the history. Thus, creating a framework capable of observing the property of opacity on TM histories.","PeriodicalId":429937,"journal":{"name":"Proceedings of the XXIII Brazilian Symposium on Programming Languages","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127786449","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 2
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
相关产品
×
本文献相关产品
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信