Implementing a Language for Distributed Systems: Choices and Experiences with Type Level and Macro Programming in Scala

Multitier programming languages reduce the complexity of developing distributed systems by developing the distributed system in a single coherent code base. The compiler or the runtime separate the code for the components of the distributed system, enabling abstraction over low level implementation...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:arXiv.org
Hlavní autoři: Weisenburger, Pascal, Salvaneschi, Guido
Médium: Paper
Jazyk:angličtina
Vydáno: Ithaca Cornell University Library, arXiv.org 14.02.2020
Témata:
ISSN:2331-8422
On-line přístup:Získat plný text
Tagy: Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
Abstract Multitier programming languages reduce the complexity of developing distributed systems by developing the distributed system in a single coherent code base. The compiler or the runtime separate the code for the components of the distributed system, enabling abstraction over low level implementation details such as data representation, serialization and network protocols. Our ScalaLoci language allows developers to declare the different components and their architectural relation at the type level, allowing static reasoning about about distribution and remote communication and guaranteeing static type safety across components. The compiler splits the multitier program into the component-specific code and automatically generates the communication boilerplate. Communication between components can be modeled by declaratively specifying data flows between components using reactive programming. In this paper, we report on the implementation of our design and our experience with embedding our language features into Scala as a host language. We show how a combination of Scala's advanced type level programming and its macro system can be used to enrich the language with new abstractions. We comment on the challenges we encountered and the solutions we developed for our current implementation and outline suggestions for an improved macro system to support the such use cases of embedding of domain-specific abstractions.
AbstractList Multitier programming languages reduce the complexity of developing distributed systems by developing the distributed system in a single coherent code base. The compiler or the runtime separate the code for the components of the distributed system, enabling abstraction over low level implementation details such as data representation, serialization and network protocols. Our ScalaLoci language allows developers to declare the different components and their architectural relation at the type level, allowing static reasoning about about distribution and remote communication and guaranteeing static type safety across components. The compiler splits the multitier program into the component-specific code and automatically generates the communication boilerplate. Communication between components can be modeled by declaratively specifying data flows between components using reactive programming. In this paper, we report on the implementation of our design and our experience with embedding our language features into Scala as a host language. We show how a combination of Scala's advanced type level programming and its macro system can be used to enrich the language with new abstractions. We comment on the challenges we encountered and the solutions we developed for our current implementation and outline suggestions for an improved macro system to support the such use cases of embedding of domain-specific abstractions.
Author Weisenburger, Pascal
Salvaneschi, Guido
Author_xml – sequence: 1
  givenname: Pascal
  surname: Weisenburger
  fullname: Weisenburger, Pascal
– sequence: 2
  givenname: Guido
  surname: Salvaneschi
  fullname: Salvaneschi, Guido
