• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 26
  • 26
  • 4
  • 2
  • 2
  • 2
  • 2
  • 1
  • 1
  • Tagged with
  • 69
  • 13
  • 12
  • 12
  • 10
  • 10
  • 9
  • 9
  • 9
  • 8
  • 7
  • 7
  • 7
  • 7
  • 6
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
11

Parallel programming in Go and Scala : A performance comparison

Johnell, Carl January 2015 (has links)
This thesis provides a performance comparison of parallel programming in Go and Scala. Go supports concurrency through goroutines and channels. Scala have parallel collections, futures and actors that can be used for concurrent and parallel programming. The experiment used two different types of algorithms to compare the performance between Go and Scala. Parallel versions of matrix multiplication and matrix chain multiplication were implemented with goroutines and channels in Go. Matrix multiplication was implemented with parallel collections and futures in Scala, and chain multiplication was implemented with actors.     The results from the study shows that Scala has better performance than Go, parallel matrix multiplication was about 3x faster in Scala. However, goroutines and channels are more efficient than actors. Go performed better than Scala when the number of goroutines and actors increased in the benchmark for parallel chain multiplication.     Both Go and Scala have features that makes parallel programming easier, but I found Go as a language was easier to learn and understand than Scala. I recommend anyone interested in Go to try it out because of its ease of use.
12

A Pure Embedding of Roles

Leuthäuser, Max 21 August 2017 (has links) (PDF)
Present-day software systems have to fulfill an increasing number of requirements, which makes them more and more complex. Many systems need to anticipate changing contexts or need to adapt to changing business rules or requirements. The challenge of 21th-century software development will be to cope with these aspects. We believe that the role concept offers a simple way to adapt an object-oriented program to its changing context. In a role-based application, an object plays multiple roles during its lifetime. If the contexts are represented as first-class entities, they provide dynamic views to the object-oriented program, and if a context changes, the dynamic views can be switched easily, and the software system adapts automatically. However, the concepts of roles and dynamic contexts have been discussed for a long time in many areas of computer science. So far, their employment in an existing object-oriented language requires a specific runtime environment. Also, classical object-oriented languages and their runtime systems are not able to cope with essential role-specific features, such as true delegation or dynamic binding of roles. In addition to that, contexts and views seem to be important in software development. The traditional code-oriented approach to software engineering becomes less and less satisfactory. The support for multiple views of a software system scales much better to the needs of todays systems. However, it relies on programming languages to provide roles for the construction of views. As a solution, this thesis presents an implementation pattern for role-playing objects that does not require a specific runtime system, the SCala ROles Language (SCROLL). Via this library approach, roles are embedded in a statically typed base language as dynamically evolving objects. The approach is pure in the sense that there is no need for an additional compiler or tooling. The implementation pattern is demonstrated on the basis of the Scala language. As technical support from Scala, the pattern requires dynamic mixins, compiler-translated function calls, and implicit conversions. The details how roles are implemented are hidden in a Scala library and therefore transparent to SCROLL programmers. The SCROLL library supports roles embedded in structured contexts. Additionally, a four-dimensional, context-aware dispatch at runtime is presented. It overcomes the subtle ambiguities introduced with the rich semantics of role-playing objects. SCROLL is written in Scala, which blends a modern object-oriented with a functional programming language. The size of the library is below 1400 lines of code so that it can be considered to have minimalistic design and to be easy to maintain. Our approach solves several practical problems arising in the area of dynamical extensibility and adaptation.
13

Análise psicométrica do Inventário Multidimensional do Estilo de Dirigir (MDSI - Multidimensional Driving Style Inventory) / Psychometric analyses of Multidimensional Driving Style Inventory

