Dissertation Proposal: The Evolution of Robust Software m c h t a b c , a i n ; = a g ! i r ) i a n r ] n ( ( a * [ f v t i t n g ; r b i a a [ i ( r ] f n g * ) n t ( i c r i a a , a n i ! = m c h t a ; b Dissertation Proposal: The Evolution of Robust Software Eric Schulte University of New Mexico August 15, 2012 1/28
Dissertation Proposal: The Evolution of Robust Software m c h t a b c , a i n ; = a g ! i r ) i a n r ] n ( ( a * [ f v t i t n g ; Outline r b i a a [ i ( r ] f n g * ) n t ( i c r i a a , a n i ! = m c h t a ; b 1 Introduction 2 Related Work 3 Preliminary Work 4 Further Research 5 Applications 6 Conclusion 2/28
Dissertation Proposal: The Evolution of Robust Software Introduction m c h t a b c , a i n ; = a g ! i r ) i a n r ] n ( ( a * [ f v t i t n g ; Natural Selection of Software r b i a a [ i ( r ] f n g * ) n t ( i c r i a a , a n i ! = m c h t a ; b Insight Over the past 50 years developers and engineers have selected , copied , modified , and pasted software tools, environments and code in a process resembling natural selection . Research Questions • What effects have these processes had on software? • Can these insights lead to new tools and techniques? 3/28
Dissertation Proposal: The Evolution of Robust Software Introduction m c h t a b c , a i n ; = a g ! i r ) i a n r ] n ( ( a * [ f v t i t n g ; Motivation r b i a a [ i ( r ] f n g * ) n t ( i c r i a a , a n i ! = m c h t a ; b Need • 1.3 Million employed software developers in the US in 2008. • Expect 21% increase by 2018 [Bureau of Labor Statistics, 2011]. Opportunity Software Engineering Biology [Weimer et al., 2009] [Beal and Sussman, 2008] [Holland, 1992] [Raman and Wagner, 2010] [Rinard et al., 2004] [Perkins et al., 2009] 4/28
Dissertation Proposal: The Evolution of Robust Software Related Work m c h t a b c , a i n ; = a g ! i r ) i a n r ] n ( ( a * [ f v t i t n g ; Biological Robustness r b i a a [ i ( r ] f n g * ) n t ( i c r i a a , a n i ! = m c h t a ; b Genotype and Phenotype Realms genotype genetic information which specifies an organism phenotype resulting physical organism in the world Robustness genotypic ( mutational ) robustness to internal variance in genetic information phenotypic ( environmental ) robustness to external variance in the world 5/28
Dissertation Proposal: The Evolution of Robust Software Related Work m c h t a b c , a i n ; = a g ! i r ) i a n r ] n ( ( a * [ f v t i t n g ; Biological Robustness r b i a a [ i ( r ] f n g * ) n t ( i c r i a a , a n i ! = m c h t a ; b Mechanisms of robustness • Important amino acids over represented [Knight et al., 1999] • Buffer changes (e.g., metabolic pathways) [Wagner, 2005] • Degenerate vital functions [Edelman and Gally, 2001] (from http://www.raymondcheong.com/) 6/28
Dissertation Proposal: The Evolution of Robust Software Related Work m c h t a b c , a i n ; = a g ! i r ) i a n r ] n ( ( a * [ f v t i t n g ; Biological Robustness r b i a a [ i ( r ] f n g * ) n t ( i c r i a a , a n i ! = m c h t a ; b Robustness and Evolution • Evolution finds large neutral spaces • Evolution increases mutational robustness [Van Nimwegen et al., 1999] • Accrued genetic information leads to evolutionary innovation [Ciliberti et al., 2007] 7/28
Dissertation Proposal: The Evolution of Robust Software Related Work m c h t a b c , a i n ; = a g ! i r ) i a n r ] n ( ( a * [ f v t i t n g ; Evolutionary Computation r b i a a [ i ( r ] f n g * ) n t ( i c r i a a , a n i ! = m c h t a ; b Digital Evolution Computational simulation of adaptive systems [Holland, 1962]. Avida [Ofria and Wilke, 2004] • computational models which mimic evolved biological systems • allow time frames and controls impossible in-situ (used under the GNU Free Documentation License) 8/28
Dissertation Proposal: The Evolution of Robust Software Related Work m c h t a b c , a i n ; = a g ! i r ) i a n r ] n ( ( a * [ f v t i t n g ; Evolutionary Computation r b i a a [ i ( r ] f n g * ) n t ( i c r i a a , a n i ! = m c h t a ; b Genetic Programming • Natural selection as a heuristic used to program computers • Simplified programming languages [Koza, 1992] • Used to repair real-world extant software written by humans m * a i f ( b r r b ; a a g e a i ! s h v t n = l c [ n e ( ] i b i ) ; n , ; ) + c i a g + r t a n a i g a + t ) n c ) ; b ; , ] i i [ = ( n e c v n t l h g ! s i a a r b a e m r a ; ( * i f b 9/28
Dissertation Proposal: The Evolution of Robust Software Related Work m c h t a b c , a i n ; = a g ! i r ) i a n r ] n ( ( a * [ f v t i t n g ; Software Engineering r b i a a [ i ( r ] f n g * ) n t ( i c r i a a , a n i ! = m c h t a ; b Acceptably Correct Computation • Ignore memory errors [Rinard et al., 2004] • Hallucinate acceptable inputs [Beal and Sussman, 2008] • Dynamically enforce learned invariants [Perkins et al., 2009] • Drop loop executions at runtime [Misailovic et al., 2011] 10/28
Dissertation Proposal: The Evolution of Robust Software Preliminary Work m c h t a b c , a i n ; = a g ! i r ) i a n r ] n ( ( a * [ f v t i t n g ; Software Mutational Robustness r b i a a [ i ( r ] f n g * ) n t ( i c r i a a , a n i ! = m c h t a ; b Software Mutational Robustness : The fraction of mutants of software that are functional. 11/28
Dissertation Proposal: The Evolution of Robust Software Preliminary Work m c h t a b c , a i n ; = a g ! i r ) i a n r ] n ( ( a * [ f v t i t n g ; Software Mutational Robustness r b i a a [ i ( r ] f n g * ) n t ( i c r i a a , a n i ! = m c h t a ; b Software Mutational Robustness : The fraction of mutants of software that are functional. software Depends upon: • The software itself 11/28
Dissertation Proposal: The Evolution of Robust Software Preliminary Work m c h t a b c , a i n ; = a g ! i r ) i a n r ] n ( ( a * [ f v t i t n g ; Software Mutational Robustness r b i a a [ i ( r ] f n g * ) n t ( i c r i a a , a n i ! = m c h t a ; b Software Mutational Robustness : The fraction of mutants of software that are functional. mutants Depends upon: • The software itself • The mutation operators 11/28
Dissertation Proposal: The Evolution of Robust Software Preliminary Work m c h t a b c , a i n ; = a g ! i r ) i a n r ] n ( ( a * [ f v t i t n g ; Software Mutational Robustness r b i a a [ i ( r ] f n g * ) n t ( i c r i a a , a n i ! = m c h t a ; b Software Mutational Robustness : The fraction of mutants of software that are functional. functional Depends upon: • The software itself • The mutation operators • The test of functionality 11/28
Dissertation Proposal: The Evolution of Robust Software Preliminary Work m c h t a b c , a i n ; = a g ! i r ) i a n r ] n ( ( a * [ f v t i t n g ; Software Mutational Robustness r b i a a [ i ( r ] f n g * ) n t ( i c r i a a , a n i ! = m c h t a ; b Software Mutational Robustness : The fraction of mutants of software that are functional. Independent of: • The software itself • The mutation operators • The test of functionality 11/28
Dissertation Proposal: The Evolution of Robust Software Preliminary Work m c h t a b c , a i n ; = a g ! i r ) i a n r ] n ( ( a * [ f v t i t n g ; Software Mutational Robustness r b i a a [ i ( r ] f n g * ) n t ( i c r i a a , a n i ! = m c h t a ; b Mutation Operators → → → (a) Insert AST (b) Delete AST (c) Swap AST movq 8(%rdx), %rdi movq 8(%rdx), %rdi movq 8(%rdx), %rdi movq 8(%rdx), %rdi movq 8(%rdx), %rdi movq 8(%rdx), %rdi xorl %eax, %eax xorl %eax, %eax xorl %eax, %eax xorl %eax, %eax xorl %eax, %eax xorl %eax, %eax movq -80(%rbp), %rdx movq -80(%rbp), %rdx movq %rdx, -80(%rbp) addl $1, %r14d movq %rdx, -80(%rbp) movq -80(%rbp), %rdx addl $1, %r14d addl $1, %r14d addl $1, %r14d call atoi addl $1, %r14d addl $1, %r14d → → → call atoi call atoi call atoi movq %rdx, -80(%rbp) call atoi call atoi movq %rdx, -80(%rbp) movq -80(%rbp), %rdx movq -80(%rbp), %rdx movl %eax, (%r15) movq -80(%rbp), %rdx movq %rdx, -80(%rbp) movl %eax, (%r15) movq -80(%rbp), %rdx movl %eax, (%r15) addq $4, %r15 movl %eax, (%r15) movl %eax, (%r15) addq $4, %r15 movl %eax, (%r15) addq $4, %r15 addq $4, %r15 addq $4, %r15 addq $4, %r15 (d) Insert ASM (e) Delete ASM (f) Swap ASM ( ELF level mutation operators not shown ) 12/28
Recommend
More recommend