BookMark eNotjV1LwzAUhoMoOOd-gHcBrzeTk6bNvJM5P6CisN2Ps_a0y2jTmrT7-Pdu6tXLywPPc8MuXeOIsTspJpHRWjygP9jdBISAiYiliS7YAJSSYxMBXLNRCFtxYnECWqsB27_XbUU1uc66kiNP0ZU9lsSLxvNnGzpv131HOV8cQ0d1eOSzTWMzChxdzueHlrwld_5722348tgST2lH1S__wMw3_Ms3pce6Phes44sMK7xlVwVWgUb_O2TLl_ly9jZOP1_fZ0_pGDXIcYKwzmBaJFTkMtYZABHkGSUEQiaxJkCTG5HpKE8wLgCUMagyQVhMhVSJGrL7P23rm--eQrfaNr13p-IKlI6VibSW6gdx5GBt
ContentType Paper
Copyright 2020. This work is published under http://arxiv.org/licenses/nonexclusive-distrib/1.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License.
Copyright_xml – notice: 2020. This work is published under http://arxiv.org/licenses/nonexclusive-distrib/1.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License.
DBID 8FE
8FG
ABJCF
ABUWG
AFKRA
AZQEC
BENPR
BGLVJ
CCPQU
DWQXO
HCIFZ
L6V
M7S
PHGZM
PHGZT
PIMPY
PKEHL
PQEST
PQGLB
PQQKQ
PQUKI
PRINS
PTHSS
DOI 10.48550/arxiv.2002.06184
DatabaseName ProQuest SciTech Collection
ProQuest Technology Collection
ProQuest Materials Science & Engineering
ProQuest Central (Alumni)
ProQuest Central UK/Ireland
ProQuest Central Essentials
AUTh Library subscriptions: ProQuest Central
Technology collection
ProQuest One Community College
ProQuest Central Korea
SciTech Premium Collection
ProQuest Engineering Collection
Engineering Database
ProQuest Central Premium
ProQuest One Academic
Publicly Available Content Database
ProQuest One Academic Middle East (New)
ProQuest One Academic Eastern Edition (DO NOT USE)
ProQuest One Applied & Life Sciences
ProQuest One Academic (retired)
ProQuest One Academic UKI Edition
ProQuest Central China
Engineering collection
DatabaseTitle Publicly Available Content Database
Engineering Database
Technology Collection
ProQuest One Academic Middle East (New)
ProQuest Central Essentials
ProQuest One Academic Eastern Edition
ProQuest Central (Alumni Edition)
SciTech Premium Collection
ProQuest One Community College
ProQuest Technology Collection
ProQuest SciTech Collection
ProQuest Central China
ProQuest Central
ProQuest One Applied & Life Sciences
ProQuest Engineering Collection
ProQuest One Academic UKI Edition
ProQuest Central Korea
Materials Science & Engineering Collection
ProQuest Central (New)
ProQuest One Academic
ProQuest One Academic (New)
Engineering Collection
DatabaseTitleList Publicly Available Content Database
Database_xml – sequence: 1
  dbid: PIMPY
  name: Publicly Available Content Database
  url: http://search.proquest.com/publiccontent
  sourceTypes: Aggregation Database
DeliveryMethod fulltext_linktorsrc
Discipline Physics
EISSN 2331-8422
Genre Working Paper/Pre-Print
GroupedDBID 8FE
8FG
ABJCF
ABUWG
AFKRA
ALMA_UNASSIGNED_HOLDINGS
AZQEC
BENPR
BGLVJ
CCPQU
DWQXO
FRJ
HCIFZ
L6V
M7S
M~E
PHGZM
PHGZT
PIMPY
PKEHL
PQEST
PQGLB
PQQKQ
PQUKI
PRINS
PTHSS
ID FETCH-LOGICAL-a521-7a2bc29f7efd165c22ee2dce7e201765e2a8d80c54d7a6f22388a3c0eaf901373
IEDL.DBID BENPR
IngestDate Mon Jun 30 09:25:45 EDT 2025
IsDoiOpenAccess true
IsOpenAccess true
IsPeerReviewed false
IsScholarly false
Language English
LinkModel DirectLink
MergedId FETCHMERGED-LOGICAL-a521-7a2bc29f7efd165c22ee2dce7e201765e2a8d80c54d7a6f22388a3c0eaf901373
Notes SourceType-Working Papers-1
ObjectType-Working Paper/Pre-Print-1
content type line 50
OpenAccessLink https://www.proquest.com/docview/2356384551?pq-origsite=%requestingapplication%
PQID 2356384551
PQPubID 2050157
ParticipantIDs proquest_journals_2356384551
PublicationCentury 2000
PublicationDate 20200214
PublicationDateYYYYMMDD 2020-02-14
PublicationDate_xml – month: 02
  year: 2020
  text: 20200214
  day: 14