Silva, Luiz Carlos de Paiva e 04 June 2004 (has links)
Trata-se de uma investigação de desenvolvimento metodológico cujo objetivo foram adaptação, validação e verificar a fidedignidade do Inventário Multidimensional do Estilo de Dirigir (MDSI – Multidimensional Driving Style Inventory) para a língua portuguesa, aplicada para condutores que possuem Carteira Nacional de Habilitação ou Permissão para Dirigir. No instrumento foram realizados os procedimentos de tradução - versão e retroversão; analise do instrumento de acordo com os critérios comportamental, de objetividade, de clareza, de simplicidade, de relevância, de precisão, de variabilidade, de modalidade, bem como critérios de amplitude e de equilíbrio; adequação do construto; análise semântica por parte dos alunos-avaliadores; definição e delimitação de amostras; escolha do método de aplicação do instrumento; e aplicação do MDSI. Através do programa de estatística “SPSS" os 44 itens definiram os 08 fatores: estressado, agressivo, negligente, perigoso, senso-emocional, preventivo, relaxante e desatento. A análise dos 206 questionários aplicados nos motoristas da cidade de Ribeirão Preto e região, utilizando uma escala Likert, variando de nunca até sempre, concluiu que quando os condutores apresentarem características de serem negligentes, percebe-se que há maior possibilidade de ser um motorista relaxante e menor possibilidade de ser um motorista preventivo; conforme aumenta o índice do motorista perigoso, maiores serão os índices do senso-emocional e desatento e menor o índice do fator preventivo; o motorista preventivo está negativamente associado ao fator desatento; os motoristas homens têm comprovadamente índices mais elevados nos estilo relaxante; as mulheres apresentam maiores índices no estilo desatento; na variável idade, quando mais alta a idade do sujeito maior será o seu índice do estilo preventivo e quando menor for a idade maiores serão os índices dos fatores perigoso, senso-emocional e desatento. Foi realizada a análise de fidedignidade de cada item, onde 77,27% não apresentaram variação significativa; na análise da fidedignidade de cada sujeito: apresentou um alto índice de correlação de 0,6198. O teste MDSI deve ser aplicado em todos os motoristas que irão renovar a Carteira Nacional de Habilitação ou que tiveram sua Carteira Nacional de Habilitação suspensa ou cassada, pois servirá de aconselhamento, sem caráter reprovativo, apenas informativo. / This is about an inquiry of methodological development whose objective was adaptation, validation and to verify the reliability of the Multidimensional Driving Style Inventory (MDSI - Multidimensional Driving Style Inventory) for the Portuguese language, applied in conductors who possess National Wallet of Qualification or Permission To Drive. In the instrument had been carried through the translation procedures – in both directions; analyzes of the instrument in accordance with the criteria of behavior, of objectivity, clarity, simplicity, relevance, precision, variability, modality, as well as criteria of amplitude and balance; adequacy of construct; analysis semantics on the part of the pupil-appraisers; definition and delimitation of samples; choice of the method of application of the instrument; and application of the MDSI. Through the program of the 44 statistics \"SPSS\" item had defined the 08 factors: stressed, aggressive, negligent, dangerous, sense-emotional, preventive, relaxing and neglect. The analysis of the 206 questionnaires applies in drivers of Ribeirão Preto city, using a Likert scale, varied of never until always, concluded that when the conductors to present characteristics to be negligent, perceived that he has greater possibility of being a relaxing driver and lesser possibility of being a preventive driver; as it increases the index of the dangerous driver, bigger will be the indices of sense-emotional and neglect and lesser the index of the preventive factor; the preventive driver is negatively associated with the negligent factor; the men drivers confirmedly have elevated indices in the relaxing style; the women present greater indices in the negligent style; in the variable age, when higher the age of the citizen biggest will be its index of the preventive style and when lesser it will be the age biggest will be the indices of the factors dangerous, sense-emotional and neglect. The analysis of reliability of each item was carried through, where 77.27% had not presented significant variation; in the analysis of the reliability of each citizen: it presented a high index of correlation of 0,6198. Test MDSI must be applied in all the drivers who will go to renew the Wallet National of Qualification or that they had its National Wallet Qualification suspended or annulled, therefore will serve of advising , without reprobation character, only informative.
14

