Can static type systems speed up programming? : an experimental evaluation of static and dynamic type systems /
Hauptbeschreibung Programming languages that use the object-oriented approach have been around for quite a while now. Most of them use either a static or a dynamic type system. However, both types are very common in the industry. But, in spite of their common use in science and practice, only very f...
Clasificación: | Libro Electrónico |
---|---|
Autor principal: | |
Formato: | Electrónico eBook |
Idioma: | Inglés |
Publicado: |
Hamburg :
Anchor Academic Pub.,
2013.
|
Temas: | |
Acceso en línea: | Texto completo |
Tabla de Contenidos:
- Can static type systems speed up programming? An experimental evaluation of static and dynamic type systems; Abstract; Zusammenfassung (German Abstract); Table of Contents; Directory of Figures; Directory of Tables; Directory of Listings; 1. Introduction; 2. Motivation & Background; 2.1 Motivation; 2.2 Maintenance and Debugging; 2.2.1 Maintenance in a Nutshell; 2.2.2 Debugging in a Nutshell; 2.3 Documentation and APIs; 2.3.1 Documentation of Software Systems; 2.3.2 APIs and Application of their Design Principles in General Programming; 2.4 Type Systems.
- 2.5 Empirical Research in Software Engineering2.5.1 On Empirical Research; 2.5.2 Controlled Experiments; 2.5.3 Current State of Empirical Research in Software Engineering; 3. Related Work; 3.1 Gannon (1977); 3.2 Prechelt and Tichy (1998); 3.3 Daly, Sazawal and Foster (2009); 3.4 Hanenberg (2010); 3.5 Steinberg, Mayer, Stuchlik and Hanenberg
- A running Experiment series; 3.5.1 Steinberg (2011); 3.5.2 Mayer (2011); 3.5.3 Stuchlik and Hanenberg (2011); 4. The Experiment; 4.1 The Research Question; 4.2 Experiment Overview; 4.2.1 Initial Considerations.
- 4.2.2 Further Considerations: Studies on Using Students as Subjects4.2.3 Design of the Experiment; 4.3 Questionnaire; 4.4 Hard- and Software Environment; 4.4.1 Environment; 4.4.2 Programming Languages; 4.4.2.1 Java; 4.4.2.2 Groovy; 4.5 Workspace Applications and Tasks; 4.5.1 The Java Application
- A Labyrinth Game; 4.5.2 The Groovy Application
- A simple Mail Viewer; 4.5.3 Important Changes made to both Parts; 4.5.4 The Tasks; 4.5.4.1 The Task Types; 4.5.4.2 Tasks 1 and 10
- 2 Types to identify; 4.5.4.3 Tasks 2 and 11
- 4 Types to identify; 4.5.4.4 Tasks 4 and 13
- Semantic Error.
- 4.5.4.5 Tasks 5 and 14
- Semantic Error4.5.4.6 Tasks 6 and 15
- 8 Types to identify; 4.5.4.7 Tasks 7 and 16
- Stack size 2 and branch size 3; 4.5.4.8 Tasks 8 and 17
- 12 types to identify; 4.5.4.9 Tasks 9 and 18
- Stack size 2 and branch size 5; 4.5.4.10 Summary of Variables and Mapping of Tasks to Hypotheses; 4.6 Experiment Implementation; 5. Threats to Validity; 5.1 Internal Validity; 5.2 External Validity; 6. Analysis and Results; 6.1 General Descriptive Statistics; 6.2 Statistical Tests and Analysis; 6.2.1 Within-Subject Analysis on the complete data.
- 6.2.2 Analysis for residual effects between the two ParticipantGroups6.2.3 Within-Subject Analysis on the two Participant Groups; 6.2.3.1 Participants that started with Groovy; 6.2.3.2 Participants that started with Java; 6.2.4 Exploratory Analysis of the Results based on Participants' Performance; 6.2.4.1 Participants that started with Groovy; 6.2.4.2 Participants that started with Java; 6.2.5 Hypotheses and Task based Analysis; 6.2.5.1 Tasks 1, 2, 3, 6 and 8; 6.2.5.2 Hypothesis 2-1 and Tasks 7 and 9; 6.2.5.3 Hypothesis 2-2 and Tasks 4 and 5; 7. Summary and Discussion; 7.1 Final Remarks.