PublicationDecade 2020
PublicationPlace Ithaca
PublicationPlace_xml – name: Ithaca
PublicationTitle arXiv.org
PublicationYear 2020
Publisher Cornell University Library, arXiv.org
Publisher_xml – name: Cornell University Library, arXiv.org
SSID ssj0002672553
Score 1.7137152
SecondaryResourceType preprint
Snippet Multitier programming languages reduce the complexity of developing distributed systems by developing the distributed system in a single coherent code base....
SourceID proquest
SourceType Aggregation Database
SubjectTerms Communication
Compilers
Computer networks
Embedded systems
Embedding
Language
Programming languages
Protocol (computers)
Title Implementing a Language for Distributed Systems: Choices and Experiences with Type Level and Macro Programming in Scala
URI https://www.proquest.com/docview/2356384551
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwpV3PT8IwGG0UNPHk7_gDSQ9eK6N0a-fFRMRoAmQRDngiXdspBwduiP75fi1FDiZePK5d0qXt3vf168t7CF2mnKY0TRlRQaQJa1JJIOhRIjPGMtjVkNI6df0u7_fFaBQnvuBWelrlChMdUOupsjXyBm2FsFUYBPib2TuxrlH2dtVbaGyiqlUqYxVUve30k6efKguNOOTMreV1phPvasjia7Jw3ISrwLqd_AJhF1nud__7TXuomsiZKfbRhskP0LZjdKryEH063V9HBspfsMRdX5jEkKXiOyuXa52ujMZes_wat1-nFjWwzDVeKyCX2JZqsT2v4q5lGLn-ngQAx8mS3PVmR5jkeADrLY_Q8L4zbD8Q77JAJIRuwiVNFY0zbjLdjEJFqTFUK8MNpAY8Cg2VQotAhUxzGWWQTQghWyowMoutXGHrGFXyaW5OENYAngAg8I6KGWVRyg2XwkCbCLWQ-hTVVtM49n9KOV7P4dnf3edoh9qzrjVjYTVUmRcf5gJtqcV8UhZ1v_B1y90cwFPy2EuevwEyqLxR
linkProvider ProQuest
linkToHtml http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMw1V1LT8JAEJ4gaPTkO77dgx6rsGy7i4nxABIIhZDIAU9ku7tVDhakPn-U_9HZpcjBxBsHr92mzXYm883Mfv0G4CziNKJRxDxVDLTHSlR6CHrUkzFjMXo1prROXT_knY7o9yvdHHzN_oWxtMpZTHSBWo-U7ZFf0rKPrsIQ4G_Gz56dGmVPV2cjNKZu0TKf71iypdfNGtr3nNL6ba_a8LKpAp5EqPK4pJGilZibWJcCX1FqDNXKcINQyAPfUCm0KCqfaS6DGNFTCFlWRSPjipXnK-Njl6DA0NdFHgrdZrt7_9PUoQHHFL08PT11WmGXcvIxfHNUiIuiHa7yK-Y7IKuv_7NPsIFbl2Mz2YScSbZgxfFVVboN707V2FGdkgciSZi1XQnm4KRmxYDtHC-jSabIfkWqjyMbE4lMNJnrO6fENqKJrcZJaPlTbr0tEZ5Id0pde7JvGCbkDr1Z7kBvEVvdhXwySsweEI3QgOER71EVRlkQccOlMHhN-FpIvQ9HM6sNsjiQDuYmO_h7-RRWG712OAibndYhrFFb1duxM-wI8i-TV3MMy-rtZZhOTjKfIzBYsIm_AYI3FiU
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Implementing+a+Language+for+Distributed+Systems%3A+Choices+and+Experiences+with+Type+Level+and+Macro+Programming+in+Scala&rft.jtitle=arXiv.org&rft.au=Weisenburger%2C+Pascal&rft.au=Salvaneschi%2C+Guido&rft.date=2020-02-14&rft.pub=Cornell+University+Library%2C+arXiv.org&rft.eissn=2331-8422&rft_id=info:doi/10.48550%2Farxiv.2002.06184