A intencionalidade de comunicação mediada em autismo : um estudo de aquisição de gestos no sistema SCALA

Foscarini, Ana Carla January 2013 (has links)
A comunicação humana é essencial para que ocorra um processo de interação social. É através dela que os sujeitos podem manifestar suas vontades, desejos, necessidades, estabelecer trocas que resultam em processos de ensino-aprendizagem e participar ativamente da sociedade, comunidade na qual se encontra inserido realizando trocas recíprocas que propiciam a aquisição do conhecimento historicamente construído. Esta pesquisa teve como foco principal investigar de que de que forma o uso de um sistema de CA que parte de uma perspectiva metodológica sócio-histórica pode promover o desenvolvimento de gestos que propiciam intencionalidade comunicativa em crianças de 03 a 05 anos com autismo. A presente pesquisa cunhou-se como um estudo de caso múltiplo de três sujeitos com autismo, não oralizados, com idades entre 03 e 05 anos de idade. Os resultados a serem apresentados mostram que o sistema SCALA contribuiu como forma constante de mediação integrada ao todo do sujeito. Dessa forma foram surgindo novos gestos, fomos significando cada olhar, apontar, sorrir, morder, etc. Considerando nossos sujeitos como agentes intencionais, deixando-os serem atores nas interações, não somente interagentes passivos, ancorados pelo uso de materiais concretos, que levaram a ligação entre o representacional e o simbólico e, sobretudo nos conduziram a diversos e diferentes momentos de atenção e cenas de atenção conjunta, onde nossos sujeitos participavam de interações triádicas e se incluíam nelas. / Human communication is essential to the occurrence of a social interaction process. It is through it that subjects can express their wishes, desires, needs and establish exchanges that result in teaching-learning processes. And, also, actively participate in society, the community in which they are inserted, conducting reciprocal exchanges that foster the acquisition of historically constructed knowledge. This research main focus was to investigate how the use of a CA system that starts from a sociohistorical methodological perspective can promote the development of gestures that provide communicative intentionality in children 03-05 years old with autism. This research was coined as a multiple case study of three subjects with autism, who do not use oral language, aged between 03 and 05 years of age. The results to be presented show that the SCALA system contributed steadily as integrated mediation into the subject as a whole. Thus new gestures started to arise, we gave meaning to each look, point, laugh, biting, etc. Considering our subjects as intentional agents, leaving them to be actors in interactions, not only passive interacting agents, anchored by the use of concrete materials, which led the connection between the representational and the symbolic and above all led us to several different moments of attention and joint attention scenes where our subjects participated in triadic interactions and included themselves in these interactions.
15

A intencionalidade de comunicação mediada em autismo : um estudo de aquisição de gestos no sistema SCALA

