The Extent of Empirical Evidence That Could Inform Evidence-Based Design of Programming Languages

Total Page:16

File Type:pdf, Size:1020Kb

The Extent of Empirical Evidence That Could Inform Evidence-Based Design of Programming Languages JYVÄSKYLÄ LICENTIATE THESES IN COMPUTING 18 Antti-Juhani Kaijanaho The Extent of Empirical Evidence that Could Inform Evidence-Based Design of Programming Languages A Systematic Mapping Study JYVÄSKYLÄ LICENTIATE THESES IN COMPUTING 18 Antti-Juhani Kaijanaho The Extent of Empirical Evidence that Could Inform Evidence-Based Design of Programming Languages A Systematic Mapping Study UNIVERSITY OF JYVÄSKYLÄ JYVÄSKYLÄ 2014 The Extent of Empirical Evidence that Could Inform Evidence-Based Design of Programming Languages A Systematic Mapping Study JYVÄSKYLÄ LICENTIATE THESES IN COMPUTING 18 Antti-Juhani Kaijanaho The Extent of Empirical Evidence that Could Inform Evidence-Based Design of Programming Languages A Systematic Mapping Study UNIVERSITY OF JYVÄSKYLÄ JYVÄSKYLÄ 2014 Editor Timo Männikkö Department of Mathematical Information Technology, University of Jyväskylä URN:ISBN:978-951-39-5791-9 ISBN 978-951-39-5791-9 (PDF) ISBN 978-951-39-5790-2 (nid.) ISSN 1795-9713 Copyright © 2014, by University of Jyväskylä Jyväskylä University Printing House, Jyväskylä 2014 GLENDOWER. I can call spirits from the vasty deep. HOTSPUR. Why, so can I, or so can any man; But will they come when you do call for them? — William Shakespeare’s Henry IV Part 1 (III.1) ABSTRACT Kaijanaho, Antti-Juhani The extent of empirical evidence that could inform evidence-based design of pro- gramming languages. A systematic mapping study. Jyväskylä: University of Jyväskylä, 2014, 243 p. (Jyväskylä Licentiate Theses in Computing, ISSN 1795-9713; 18) ISBN 978-951-39-5790-2 (nid.) ISBN 978-951-39-5791-9 (PDF) Finnish summary Background: Programming language design is not usually informed by empirical studies. In other fields similar problems have inspired an evidence-based paradigm of practice. Central to it are secondary studies summarizing and consolidat- ing the research literature. Aims: This systematic mapping study looks for em- pirical research that could inform evidence-based design of programming lan- guages. Method: Manual and keyword-based searches were performed, as was a single round of snowballing. There were 2056 potentially relevant publications, of which 180 were selected for inclusion, because they reported empirical ev- idence on the efficacy of potential design decisions and were published on or before 2012. A thematic synthesis was created. Results: Included studies span four decades, but activity has been sparse until the last five years or so. The form of conditional statements and loops, as well as the choice between static and dynamic typing have all been studied empirically for efficacy in at least five studies each. Error proneness, programming comprehension, and human effort are the most common forms of efficacy studied. Experimenting with programmer participants is the most popular method. Conclusions: There clearly are language design decisions for which empirical evidence regarding efficacy exists; they may be of some use to language designers, and several of them may be ripe for sys- tematic reviewing. There is concern that the lack of interest generated by studies in this topic area until the recent surge of activity may indicate serious issues in their research approach. Keywords: programming languages, programming language design, evidence- based paradigm, efficacy, research methods, systematic mapping study, thematic synthesis Author’s address Antti-Juhani Kaijanaho Department of Mathematical Information Technology University of Jyväskylä, Finland PO Box 35 (Agora), FI-40014 University of Jyväskylä [email protected] Supervisors Professor Tommi Kärkkäinen Department of Mathematical Information Technology University of Jyväskylä, Finland Doctor Vesa Lappalainen Department of Mathematical Information Technology University of Jyväskylä, Finland Doctor Ville Tirronen Department of Mathematical Information Technology University of Jyväskylä, Finland Examiners Doctor Stefan Hanenberg University of Duisburg-Essen, Germany Professor Stein Krogdahl University of Oslo, Norway ACKNOWLEDGEMENTS I would like to thank my supervisors, Professor Tommi Kärkkäinen, Doctor Vesa Lappalainen, and Doctor Ville Tirronen, for encouragement, discussions and feed- back over the years. Doctor Stefan Hanenberg of the University of Duisburg-Essen and Profes- sor Stein Krogdahl of the University of Oslo examined this thesis; their comments reflect fairly, in my opinion, both the strengths and the weaknesses of this thesis, and I expect to take their comments into account when I extend the research re- ported here. My thanks to both. It should be noted that this thesis is published with only minor editorial changes unrelated to the examiners’ comments. The Faculty of Information Technology and the Department of Mathemati- cal Information Technology have generously allowed me to follow my own me- andering path in my postgraduate studies alongside my teaching duties. It has taken about a decade to get to this point. The current Dean, Professor Pekka Neit- taanmäki, and the current Head of Department, Professor Tuomo Rossi, have par- ticularly offered encouragement, challenges and guidance during this process. Professor Emeritus Markku Sakkinen, Doctor Hannakaisa Isomäki, Doc- tor Ville Isomöttönen, Doctor Sami Kollanus, and Mr. Antti-Jussi Lakanen have helped me with discussions, encouragement and critique. Thanks are due to all my other colleagues, as well. In April 2011, I attended (without a paper to present) the 15th International Conference on Evaluation and Assessment in Software Engineering (EASE) at Durham University, England. I enjoyed the presentations and informal discus- sions among the participants very much; they also gave me good ideas and in- spiration. The three anonymous reviewers of the EASE 2012 conference gave me use- ful feedback on an early manuscript detailing the progress of this study. The interlibrary loan service of the university library responded efficiently to every one of my interlibrary loan requests; I had to make a lot of them during this mapping study. Without them, this thesis could not be what it is now. My mother, Ms. Maija Tuomaala, with background in philosophy and in education research, gave me useful feedback on many drafts of this thesis and other related manuscripts. I hereby also thank all my family and friends for encouragement, support and understanding. NOTE ON ENGLISH USAGE This thesis, as is customary, has a single author. I find it awkward to use the first person plural (“we”) about work I have done alone, even though it is somewhat conventional. The more usual method of deliberately obscuring agency by using short passive constructions would be, in many cases, inappropriate (while lin- guistically quite legitimate, see Pullum 2014), as in a systematic secondary study clear indication of who did what is an important part of the audit trail. Thus, like Kitchenham (2010) in her mapping study, I use the singular first person in mine. In situations where I need to refer to a person whose sex is unknown or immaterial, I will generally use the singular “they” (see e. g. Baranowski 2002; Paterson 2011). Of the many less than ideal options available, it is, in my opinion, the best. LIST OF FIGURES FIGURE 1 A high-level representation of the mapping process. This dia- gram omits many details. ...................................................... 55 FIGURE 2 Flow diagram of the study selection process............................ 65 FIGURE 3 Bubble plot of included publications by publication forum and publication year.................................................................... 75 FIGURE 4 Bubble plot of included core publications by publication fo- rum and publication year ...................................................... 78 FIGURE 5 Bubble plot of core sub-studies, excluding experiments, cate- gorized by the facets of efficacy used and the primary research methods used. ...................................................................... 84 FIGURE 6 The number of included publications per year......................... 86 FIGURE 7 The number of included primary studies per publication year .. 87 FIGURE 8 The number of included core studies per publication year ........ 87 FIGURE 9 The number of randomized controlled experiments in the core per publication year .............................................................. 87 FIGURE 10 The number of core studies of conditionals per year................. 88 FIGURE 11 The number of core studies of loops per year........................... 89 FIGURE 12 The slr-tools select form.................................................. 165 LIST OF TABLES TABLE 1 Summary of selection process ................................................ 57 TABLE 2 Summary of manual search.................................................... 58 TABLE 3 Summary of automatic search ................................................ 60 TABLE 4 The overall and exclusive contribution and overlap of the var- ious search modalities ........................................................... 62 TABLE 5 The quasi-gold standard and quasi-sensitivity for manual searches 63 TABLE 6 The quasi-sensitivity and specificity of automatic searches ....... 64 TABLE 7 Pairwise Cohen kappas in the second selection validation ex- ercise. .................................................................................. 68 TABLE 8 Publication forums containing at least two in publications........ 74 TABLE 9 Included studies ................................................................... 76 TABLE 10 Design
Recommended publications
  • Proof-Carrying Authentication∗
    Proof-Carrying Authentication∗ Andrew W. Appel and Edward W. Felten Secure Internet Programming Laboratory Department of Computer Science Princeton University Princeton, NJ 08544 USA August 9, 1999 Abstract Statements in these frameworks are represented as data structures that are often digitally signed We have designed and implemented a general to ensure their integrity. and powerful distributed authentication frame- work based on higher-order logic. Authenti- Several authentication frameworks exist; we cation frameworks — including Taos, SPKI, mention a few here as examples. The Taos SDSI, and X.509 — have been explained using operating system provided support for secure logic. We show that by starting with the logic, remote procedure call and data structures to we can implement these frameworks, all in the represent authority and identity [6]. X.509 [15] same concise and efficient system. Because our is a widely-used standard for expressing and us- logic has no decision procedure — although ing digital certificates. SPKI [4] and SDSI [14] proof checking is simple — users of the frame- (since merged under the joint name SPKI) work must submit proofs with their requests. were reactions to the perceived complexity of X.509; in both cases the ‘S’ stands for ‘simple.’ 1 Introduction PolicyMaker [3] is a language for expressing se- curity policies; it can be applied to distributed Distributed authentication frameworks allow security policies. Kerberos [12], unlike the other sharing of access to resources across adminis- frameworks, uses symmetric-key encryption to trative boundaries in a distributed system. The authenticate users. Each framework has a main abstractions they support are name-to- differerent semantics and offers a different kind key bindings, access control, and delegation.
    [Show full text]
  • Och Lönsamma Öppna Kommunikationssystem
    fcldüh OSI och lönsamma öppna kommunikationssystem Dokumentation av ett seminarium sammanställd av Victor S Epstein med Gunnar Sundblad Tddüh Telestyrelsen har inrättat ett anslag med syfte att medverka tiU snabb och lättillgänglig dokumentation beträffande användningen av teleanknutna informationssystem. Detta anslag förvaltas av TELDOK och skall bidraga tiU: Dokumentation vid tidigast möjliga tidpunkt av praktiska tillämpningar av teleanknutna informationssystem i arbetslivet Publicering och spridning, i förekommande fall översättning, av annars svåråtkomliga erfarenheter av teleanknutna informationssystem i arbetslivet, samt kompletteringar avsedda att öka användningsvärdet för svenska förhållanden och svenska läsare Studieresor och konferenser i direkt anknytning till arbetet med att dokumentera och sprida information beträffande praktiska tillämpningar av teleanknutna informationssystem i arbetslivet Via TELDOK är en av de skriftserier som utges av TELDOK. Via TELDOK presenterar obearbetade tillfallighetsrapporter från seminarier, studieresor osv. Hittills har utgetts: Via TELDOK 1. OSI och lönsamma öppna kommunikationssystem. Maj 1987. Av andra publikationer från TELDOK som nyligen utkommit kan nämnas: TELDOK Kapport 24. Meddelanden att använda. November 1986. TELDOK Kapport 25. Ny teleteknik i Sverige - användning i dag. November 1986. TELDOK Kapport 26. Datorstödda kunskapssystem i framtidens kontor. December 1986. TELDOK Kapport27. Inflytande och DAtorbaserade Kommunikationssystem. April 1987. TELDOK Kapport 28. Ny informationsteknologi i Japan. April 1987. TELDOK Referens dokument G. Management, usage and effects of Office Automation. April 1987. TELDOK-info 4. Att söka i databaser. Mars 1987. Publikationema kan beställas gratis dygnet runt från TeleSvar, 08-23 00 00 (med angivande av rapportnummer). Den som i fortsättningen önskar erhålla skrifter från TELDOK får automatiskt alla TELDOK Kapport och alla TELDOK-info. Ytterligare information lämnas gärna av TELDOK Kedaktionskommitté.
    [Show full text]
  • Liste Von Programmiersprachen
    www.sf-ag.com Liste von Programmiersprachen A (1) A (21) AMOS BASIC (2) A# (22) AMPL (3) A+ (23) Angel Script (4) ABAP (24) ANSYS Parametric Design Language (5) Action (25) APL (6) Action Script (26) App Inventor (7) Action Oberon (27) Applied Type System (8) ACUCOBOL (28) Apple Script (9) Ada (29) Arden-Syntax (10) ADbasic (30) ARLA (11) Adenine (31) ASIC (12) Agilent VEE (32) Atlas Transformatikon Language (13) AIMMS (33) Autocoder (14) Aldor (34) Auto Hotkey (15) Alef (35) Autolt (16) Aleph (36) AutoLISP (17) ALGOL (ALGOL 60, ALGOL W, ALGOL 68) (37) Automatically Programmed Tools (APT) (18) Alice (38) Avenue (19) AML (39) awk (awk, gawk, mawk, nawk) (20) Amiga BASIC B (1) B (9) Bean Shell (2) B-0 (10) Befunge (3) BANCStar (11) Beta (Programmiersprache) (4) BASIC, siehe auch Liste der BASIC-Dialekte (12) BLISS (Programmiersprache) (5) Basic Calculator (13) Blitz Basic (6) Batch (14) Boo (7) Bash (15) Brainfuck, Branfuck2D (8) Basic Combined Programming Language (BCPL) Stichworte: Hochsprachenliste Letzte Änderung: 27.07.2016 / TS C:\Users\Goose\Downloads\Softwareentwicklung\Hochsprachenliste.doc Seite 1 von 7 www.sf-ag.com C (1) C (20) Cluster (2) C++ (21) Co-array Fortran (3) C-- (22) COBOL (4) C# (23) Cobra (5) C/AL (24) Coffee Script (6) Caml, siehe Objective CAML (25) COMAL (7) Ceylon (26) Cω (8) C for graphics (27) COMIT (9) Chef (28) Common Lisp (10) CHILL (29) Component Pascal (11) Chuck (Programmiersprache) (30) Comskee (12) CL (31) CONZEPT 16 (13) Clarion (32) CPL (14) Clean (33) CURL (15) Clipper (34) Curry (16) CLIPS (35)
    [Show full text]
  • How Lisp Systems Look Different in Proceedings of European Conference on Software Maintenance and Reengineering (CSMR 2008)
    How Lisp Systems Look Different In Proceedings of European Conference on Software Maintenance and Reengineering (CSMR 2008) Adrian Dozsa Tudor Gˆırba Radu Marinescu Politehnica University of Timis¸oara University of Berne Politehnica University of Timis¸oara Romania Switzerland Romania [email protected] [email protected] [email protected] Abstract rently used in a variety of domains, like bio-informatics (BioBike), data mining (PEPITe), knowledge-based en- Many reverse engineering approaches have been devel- gineering (Cycorp or Genworks), video games (Naughty oped to analyze software systems written in different lan- Dog), flight scheduling (ITA Software), natural language guages like C/C++ or Java. These approaches typically processing (SRI International), CAD (ICAD or OneSpace), rely on a meta-model, that is either specific for the language financial applications (American Express), web program- at hand or language independent (e.g. UML). However, one ming (Yahoo! Store or reddit.com), telecom (AT&T, British language that was hardly addressed is Lisp. While at first Telecom Labs or France Telecom R&D), electronic design sight it can be accommodated by current language inde- automation (AMD or American Microsystems) or planning pendent meta-models, Lisp has some unique features (e.g. systems (NASA’s Mars Pathfinder spacecraft mission) [16]. macros, CLOS entities) that are crucial for reverse engi- neering Lisp systems. In this paper we propose a suite of Why Lisp is Different. In spite of its almost fifty-year new visualizations that reveal the special traits of the Lisp history, and of the fact that other programming languages language and thus help in understanding complex Lisp sys- borrowed concepts from it, Lisp still presents some unique tems.
    [Show full text]
  • The Evolution of Lisp
    1 The Evolution of Lisp Guy L. Steele Jr. Richard P. Gabriel Thinking Machines Corporation Lucid, Inc. 245 First Street 707 Laurel Street Cambridge, Massachusetts 02142 Menlo Park, California 94025 Phone: (617) 234-2860 Phone: (415) 329-8400 FAX: (617) 243-4444 FAX: (415) 329-8480 E-mail: [email protected] E-mail: [email protected] Abstract Lisp is the world’s greatest programming language—or so its proponents think. The structure of Lisp makes it easy to extend the language or even to implement entirely new dialects without starting from scratch. Overall, the evolution of Lisp has been guided more by institutional rivalry, one-upsmanship, and the glee born of technical cleverness that is characteristic of the “hacker culture” than by sober assessments of technical requirements. Nevertheless this process has eventually produced both an industrial- strength programming language, messy but powerful, and a technically pure dialect, small but powerful, that is suitable for use by programming-language theoreticians. We pick up where McCarthy’s paper in the first HOPL conference left off. We trace the development chronologically from the era of the PDP-6, through the heyday of Interlisp and MacLisp, past the ascension and decline of special purpose Lisp machines, to the present era of standardization activities. We then examine the technical evolution of a few representative language features, including both some notable successes and some notable failures, that illuminate design issues that distinguish Lisp from other programming languages. We also discuss the use of Lisp as a laboratory for designing other programming languages. We conclude with some reflections on the forces that have driven the evolution of Lisp.
    [Show full text]
  • A Model of Inheritance for Declarative Visual Programming Languages
    An Abstract Of The Dissertation Of Rebecca Djang for the degree of Doctor of Philosophy in Computer Science presented on December 17, 1998. Title: Similarity Inheritance: A Model of Inheritance for Declarative Visual Programming Languages. Abstract approved: Margaret M. Burnett Declarative visual programming languages (VPLs), including spreadsheets, make up a large portion of both research and commercial VPLs. Spreadsheets in particular enjoy a wide audience, including end users. Unfortunately, spreadsheets and most other declarative VPLs still suffer from some of the problems that have been solved in other languages, such as ad-hoc (cut-and-paste) reuse of code which has been remedied in object-oriented languages, for example, through the code-reuse mechanism of inheritance. We believe spreadsheets and other declarative VPLs can benefit from the addition of an inheritance-like mechanism for fine-grained code reuse. This dissertation first examines the opportunities for supporting reuse inherent in declarative VPLs, and then introduces similarity inheritance and describes a prototype of this model in the research spreadsheet language Forms/3. Similarity inheritance is very flexible, allowing multiple granularities of code sharing and even mutual inheritance; it includes explicit representations of inherited code and all sharing relationships, and it subsumes the current spreadsheet mechanisms for formula propagation, providing a gradual migration from simple formula reuse to more sophisticated uses of inheritance among objects. Since the inheritance model separates inheritance from types, we investigate what notion of types is appropriate to support reuse of functions on different types (operation polymorphism). Because it is important to us that immediate feedback, which is characteristic of many VPLs, be preserved, including feedback with respect to type errors, we introduce a model of types suitable for static type inference in the presence of operation polymorphism with similarity inheritance.
    [Show full text]
  • ETH Eidgenossische Technische Hochschule Zurich H.Eberle
    ETH Eidgenossische lnstitut Technische fur lnformatik Hochschule ZUrich H.Eberle Hardware Description of the Workstation Ceres 11nuar 1987 ,70 70 . 61 .10 ETH Eidgenossische lnstitut Technische fur lnformatik Hochschule Zurich Eidrg. ~hn. ZI!rich lrricrm!!~!~:.~~lb;i::1H1a-k ETH~Zentrum CH..oo92 Zurich H.Eberle Hardware Description of the Workstation Ceres EidQ. lechn. He:ch'?~h'Jle Zilr\J::;!-: lnforme::!':.uib~iuthek El'l I-lei ili rn 11 CH-8002 ZOrtch gl,4-,23 Address of the author: lnstitut fiJr lnformatik ETH-Zentrum CH-8092 Zurich I Switzerland © 1987 lnstitut tor lnformatik, ETH Zurich 1 Hardware Description of the Workstation Ceres H.Eberle Abstract Ceres is a single-user computer based on the 32-bit microprocessor NS32000. The processor is oriented to the use of high-level languages. The hardware design concentrates on simplicity and modularity. The key features are the arbitrated memory bus and the high resolution bitmapped graphics display which promotes the attractivity of a programming workstation. This paper documents the hardware of the Ceres computer. 2 Contents 1 Introduction 3 2 Hardware Structure 4 2.1 Processor 4 2.2 Primary Memory 4 2.3 Secondary Memory 4 2.4 Input/Output Devices 4 3 Hardware Implementation 6 3.1 Processor Board 6 3.1.1 Processor 6 3.1.2 Memory Bus Arbiter 9 3.1.3 Boot ROM and Standard Input/Output Devices 12 3.2 Memory Board 15 3.3 Display Controller Board 18 3.3.1 Display Memory 18 3.3.2 Display Refresh Controller 19 3.4 Disk Controller Board 23 3.5 Motherboard 23 4 Hardware Extensions 24 References 26 Appendices A Circuit Diagrams 28 A.1 Processor Board 28 A.2 Memory Board 35 A.3 Display Controller Board 37 B PAL Design Specifications 42 c Interface Connectors 47 C.1 Processor Board 47 C.2 Display Controller Board 48 C.3 Motherboard 48 3 1 Introduction Todays working tools of a software engineer at the lnstitut fUr lnformatik of ETH ZOrich are the programming language Modula-2 [1] and the workstation computer Lilith [2].
    [Show full text]
  • The Zonnon Project: a .NET Language and Compiler Experiment
    The Zonnon Project: A .NET Language and Compiler Experiment Jürg Gutknecht Vladimir Romanov Eugene Zueff Swiss Fed Inst of Technology Moscow State University Swiss Fed Inst of Technology (ETH) Computer Science Department (ETH) Zürich, Switzerland Moscow, Russia Zürich, Switzerland [email protected] [email protected] [email protected] ABSTRACT Zonnon is a new programming language that combines the style and the virtues of the Pascal family with a number of novel programming concepts and constructs. It covers a wide range of programming models from algorithms and data structures to interoperating active objects in a distributed system. In contrast to popular object-oriented languages, Zonnon propagates a symmetric compositional inheritance model. In this paper, we first give a brief overview of the language and then focus on the implementation of the compiler and builder on top of .NET, with a particular emphasis on the use of the MS Common Compiler Infrastructure (CCI). The Zonnon compiler is an interesting showcase for the .NET interoperability platform because it implements a non-trivial but still “natural” mapping from the language’s intrinsic object model to the underlying CLR. Keywords Oberon, Zonnon, Compiler, Common Compiler Infrastructure (CCI), Integration. 1. INTRODUCTION: THE BRIEF CCI and b) to experiment with evolutionary language HISTORY OF THE PROJECT concepts. The notion of active object was taken from the Active Oberon language [Gut01]. In addition, two This is a technical paper presenting and describing new concurrency mechanisms have been added: an the current state of the Zonnon project. Zonnon is an accompanying communication mechanism based on evolution of the Pascal, Modula, Oberon language syntax-oriented protocols , borrowed from the Active line [Wir88].
    [Show full text]
  • Unifying Theories of Objects
    Unifying Theories of Objects Michael Anthony Smith1;2 and Jeremy Gibbons1 1 Oxford University, UK. 2 Systems Assurance Group, QinetiQ, UK. [email protected] [email protected] Abstract. We present an approach to modelling Abadi{Cardelli-style object calculi as Unifying Theories of Programming (UTP) designs. Here we provide a core object calculus with an operational small-step evalua- tion rule semantics, and a corresponding UTP model with a denotational relational predicate semantics. For clarity, the UTP model is defined in terms of an operand stack, which is used to store the results of sub- programs. Models of a less operational nature are briefly discussed. The consistency of the UTP model is demonstrated by a structural induction proof over the operations of the core object calculus. Overall, our UTP model is intended to provide facilities for encoding both object-based and class-based languages. 1 Introduction Hoare and He's Unifying Theories of Programming (UTP) [6] can be used to formally define how results produced in one formal model can be translated as assumptions to another formal model. Essentially, programs are considered to be predicates that relate the values of their observable input and output variables (their alphabet). For example, the increment program x := x + 1 is typically defined by the relational predicate x 0 = x + 1, where predicate variables x and x 0 denote the input and output values of the program variable x. In general, the alphabet of a program P is denoted by αP; it is the disjoint union of P's input and output sets (inαP and outαP respectively), which in the case of the example is the set fx; x 0g.
    [Show full text]
  • Cancer Immunology of Cutaneous Melanoma: a Systems Biology Approach
    Cancer Immunology of Cutaneous Melanoma: A Systems Biology Approach Mindy Stephania De Los Ángeles Muñoz Miranda Doctoral Thesis presented to Bioinformatics Graduate Program at Institute of Mathematics and Statistics of University of São Paulo to obtain Doctor of Science degree Concentration Area: Bioinformatics Supervisor: Prof. Dr. Helder Takashi Imoto Nakaya During the project development the author received funding from CAPES São Paulo, September 2020 Mindy Stephania De Los Ángeles Muñoz Miranda Imunologia do Câncer de Melanoma Cutâneo: Uma abordagem de Biologia de Sistemas VERSÃO CORRIGIDA Esta versão de tese contém as correções e alterações sugeridas pela Comissão Julgadora durante a defesa da versão original do trabalho, realizada em 28/09/2020. Uma cópia da versão original está disponível no Instituto de Matemática e Estatística da Universidade de São Paulo. This thesis version contains the corrections and changes suggested by the Committee during the defense of the original version of the work presented on 09/28/2020. A copy of the original version is available at Institute of Mathematics and Statistics at the University of São Paulo. Comissão Julgadora: • Prof. Dr. Helder Takashi Imoto Nakaya (Orientador, Não Votante) - FCF-USP • Prof. Dr. André Fujita - IME-USP • Profa. Dra. Patricia Abrão Possik - INCA-Externo • Profa. Dra. Ana Carolina Tahira - I.Butantan-Externo i FICHA CATALOGRÁFICA Muñoz Miranda, Mindy StephaniaFicha de Catalográfica los Ángeles M967 Cancer immunology of cutaneous melanoma: a systems biology approach = Imuno- logia do câncer de melanoma cutâneo: uma abordagem de biologia de sistemas / Mindy Stephania de los Ángeles Muñoz Miranda, [orientador] Helder Takashi Imoto Nakaya. São Paulo : 2020. 58 p.
    [Show full text]
  • Objektové Programování Poznámky K Přednášce
    Objektové programování Poznámky k přednášce Michal Krupka 18. prosince 2016 1 Obsah 1 Od Scheme k Lispu 7 1.1 Základní rozdíly mezi Schemem a Common Lispem . 8 1.2 Common Lisp: základní výbava . 14 2 Objekty a třídy 37 2.1 Základní pojmy ........................... 37 2.2 Třídy a instance v Common Lispu . 40 2.3 Inicializace slotů nových instancí . 49 ÚLOHY ................................... 52 3 Zapouzdření a polymorfismus 55 3.1 Princip zapouzdření ........................ 55 3.2 Úprava tříd point a circle ................... 61 3.3 Třída picture ........................... 64 3.4 Vlastnosti ............................... 67 3.5 Kreslení pomocí knihovny micro-graphics . 68 3.6 Kreslení grafických objektů .................... 72 3.7 Princip polymorfismu ....................... 81 3.8 Polygony ............................... 83 3.9 Geometrické transformace ..................... 87 ÚLOHY ................................... 89 4 Dědičnost 91 4.1 Princip dědičnosti a pravidlo is-a . 91 4.2 Určení předka v definici třídy ................... 98 4.3 Poznámka o běžných jazycích . 102 4.4 Přepisování metod . 102 4.5 Volání zděděné metody . 104 4.6 Inicializace instancí . 110 3 4 OBSAH 4.7 Návrh stromu dědičnosti . 111 ÚLOHY ................................... 112 5 Zpětná volání 115 5.1 Zpětná volání v knihovně micro-graphics . 115 5.2 Překreslování oken po vnější změně . 117 5.3 Překreslení při změně okna . 118 5.4 Překreslování při změnách objektů . 120 ÚLOHY ................................... 124 6 Klikání a jiné události 127 6.1 Jednoduché obsloužení vstupu z myši . 127 6.2 Zpravení grafického objektu o kliknutí . 129 6.3 Princip vlastnění, delegování, události . 133 6.4 Události ev-changing a ev-change . 136 6.5 Reakce na kliknutí: událost ev-mouse-down . 140 ÚLOHY ..................................
    [Show full text]
  • Introduction to .NET, C#, and Visual Studio
    Introduction to .NET, C#, and Visual Studio C# Programming January 8 Part I Administrivia Administrivia • When: Wednesdays 10–11am (and a few Mondays as needed) • Where: Moore 100B • This lab has Windows machines, but feel free to bring laptops • Office Hours: to be announced • Course webpage: http://www.seas.upenn.edu/~cse39905 Course Structure • No quizzes, no exams • Roughly 6 projects • Roughly 2 weeks per project • The final project will be slightly longer and more open-ended • Projects will be due at midnight on the night of the deadline • All assignments should be submitted through the Blackboard Digital Dropbox • Late policy: 15% off each day, up to 3 days late Final Project • Your chance to choose your own project • Brainstorming and planning will begin after spring break • Top projects will be entered into the Xtreme.NET Challenge – hopefully there will be 20 top projects :-) • First prize: Xbox 360! • Judges will include someone from Microsoft recruiting, maybe someone from the C# team • More details to come at http://www.seas.upenn.edu/~cse39905/xtreme Part II What is .NET? The Microsoft .NET Framework • .NET is a development platform that launched in 2000 • Goals include language independence, language integration, web services • Technologies to promote rapid development of secure, connected applications • .NET components include: • Languages (C#, VB, Visual C++, Visual J#, ...) • Common Language Runtime (CLR) • Framework Class Library (FCL) Common Language Runtime • A single runtime environment to execute programs written in any .NET language • Includes a virtual machine • Activates objects, manages memory, performs security checks, collects garbage • To run on the CLR, a language must adhere to a Common Language Specification (CLS) • A language must also build upon base types specified in the Common Type System (CTS) Languages • Language compilers translate source into Microsoft Intermediate Language (MSIL).
    [Show full text]