The Resource Can static type systems speed up programming? An experimental evaluation of static and dynamic type systems

Can static type systems speed up programming? An experimental evaluation of static and dynamic type systems

Label
Can static type systems speed up programming? An experimental evaluation of static and dynamic type systems
Title
Can static type systems speed up programming? An experimental evaluation of static and dynamic type systems
Creator
Contributor
Subject
Genre
Language
eng
Summary
  • 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 few scientific studies have tried to evaluate the two type systems' usefulness in certain scenarios. There are arguments for both systems. For example, static type systems are said to aid the programmer in the prevention of type errors, and further, they provide documentation help for, there is an explicit need to annotate variables and methods with their respective types. This book describes a controlled experiment that was conducted to shed some light into the presented matter. Which of the type systems can live up to its promises? Is one of these better suited for a particular task? And which type system is the most supportive in a problem solving? The main hypothesis claims that a static type system is faster in a problem solving in use of an undocumented API. Thus, in the study, the participants need to solve different programming tasks in an undocumented API environment with the help of the static type system (Java), and the dynamic type system (Groovy). The author starts with a short introduction to the topic, the experimentation, and the motivation. Then, he describes a list of related works, and proceeds to the description of the experiment, its evaluation, and finally, the discussion of the results. This book should prove interesting reading for anyone who is interested in the mechanics that drive programmer productivity and performance that depend on the kind of technology used, as well as for anyone who might be interested in empirical research in software engineering, in general. Biographische Informationen Sebastian Kleinschmager is a software engineer
  • from Germany, and has a special interest in creating a scientific foundation for his field. During his studies of applied computer science (Bachelor's degree), and business information systems (Master), his research focused on the conduction of empirical experiments in order to evaluate programming techniques. During his day-to-day job, he specializes in software development where he uses the .NET Framework and the newest web technologies, and therefore, has the chance to put theory into practice
Cataloging source
MiAaPQ
http://library.link/vocab/creatorName
Kleinschmager, Sebastian
LC call number
QA76.6 -- .K54 2013eb
Literary form
non fiction
Nature of contents
dictionaries
http://library.link/vocab/relatedWorkOrContributorName
ProQuest (Firm)
http://library.link/vocab/subjectName
  • Application software
  • Computer programming
Label
Can static type systems speed up programming? An experimental evaluation of static and dynamic type systems
Link
http://ebookcentral.proquest.com/lib/multco/detail.action?docID=1324010
Instantiates
Publication
Copyright
Carrier category
online resource
Carrier category code
cr
Carrier MARC source
rdacarrier
Color
multicolored
Content category
text
Content type code
txt
Content type MARC source
rdacontent
Contents
  • 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 Engineering -- 2.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 Subjects -- 4.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 Error
  • 4.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 ParticipantGroups -- 6.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 -- 7.2 Result Summary -- 7.3 Discussion -- 8. Conclusion -- References -- A. Appendix -- A.1 Statistical Methods and Tests -- A.1.1. Box plots (box-whisker-diagrams) -- A.1.2. Kolmogorov-Smirnov and Shapiro-Wilk -- A.1.3. Independent and Dependent t-test -- A.1.4. Wilcoxon Signed Rank Test -- A.1.5. Mann-Whitney-U and Kolmogorov-Smirnov Z test -- A.1.6. Regression Analysis -- A.2 Supplemental Data -- A.2.1. Participant Results Tasks 1 to 9 (Java) -- A.2.2. Participant Results Tasks 1 to 9 (Groovy) -- A.2.3. Results of the Tests for Normal Distribution on the results split by the two Groups -- A.2.4. Results of Tests for Normal Distribution for the Participant Performance Analyses
  • A.2.5. Participant Performance Analysis based on the complete data -- A.2.5.1. Outperformers -- A.2.5.2. Underperformers -- A.2.6. Demographic of participants and Questionnaire Results -- A.3 An Example of a problematic Experiment Design and Analysis
Control code
EBC1324010
Dimensions
unknown
Edition
1st ed.
Extent
1 online resource (114 pages)
Form of item
online
Isbn
9783954895403
Media category
computer
Media MARC source
rdamedia
Media type code
c
Note
Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2017. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.
Sound
unknown sound
Specific material designation
remote
System control number
  • (MiAaPQ)EBC1324010
  • (Au-PeEL)EBL1324010
  • (CaPaEBR)ebr10735066
  • (OCoLC)854977184
Label
Can static type systems speed up programming? An experimental evaluation of static and dynamic type systems
Link
http://ebookcentral.proquest.com/lib/multco/detail.action?docID=1324010
Publication
Copyright
Carrier category
online resource
Carrier category code
cr
Carrier MARC source
rdacarrier
Color
multicolored
Content category
text
Content type code
txt
Content type MARC source
rdacontent
Contents
  • 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 Engineering -- 2.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 Subjects -- 4.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 Error
  • 4.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 ParticipantGroups -- 6.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 -- 7.2 Result Summary -- 7.3 Discussion -- 8. Conclusion -- References -- A. Appendix -- A.1 Statistical Methods and Tests -- A.1.1. Box plots (box-whisker-diagrams) -- A.1.2. Kolmogorov-Smirnov and Shapiro-Wilk -- A.1.3. Independent and Dependent t-test -- A.1.4. Wilcoxon Signed Rank Test -- A.1.5. Mann-Whitney-U and Kolmogorov-Smirnov Z test -- A.1.6. Regression Analysis -- A.2 Supplemental Data -- A.2.1. Participant Results Tasks 1 to 9 (Java) -- A.2.2. Participant Results Tasks 1 to 9 (Groovy) -- A.2.3. Results of the Tests for Normal Distribution on the results split by the two Groups -- A.2.4. Results of Tests for Normal Distribution for the Participant Performance Analyses
  • A.2.5. Participant Performance Analysis based on the complete data -- A.2.5.1. Outperformers -- A.2.5.2. Underperformers -- A.2.6. Demographic of participants and Questionnaire Results -- A.3 An Example of a problematic Experiment Design and Analysis
Control code
EBC1324010
Dimensions
unknown
Edition
1st ed.
Extent
1 online resource (114 pages)
Form of item
online
Isbn
9783954895403
Media category
computer
Media MARC source
rdamedia
Media type code
c
Note
Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2017. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.
Sound
unknown sound
Specific material designation
remote
System control number
  • (MiAaPQ)EBC1324010
  • (Au-PeEL)EBL1324010
  • (CaPaEBR)ebr10735066
  • (OCoLC)854977184

Library Locations

  • Albina LibraryBorrow it
    3605 NE 15th Avenue, Portland, OR, 97212, US
    45.549039 -122.650525
  • Belmont LibraryBorrow it
    1038 SE César E. Chávez Boulevard, Portland, OR, 97214, US
    45.515217 -122.622669
  • Capitol Hill LibraryBorrow it
    10723 SW Capitol Highway, Portland, OR, 97219, US
    45.448003 -122.725422
  • Central LibraryBorrow it
    801 SW 10th Avenue, Portland, OR, 97205, US
    45.519098 -122.682899
  • Fairview-Columbia LibraryBorrow it
    1520 NE Village Street, Fairview, OR, 97024, US
    45.532283 -122.439336
  • Gregory Heights LibraryBorrow it
    7921 NE Sandy Boulevard, Portland, OR, 97213, US
    45.551662 -122.581264
  • Gresham LibraryBorrow it
    385 NW Miller Avenue, Gresham, OR, 97030, US
    45.500070 -122.433041
  • Hillsdale LibraryBorrow it
    1525 SW Sunset Boulevard, Portland, OR, 97239, US
    45.479852 -122.694013
  • Holgate LibraryBorrow it
    7905 SE Holgate Boulevard, Portland, OR, 97206, US
    45.490548 -122.582218
  • Hollywood LibraryBorrow it
    4040 NE Tillamook Street, Portland, OR, 97212, US
    45.537544 -122.621237
  • Isom BuildingBorrow it
    205 NE Russell Street , Portland, OR, 97212, US
    45.541222 -122.663268
  • Kenton LibraryBorrow it
    8226 N Denver Avenue, Portland, OR, 97217, US
    45.582857 -122.686379
  • Midland LibraryBorrow it
    805 SE 122nd Avenue, Portland, OR, 97233, US
    45.516683 -122.538488
  • North Portland LibraryBorrow it
    512 N Killingsworth Street, Portland, OR, 97217, US
    45.562454 -122.671507
  • Northwest LibraryBorrow it
    2300 NW Thurman Street, Portland, OR, 97210, US
    45.535316 -122.699254
  • Rockwood LibraryBorrow it
    17917 SE Stark Street, Portland, OR, 97233, US
    45.519541 -122.479013
  • Sellwood-Moreland LibraryBorrow it
    7860 SE 13th Avenue, Portland, OR, 97202, US
    45.467703 -122.652639
  • St. Johns LibraryBorrow it
    7510 N Charleston Avenue, Portland, OR, 97203, US
    45.590046 -122.751043
  • The Title Wave Used BookstoreBorrow it
    216 NE Knott Street, Portland, OR, 97212, US
    45.541647 -122.663075
  • Troutdale LibraryBorrow it
    2451 SW Cherry Park Road, Troutdale, OR, 97060, US
    45.529595 -122.409662
  • Woodstock LibraryBorrow it
    6008 SE 49th Avenue, Portland, OR, 97206, US
    45.478961 -122.612079
Processing Feedback ...