Foscarini, Ana Carla January 2013 (has links)
A comunicação humana é essencial para que ocorra um processo de interação social. É através dela que os sujeitos podem manifestar suas vontades, desejos, necessidades, estabelecer trocas que resultam em processos de ensino-aprendizagem e participar ativamente da sociedade, comunidade na qual se encontra inserido realizando trocas recíprocas que propiciam a aquisição do conhecimento historicamente construído. Esta pesquisa teve como foco principal investigar de que de que forma o uso de um sistema de CA que parte de uma perspectiva metodológica sócio-histórica pode promover o desenvolvimento de gestos que propiciam intencionalidade comunicativa em crianças de 03 a 05 anos com autismo. A presente pesquisa cunhou-se como um estudo de caso múltiplo de três sujeitos com autismo, não oralizados, com idades entre 03 e 05 anos de idade. Os resultados a serem apresentados mostram que o sistema SCALA contribuiu como forma constante de mediação integrada ao todo do sujeito. Dessa forma foram surgindo novos gestos, fomos significando cada olhar, apontar, sorrir, morder, etc. Considerando nossos sujeitos como agentes intencionais, deixando-os serem atores nas interações, não somente interagentes passivos, ancorados pelo uso de materiais concretos, que levaram a ligação entre o representacional e o simbólico e, sobretudo nos conduziram a diversos e diferentes momentos de atenção e cenas de atenção conjunta, onde nossos sujeitos participavam de interações triádicas e se incluíam nelas. / Human communication is essential to the occurrence of a social interaction process. It is through it that subjects can express their wishes, desires, needs and establish exchanges that result in teaching-learning processes. And, also, actively participate in society, the community in which they are inserted, conducting reciprocal exchanges that foster the acquisition of historically constructed knowledge. This research main focus was to investigate how the use of a CA system that starts from a sociohistorical methodological perspective can promote the development of gestures that provide communicative intentionality in children 03-05 years old with autism. This research was coined as a multiple case study of three subjects with autism, who do not use oral language, aged between 03 and 05 years of age. The results to be presented show that the SCALA system contributed steadily as integrated mediation into the subject as a whole. Thus new gestures started to arise, we gave meaning to each look, point, laugh, biting, etc. Considering our subjects as intentional agents, leaving them to be actors in interactions, not only passive interacting agents, anchored by the use of concrete materials, which led the connection between the representational and the symbolic and above all led us to several different moments of attention and joint attention scenes where our subjects participated in triadic interactions and included themselves in these interactions.
16

A intencionalidade de comunicação mediada em autismo : um estudo de aquisição de gestos no sistema SCALA

Foscarini, Ana Carla January 2013 (has links)
A comunicação humana é essencial para que ocorra um processo de interação social. É através dela que os sujeitos podem manifestar suas vontades, desejos, necessidades, estabelecer trocas que resultam em processos de ensino-aprendizagem e participar ativamente da sociedade, comunidade na qual se encontra inserido realizando trocas recíprocas que propiciam a aquisição do conhecimento historicamente construído. Esta pesquisa teve como foco principal investigar de que de que forma o uso de um sistema de CA que parte de uma perspectiva metodológica sócio-histórica pode promover o desenvolvimento de gestos que propiciam intencionalidade comunicativa em crianças de 03 a 05 anos com autismo. A presente pesquisa cunhou-se como um estudo de caso múltiplo de três sujeitos com autismo, não oralizados, com idades entre 03 e 05 anos de idade. Os resultados a serem apresentados mostram que o sistema SCALA contribuiu como forma constante de mediação integrada ao todo do sujeito. Dessa forma foram surgindo novos gestos, fomos significando cada olhar, apontar, sorrir, morder, etc. Considerando nossos sujeitos como agentes intencionais, deixando-os serem atores nas interações, não somente interagentes passivos, ancorados pelo uso de materiais concretos, que levaram a ligação entre o representacional e o simbólico e, sobretudo nos conduziram a diversos e diferentes momentos de atenção e cenas de atenção conjunta, onde nossos sujeitos participavam de interações triádicas e se incluíam nelas. / Human communication is essential to the occurrence of a social interaction process. It is through it that subjects can express their wishes, desires, needs and establish exchanges that result in teaching-learning processes. And, also, actively participate in society, the community in which they are inserted, conducting reciprocal exchanges that foster the acquisition of historically constructed knowledge. This research main focus was to investigate how the use of a CA system that starts from a sociohistorical methodological perspective can promote the development of gestures that provide communicative intentionality in children 03-05 years old with autism. This research was coined as a multiple case study of three subjects with autism, who do not use oral language, aged between 03 and 05 years of age. The results to be presented show that the SCALA system contributed steadily as integrated mediation into the subject as a whole. Thus new gestures started to arise, we gave meaning to each look, point, laugh, biting, etc. Considering our subjects as intentional agents, leaving them to be actors in interactions, not only passive interacting agents, anchored by the use of concrete materials, which led the connection between the representational and the symbolic and above all led us to several different moments of attention and joint attention scenes where our subjects participated in triadic interactions and included themselves in these interactions.
17

Análise psicométrica do Inventário Multidimensional do Estilo de Dirigir (MDSI - Multidimensional Driving Style Inventory) / Psychometric analyses of Multidimensional Driving Style Inventory

Luiz Carlos de Paiva e Silva 04 June 2004 (has links)
Trata-se de uma investigação de desenvolvimento metodológico cujo objetivo foram adaptação, validação e verificar a fidedignidade do Inventário Multidimensional do Estilo de Dirigir (MDSI – Multidimensional Driving Style Inventory) para a língua portuguesa, aplicada para condutores que possuem Carteira Nacional de Habilitação ou Permissão para Dirigir. No instrumento foram realizados os procedimentos de tradução - versão e retroversão; analise do instrumento de acordo com os critérios comportamental, de objetividade, de clareza, de simplicidade, de relevância, de precisão, de variabilidade, de modalidade, bem como critérios de amplitude e de equilíbrio; adequação do construto; análise semântica por parte dos alunos-avaliadores; definição e delimitação de amostras; escolha do método de aplicação do instrumento; e aplicação do MDSI. Através do programa de estatística “SPSS” os 44 itens definiram os 08 fatores: estressado, agressivo, negligente, perigoso, senso-emocional, preventivo, relaxante e desatento. A análise dos 206 questionários aplicados nos motoristas da cidade de Ribeirão Preto e região, utilizando uma escala Likert, variando de nunca até sempre, concluiu que quando os condutores apresentarem características de serem negligentes, percebe-se que há maior possibilidade de ser um motorista relaxante e menor possibilidade de ser um motorista preventivo; conforme aumenta o índice do motorista perigoso, maiores serão os índices do senso-emocional e desatento e menor o índice do fator preventivo; o motorista preventivo está negativamente associado ao fator desatento; os motoristas homens têm comprovadamente índices mais elevados nos estilo relaxante; as mulheres apresentam maiores índices no estilo desatento; na variável idade, quando mais alta a idade do sujeito maior será o seu índice do estilo preventivo e quando menor for a idade maiores serão os índices dos fatores perigoso, senso-emocional e desatento. Foi realizada a análise de fidedignidade de cada item, onde 77,27% não apresentaram variação significativa; na análise da fidedignidade de cada sujeito: apresentou um alto índice de correlação de 0,6198. O teste MDSI deve ser aplicado em todos os motoristas que irão renovar a Carteira Nacional de Habilitação ou que tiveram sua Carteira Nacional de Habilitação suspensa ou cassada, pois servirá de aconselhamento, sem caráter reprovativo, apenas informativo. / This is about an inquiry of methodological development whose objective was adaptation, validation and to verify the reliability of the Multidimensional Driving Style Inventory (MDSI - Multidimensional Driving Style Inventory) for the Portuguese language, applied in conductors who possess National Wallet of Qualification or Permission To Drive. In the instrument had been carried through the translation procedures – in both directions; analyzes of the instrument in accordance with the criteria of behavior, of objectivity, clarity, simplicity, relevance, precision, variability, modality, as well as criteria of amplitude and balance; adequacy of construct; analysis semantics on the part of the pupil-appraisers; definition and delimitation of samples; choice of the method of application of the instrument; and application of the MDSI. Through the program of the 44 statistics \"SPSS\" item had defined the 08 factors: stressed, aggressive, negligent, dangerous, sense-emotional, preventive, relaxing and neglect. The analysis of the 206 questionnaires applies in drivers of Ribeirão Preto city, using a Likert scale, varied of never until always, concluded that when the conductors to present characteristics to be negligent, perceived that he has greater possibility of being a relaxing driver and lesser possibility of being a preventive driver; as it increases the index of the dangerous driver, bigger will be the indices of sense-emotional and neglect and lesser the index of the preventive factor; the preventive driver is negatively associated with the negligent factor; the men drivers confirmedly have elevated indices in the relaxing style; the women present greater indices in the negligent style; in the variable age, when higher the age of the citizen biggest will be its index of the preventive style and when lesser it will be the age biggest will be the indices of the factors dangerous, sense-emotional and neglect. The analysis of reliability of each item was carried through, where 77.27% had not presented significant variation; in the analysis of the reliability of each citizen: it presented a high index of correlation of 0,6198. Test MDSI must be applied in all the drivers who will go to renew the Wallet National of Qualification or that they had its National Wallet Qualification suspended or annulled, therefore will serve of advising , without reprobation character, only informative.
18

Frameworky pro jednotkové testování v jazyce Scala / Frameworks for unit testing in Scala language

Kolmistr, Tomáš January 2015 (has links)
This thesis deals with frameworks for unit testing in Scala programming language. In total, there are presented five frameworks in the thesis, two of which are designed for unit testing with mock objekt and three without mock objects. The first, theoretical part aims to introduce concepts regarding testing and Scala programming language. In another part of the thesis there are specified criteria for selecting frameworks, including the criteria for subsequent comparison. In the practical part there are written unit tests according to test scenarios and evaluated the comparison of frameworks.
19

Lightweight Software Isolation via Flow-Sensitive Capabilities in Scala / Lättviktsisolering för mjukvara via flödeskänsliga förmågor i Scala

Reimers, Erik January 2017 (has links)
Aliasing is a potential source of problems in software development and can, for example,lead to data races in concurrent programs. More recent programming languages includealiasing control in order to catch more errors at compile time. However, this does notexist for most widely-used languages.LaCasa introduces aliasing control to Scala. LaCasa is a type system and program-ming model that provides lightweight unique and affine (consumable) object referencesin Scala. The unique references provided by LaCasa enable messages to be passed effi-ciently by reference. They also guarantee a deep-copy semantic which makes it possible tomore easily port a concurrent program from running on a single machine to being dis-tributed and running on a large cluster of machines.One aspect that makes LaCasa inconvenient to use is the fact that code needs to bewritten in an explicit continuation-passing style (CPS), different to how code is usuallywritten, which makes programs harder to write, understand and maintain.This project presents a flow-sensitive version of LaCasa which avoids the use of con-tinuations. Flow-sensitivity is achieved by adding an extra compiler phase that performsa static analysis, enforcing LaCasa’s type-checking rules. The flow-sensitive version wasevaluated by measuring the code complexity compared to the original flow-insensitiveLaCasa. A few case studies were performed, as part of the evaluation, to show how flow-sensitive LaCasa can be used to extend LaCasa into other fields of application.The evaluation showed that a flow-sensitive LaCasa can reduce the complexity of ap-plications using LaCasa. It allows programmers to write code in a more usual way whichmakes LaCasa easier to use. / Aliasing är en potentiell källa till problem inom mjukvaruutveckling och can till exempelleda till data races i samtidiga program. Nyare programmeringsspråk inkluderar aliasing-kontroller för att kunna fånga fel vid kompilering. Sådana kontroller existerar inte för deflesta utbredda språken.LaCasa introducerar aliasing-kontroll till Scala. LaCasa är ett typsystem och program-meringsmodell som tillhandahåller unika och affina (förbrukningsbara) objektreferenser iScala. De unika references som tillhandahålls av LaCasa gör det möjligt att effektivt skic-ka meddelanden via referenser. De garanterar också en djup-kopierings-semantik som gördet möjligt att mer enkelt konvertera ett samtidigt program från att köras på en endamaskin till att distribueras och köras på ett stort maskinkluster.En aspekt som gör LaCasa obekvämt att använda är att kod måste skrivas i en ex-plicit continuation-passing-stil (CPS), olik det vanliga sättet att skriva kod, som gör pro-gram svårare att skriva, förstå och underhålla.Det här projektet presenterar en flödeskänslig version av LaCasa som unviker an-vändningen av continuations. Flödeskänslighet uppnås genom att lägga till en extra kom-pileringsfas som utför en statisk analys som upprätthåller LaCasas typ-regler. Den flö-deskänsliga versionen utvärderades genom att mäta kodkomplexitet jämfört med denursprungliga flödesokänsliga LaCasa. Några fallstudier utfördes, som en del av utvär-deringen, för att visa hur flödekänsliga LaCasa kan användas för att utöka LaCasa tillandra användningsområden.Utvärdering visade att ett flödeskänsligt LaCasa kan reducera komplexiteten hos ap-plikationer som använder LaCasa. Det tillåter programmerare att skriva kod på ett mervanligt sätt som gör LaCasa enklare att använda.
20

Record Types in Scala: Design and Evaluation / Record-typer för Scala: Design och utvärdering

Karlsson, Olof January 2017 (has links)
A record type is a data type consisting of a collection of named fields that combines the flexibility of associative arrays in some dynamically typed languages with the safety guarantees and possible runtime performance of static typing. The structural typing of records is especially suitable for handling semi-structured data such as JSON and XML making efficient records an attractive choice for high-performance computing and large- scale data analytics. It has proven difficult to implement record types in Scala however. Existing libraries suffer from either severe compile-time penalties, large runtime over- head, or other restrictions in usability such as poor IDE integration and hard-to-compre- hend error-messages. This thesis provides a systematic description and comparison of both existing and possible new approaches to records in Scala and Dotty, a new compiler for the Scala 3 language. A novel benchmarking suite is presented, built on top of the Java Microbench- mark Harness (JMH), for measuring runtime and compile-time performance of records running on the Java Virtual Machine and currently supporting Scala, Dotty, Java and Whiteoak. To achieve field access times comparable to nominally typed classes, it is conjectured that width subtyping has to be restricted to explicit coercion and a compilation scheme for such record types is sketched. For unordered record types with width and depth sub- typing however, hashmap-based approaches are found to have the most attractive run- time performance characteristics. In particular, Dotty provides native support for such an implementation using structural refinement types that might strike a good balance be- tween flexibility and runtime performance for records in the future. / En record-typ är en datatyp som består av en en uppsättning namngivna fält som kombinerarflexibiliteten hos associativa arrayer i vissa dynamiskt typade programmeringsspråkmed säkerhetsgarantierna och den potentiella exekveringshastigheten som fås av statisk typning. Records strukturella typning är särskilt väl lämpad för att hantera semistruktureraddata såsom JSON och XML vilket gör beräkningseffektiva records ett attraktivt val för högprestandaberäkningar och storskalig dataanalys. Att implementera records i programmeringsspråket Scala har dock visat sig svårt. Existerande bibliotek lider antingenav långa kompileringstider, långsam exekveringshastighet, eller andra problem med användbarheten såsom dålig integration med olika utvecklingsmiljöer och svårförståddafelmeddelanden. Den här uppsatsen ger en systematisk beskrivning och jämförelse av både existerandeoch nya lösningar för records i Scala och Dotty, en ny kompilator för Scala 3. Ett nyttbenchmarkingverktyg för att mäta exekveringshastigheten och kompileringstiden av recordssom körs på den virtuella Java maskinen presenteras. Benchmarkingverktyget ärbyggt på Java Microbenchmark Harness (JMH) och stöder i nuläget Scala, Dotty, Java ochWhiteoak. För att åstadkomma körtider som är jämförbara med nominellt typade klasser antasatt subtypning på bredden måste begränsas till explicita konverteringsanrop och enskiss till en kompileringsstrategi för sådana records presenteras.  För record-typer med ickeordnade fält och subtypning på bredden och djupet visar sig istället records baseradepå hashtabeller ha de mest attraktiva exekveringstiderna. Dotty tillhandahåller stöd fören sådan implementation med strukturella förfiningstyper som kan komma att träffa enbra balans mellan flexibilitet och exekveringshastighet för records i framtiden.

Page generated in 0.1802 seconds