AURA: A language with authorization and audit
|
|
|
- Delphia Simmons
- 10 years ago
- Views:
Transcription
1 AURA: A language with authorization and audit Steve Zdancewic University of Pennsylvania WG
2 Security-oriented Languages Limin Jia, Karl Mazurak, Jeff Vaughan, Jianzhou Zhao Joey Schorr and Luke Zarko Manifest Security Project (NSF ) Penn: Benjamin Pierce, Stephanie Weirich CMU: Karl Crary, Bob Harper, Frank Pfenning CAREER: Language-based Distributed System Security (NSF ) 2
3 Goal of the AURA project: Develop a security-oriented programming language that supports: Proof-carrying Authorization [Appel & Felton] [Bauer et al.] Strong information-flow properties (as in Jif [Myers et al.], FlowCaml [Pottier & Simonet]) Why? Declarative policies (for access control & information flow) Auditing & logging: proofs of authorization are informative Good theoretical foundations In this talk: tour of AURA's Focus on the authorization and audit components 3
4 Outline AURA's programming model Authorization logic Examples Programming in AURA (Restricted) Dependent types Status, future directions, conclusions 4
5 AURA: Programming Model application code code system interface I/O AURA runtime system AURA is a call-by-value type-safe functional programming language As in Java, C#, etc. AURA provides an interface to the OS resources disk, network, memory, AURA is intended to be used for writing security-critical components 5
6 AURA: Authorization Policies proof application code code policy system interface I/O AURA runtime system AURA security policies are expressed in an authorization logic Applications can define their own policies Language provides features for creating/manipulating proofs 6
7 AURA: Authorization Policies proof data application code code policy system interface I/O AURA runtime system log Proofs are first class and they can depend on data Proof objects are capabilities needed to access resources protected by the runtime: AURA's type system ensures compliance The runtime logs the proofs for later audit 7
8 AURA: Principals and Keys proof data application A B code code policy I/O system interface AURA runtime system A B log For distributed systems, AURA also manages private keys Keys can create policy assertions sharable over the network Connected to the policy by AURA's notion of principal 8
9 Evidence-based Audit Connecting the contents of log entries to policy helps determine what to log. policy code log 9
10 Evidence-based Audit Connecting the contents of log entries to policy helps determine what to log. policy code Proofs contain structure that can help administrators find flaws or misconfigurations in the policy. log 10
11 Evidence-based Audit Connecting the contents of log entries to policy helps determine what to log. policy code Proofs contain structure that can help administrators find flaws or misconfigurations in the policy. Reduced TCB: Typed interface forces code to provide auditable evidence. log 11
12 Outline AURA's programming model Authorization logic Examples Programming in AURA (Restricted) Dependent types Status, future directions, conclusions 12
13 AURA's Authorization Logic Policy propositions ϕ ::=true c A says ϕ α ϕ ϕ ϕ ϕ ϕ ϕ α. ϕ Encoded using Π types and inductive datatypes. Principals A,B,C P,Q,R etc. Constructive logic: proofs are programs easy integration with software Access control in a Core Calculus of Dependency [Abadi: ICFP 2006] 13
14 Example: File system authorization P1: FS says (Owns A f1) P2: FS says (Owns B f2) OwnerControlsRead: FS says o,r,f. (Owns o f) (o says (MayRead r f)) (MayRead r f) Might need to prove: FS says (MayRead A f1) What are "Owns" and "f1"? 14
15 Decentralized Authorization Authorization policies require application-specific constants: e.g. "MayRead B f" or "Owns A f" There is no "proof evidence" associated with these constants Otherwise, it would be easy to forge authorization proofs But, principal A should be able to create a proof of A says (MayRead B f) No justification required -- this is a matter of policy, not fact! Decentralized implementation: One proof that "A says T" is A's digital signature on a string "T" written sign(a, "T") 15
16 P1: FS says (Owns A f1) Example Proof (1) OwnerControlsRead: FS says o,r,f. (Owns o f) (o says (MayRead r f)) (MayRead r f) Direct authorization via FS's signature: sign(fs, "MayRead A f1") : FS says (MayRead A f1) 16
17 P1: FS says (Owns A f1) Example Proof (2) OwnerControlsRead: FS says o,r,f. (Owns o f) (o says (MayRead r f)) (MayRead r f) Complex proof constructed using "bind" and "return" bind p = OwnerControlsRead in bind q = P1 in return FS (p A A f1 q sign(a,"mayread A f1"))) : FS says (MayRead A f1) 17
18 Authority in AURA How to create the value sign(a, "ϕ")? Components of the software have authority Authority modeled as possession of a private key With A's authority : say("ϕ") evaluates to sign(a, "ϕ") What ϕ's should a program be able to say? From a statically predetermined set (static auditing) From a set determined at load time In any case: log which assertions are made 18
19 Outline AURA's programming model Authorization logic Examples Programming in AURA (Restricted) Dependent types Status, future directions, conclusions 19
20 AURA Programming Language Static Types: describe programs int FileHandle string prin int -> int pf ϕ Propositions: specify policy ϕ A says ϕ (ϕ φ) α.t (Owns A fh1) (ϕ -> φ) Dynamic Programs: computations, I/O 3 fh1 "hello" A say(ϕ) \x:t.e Evidence: proofs/credentials sign(a, "ϕ") bind/return \x:t.e Programs Policies 20
21 (Restricted) Dependent Types Policy propositions can mention program data E.g. "f1" is a file handle that can appear in a policy AURA restricts dependency to first order data types Disallows computation at the type level only values! Programming with dependent types: {x:t; U(x)} dependent pair* (* syntactic sugar) (x:t) U(x) dependent functions Invariant: sign only types Computation can't depend on signatures But, can use predicates: {x:int; pf A says Good(x)} 21
22 Auditing Interfaces Type of the "native" read operation: raw_read : FileHandle String AURA's runtime exposes it this way: read : (f:filehandle) pf RT says (OkToRead self f) {ans:string; pf RT says (DidRead f ans)} RT is a principal that represents the AURA runtime OKtoRead and DidRead are "generic" policies The application implements its own policies about when it is OKtoRead by providing assertions, etc. Parts of the runtime must delegate to the application 22
23 Signatures Assertions: uninhabited constants that construct Prop s assert MayRead : Prin -> FileHandle -> Prop; assert Owns : Prin -> FileHandle -> Prop; AURA supports mutually recursive datatypes and mutually inductively defined propositions: data List: Type -> Type { nil : (t:type) -> List t cons: (t:type) -> t -> List t -> List t } data OwnerInfo : FileHandle -> Type { } oinfo : (f:filehandle) -> (p:prin) -> pf (self says (Owns p f)) -> OwnerInfo f data And : Prop -> Prop -> Prop { } both : (p:prop) -> (q:prop) -> p -> q -> And p q 23
24 More about Prop vs. Type We want the Prop fragment to be a logic: Pure, strongly normalizing Signature typing rules add a strong positivity constraint for Prop to rule out divergence We need to separate the Prop and Type fragments Type fragment includes divergent terms (possibly other effects) This is the purpose of the pf monad. A value of type pf P is of the form return p t where t is a pure proof term that proves P. It is possible to write a loop of type pf P by not one of type P. 24
25 (see demo.core) Example Program 25
26 Formalizing Core AURA Lambda-cube-like representation with a very simple core: t ::= x ctr λx:t 1.t 2 t 1 t 2 (x:t 1 ) t 2 match t 1 t 2 with {b} (t 1 : t 2 ) c Plus these constants (special typechecking rules): c ::= Type Prop Kind prin says return s bind s self sign pf return p bind p if 26
27 Coq Formalization Type system and operational semantics: 30 rules in 4 mutually inductive predicates: wf_env, wf_tm, wf_branches, wf_brn Signature checking: wf_sig, wf_bundle_tcrs, wf_bundle_ctrs, wf_ctr_decls Conversion relation (for casts) that reflects dynamic equality checks into the static type system Evaluation rules Correctness properties proved in Coq: Type soundness and decidability of typechecking (~7000 loc) Decidability of typechecking is simplified by: Restricted dependency (only values) Limited equality proofs available statically Paper proof of strong normalization of (a slightly simplified version of) the Prop fragment. 27
28 Observations about the Formalization Dealing with mutually recursive datatypes and pattern matching was a lot of work Significant source of complexity for soundness and decidability hopefully reusable in other contexts (our lambda cube plus constants can probably be instantiated to other languages) Initial investment in formalization was heavy many hours to implement the typing rules, etc. But: having machine checked proofs is a big win, especially for large groups of collaborators. It gets easier over time 28
29 Open Questions AURA needed improvements: Anonymous existential types / dependent type & inference Richer dependent types? Explicit / richer equality proofs? Revocation/expiration of signed objects? [Garg and Pfenning] Connection to program verification? Correlate distributed logs? This story seems just fine for integrity, but what about confidentiality? We have many ideas about connecting to information-flow analysis Is there an "encryption" analog to "signatures" interpretation? Encode confidentiality using security monads [work at Chalmers] 29
30 Conjecture: Non-security use? Carve up a program into principals Perhaps by module? Allow principals to make arbitrary (dependent) logical assertions Interfaces can specify constraints in this logic (e.g. propositions regulate type equality) The says modality offers an escape hatch: no need to construct an actual proof Cast uses asserted equality (not verifiable equality ) says isolates components, allows assignment of blame and makes trust relationships explicit. Question: is this interesting? Useful? Does anyone know of any work similar to this? 30
31 Outline AURA's programming model Authorization logic Examples Programming in AURA Dependent types Status, future directions, conclusions 31
32 AURA's Status Have implemented an interpreter in F# Many small examples programs Working on larger examples Goal: experience with proof sizes, logging infrastructure Planning to compile AURA to Microsoft.NET platform Proof representation / compatibility with C# and other.net languages Luke Zarko is awesome Penn undergrad applying this fall to Ph.D. programs for next year 32
33 Security-oriented Languages AURA A language with support for authorization and audit Authorization logic Limited form of dependent types Language features that support secure systems 33
34 Thanks! 34
Authorization, Audit, and Provenance in the AURA System
Authorization, Audit, and Provenance in the AURA System Jeff Vaughan Department of Computer and Information Science University of Pennsylvania Symposium on Provenance in Software Systems March 30, 2009
Aura: Programming with Authorization and Audit
University of Pennsylvania ScholarlyCommons Publicly accessible Penn Dissertations Fall 12-22-2009 Aura: Programming with Authorization and Audit Jeffrey A. Vaughan University of Pennsylvania, [email protected]
Semantic Analysis: Types and Type Checking
Semantic Analysis Semantic Analysis: Types and Type Checking CS 471 October 10, 2007 Source code Lexical Analysis tokens Syntactic Analysis AST Semantic Analysis AST Intermediate Code Gen lexical errors
Introducing Formal Methods. Software Engineering and Formal Methods
Introducing Formal Methods Formal Methods for Software Specification and Analysis: An Overview 1 Software Engineering and Formal Methods Every Software engineering methodology is based on a recommended
Design by Contract beyond class modelling
Design by Contract beyond class modelling Introduction Design by Contract (DbC) or Programming by Contract is an approach to designing software. It says that designers should define precise and verifiable
Modal Proofs as Distributed Programs (Extended Abstract)
Modal Proofs as Distributed Programs (Extended Abstract) Limin Jia and David Walker Princeton University 35 Olden St., Princeton, NJ 08544, USA {ljia,dpw}@cs.princeton.edu Abstract. We develop a new foundation
POLYTYPIC PROGRAMMING OR: Programming Language Theory is Helpful
POLYTYPIC PROGRAMMING OR: Programming Language Theory is Helpful RALF HINZE Institute of Information and Computing Sciences Utrecht University Email: [email protected] Homepage: http://www.cs.uu.nl/~ralf/
Trust but Verify: Authorization for Web Services. The University of Vermont
Trust but Verify: Authorization for Web Services Christian Skalka X. Sean Wang The University of Vermont Trust but Verify (TbV) Reliable, practical authorization for web service invocation. Securing complex
CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages. Nicki Dell Spring 2014
CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages Nicki Dell Spring 2014 What is a Programming Language? A set of symbols and associated tools that translate (if necessary) collections
Automated Theorem Proving - summary of lecture 1
Automated Theorem Proving - summary of lecture 1 1 Introduction Automated Theorem Proving (ATP) deals with the development of computer programs that show that some statement is a logical consequence of
Introduction to type systems
Introduction to type systems p. 1/5 Introductory Course on Logic and Automata Theory Introduction to type systems [email protected] Based on slides by Jeff Foster, UMD Introduction to type systems
StaRVOOrS: A Tool for Combined Static and Runtime Verification of Java
StaRVOOrS: A Tool for Combined Static and Runtime Verification of Java Jesús Mauricio Chimento 1, Wolfgang Ahrendt 1, Gordon J. Pace 2, and Gerardo Schneider 3 1 Chalmers University of Technology, Sweden.
Cassandra. References:
Cassandra References: Becker, Moritz; Sewell, Peter. Cassandra: Flexible Trust Management, Applied to Electronic Health Records. 2004. Li, Ninghui; Mitchell, John. Datalog with Constraints: A Foundation
Technical Safeguards is the third area of safeguard defined by the HIPAA Security Rule. The technical safeguards are intended to create policies and
Technical Safeguards is the third area of safeguard defined by the HIPAA Security Rule. The technical safeguards are intended to create policies and procedures to govern who has access to electronic protected
System Description: Delphin A Functional Programming Language for Deductive Systems
System Description: Delphin A Functional Programming Language for Deductive Systems Adam Poswolsky 1 and Carsten Schürmann 2 1 Yale University [email protected] 2 IT University of Copenhagen [email protected]
[Refer Slide Time: 05:10]
Principles of Programming Languages Prof: S. Arun Kumar Department of Computer Science and Engineering Indian Institute of Technology Delhi Lecture no 7 Lecture Title: Syntactic Classes Welcome to lecture
Lecture 17: Mobile Computing Platforms: Android. Mythili Vutukuru CS 653 Spring 2014 March 24, Monday
Lecture 17: Mobile Computing Platforms: Android Mythili Vutukuru CS 653 Spring 2014 March 24, Monday Mobile applications vs. traditional applications Traditional model of computing: an OS (Linux / Windows),
The CompCert verified C compiler
The CompCert verified C compiler Compiler built and proved by Xavier Leroy et al. Talk given by David Pichardie - Harvard University / INRIA Rennes Slides largely inspired by Xavier Leroy own material
Functional Programming. Functional Programming Languages. Chapter 14. Introduction
Functional Programming Languages Chapter 14 Introduction Functional programming paradigm History Features and concepts Examples: Lisp ML 1 2 Functional Programming Functional Programming Languages The
PROGRAM LOGICS FOR CERTIFIED COMPILERS
PROGRAM LOGICS FOR CERTIFIED COMPILERS Separation logic is the twenty-first-century variant of Hoare logic that permits verification of pointer-manipulating programs. This book covers practical and theoretical
CIS 551 / TCOM 401 Computer and Network Security
CIS 551 / TCOM 401 Computer and Network Security Spring 2007 Lecture 3 1/18/07 CIS/TCOM 551 1 Announcements Email project groups to Jeff (vaughan2 AT seas.upenn.edu) by Jan. 25 Start your projects early!
Automated Formal Analysis of Internet Routing Systems
Automated Formal Analysis of Internet Routing Systems Boon Thau Loo University of Pennsylvania [Joint work with Anduo Wang (Penn -> UIUC), Wenchao Zhou (Georgetown), Andre Scedrov (Penn), Limin Jia (CMU),
Transparent Monitoring of a Process Self in a Virtual Environment
Transparent Monitoring of a Process Self in a Virtual Environment PhD Lunchtime Seminar Università di Pisa 24 Giugno 2008 Outline Background Process Self Attacks Against the Self Dynamic and Static Analysis
Project Software Security: Securing SendMail with JAAS and Polymer
Project Software Security: Securing SendMail with JAAS and Polymer Frank van Vliet [email protected] Diego Ortiz Yepes [email protected] Jornt van der Wiel [email protected] Guido Kok
15-150 Lecture 11: Tail Recursion; Continuations
15-150 Lecture 11: Tail Recursion; Continuations Lecture by Dan Licata February 21, 2011 In this lecture we will discuss space usage: analyzing the memory it takes your program to run tail calls and tail
Trustworthy Software Systems
Trustworthy Software Systems Greg Morrisett Cutting Professor of Computer Science School of Engineering & Applied Sciences Harvard University Little about me Research & Teaching Compilers, Languages, Formal
Applications of formal verification for secure Cloud environments at CEA LIST
Applications of formal verification for secure Cloud environments at CEA LIST Nikolai Kosmatov joint work with A.Blanchard, F.Bobot, M.Lemerre,... SEC2, Lille, June 30 th, 2015 N. Kosmatov (CEA LIST) Formal
ML for the Working Programmer
ML for the Working Programmer 2nd edition Lawrence C. Paulson University of Cambridge CAMBRIDGE UNIVERSITY PRESS CONTENTS Preface to the Second Edition Preface xiii xv 1 Standard ML 1 Functional Programming
Lecture 1: Introduction
Programming Languages Lecture 1: Introduction Benjamin J. Keller Department of Computer Science, Virginia Tech Programming Languages Lecture 1 Introduction 2 Lecture Outline Preview History of Programming
Programming Language Pragmatics
Programming Language Pragmatics THIRD EDITION Michael L. Scott Department of Computer Science University of Rochester ^ШШШШШ AMSTERDAM BOSTON HEIDELBERG LONDON, '-*i» ЩЛ< ^ ' m H NEW YORK «OXFORD «PARIS»SAN
Journal of Functional Programming, volume 3 number 4, 1993. Dynamics in ML
Journal of Functional Programming, volume 3 number 4, 1993. Dynamics in ML Xavier Leroy École Normale Supérieure Michel Mauny INRIA Rocquencourt Abstract Objects with dynamic types allow the integration
CHAPTER 7 GENERAL PROOF SYSTEMS
CHAPTER 7 GENERAL PROOF SYSTEMS 1 Introduction Proof systems are built to prove statements. They can be thought as an inference machine with special statements, called provable statements, or sometimes
BUSINESS RULES CONCEPTS... 2 BUSINESS RULE ENGINE ARCHITECTURE... 4. By using the RETE Algorithm... 5. Benefits of RETE Algorithm...
1 Table of Contents BUSINESS RULES CONCEPTS... 2 BUSINESS RULES... 2 RULE INFERENCE CONCEPT... 2 BASIC BUSINESS RULES CONCEPT... 3 BUSINESS RULE ENGINE ARCHITECTURE... 4 BUSINESS RULE ENGINE ARCHITECTURE...
Programming Languages in Artificial Intelligence
Programming Languages in Artificial Intelligence Günter Neumann, German Research Center for Artificial Intelligence (LT Lab, DFKI) I. AI programming languages II. Functional programming III. Functional
Relations: their uses in programming and computational specifications
PEPS Relations, 15 December 2008 1/27 Relations: their uses in programming and computational specifications Dale Miller INRIA - Saclay & LIX, Ecole Polytechnique 1. Logic and computation Outline 2. Comparing
How To Write A Program Verification And Programming Book
Jose Bacelar Almeida Maria Joao Frade Jorge Sousa Pinto Simao Melo de Sousa Rigorous Software Development An Introduction to Program Verification & Springer Contents 1 Introduction 1 1.1 A Formal Approach
Indexed Types in Object-Oriented Programming
Indexed Types in Object-Oriented Programming Joana Campos and Vasco T. Vasconcelos University of Lisbon, Faculty of Sciences, LaSIGE Abstract. Dependent type systems allow semantic properties to be expressed
Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives
Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,
Pretty-big-step semantics
Pretty-big-step semantics Arthur Charguéraud INRIA October 2012 1 / 34 Motivation Formalization of JavaScript with Sergio Maeis, Daniele Filaretti, Alan Schmitt, Martin Bodin. Previous work: Semi-formal
Parametric Domain-theoretic models of Linear Abadi & Plotkin Logic
Parametric Domain-theoretic models of Linear Abadi & Plotkin Logic Lars Birkedal Rasmus Ejlers Møgelberg Rasmus Lerchedahl Petersen IT University Technical Report Series TR-00-7 ISSN 600 600 February 00
A Security Domain Model for Static Analysis and Verification of Software Programs
A Security Domain Model for Static Analysis and Verification of Software Programs Alan B. Shaffer Naval Postgraduate School Computer Science Dept Monterey, CA, USA [email protected] Abstract- Unauthorized
Chapter 7: Functional Programming Languages
Chapter 7: Functional Programming Languages Aarne Ranta Slides for the book Implementing Programming Languages. An Introduction to Compilers and Interpreters, College Publications, 2012. Fun: a language
Computer-Assisted Theorem Proving for Assuring the Correct Operation of Software
1 Computer-Assisted Theorem Proving for Assuring the Correct Operation of Software Amy Felty University of Ottawa Introduction to CSI5110 2 The General Problem From Evan I. Schwartz, Trust Me, I m Your
The ConTract Model. Helmut Wächter, Andreas Reuter. November 9, 1999
The ConTract Model Helmut Wächter, Andreas Reuter November 9, 1999 Overview In Ahmed K. Elmagarmid: Database Transaction Models for Advanced Applications First in Andreas Reuter: ConTracts: A Means for
Pluggable Type Systems. Gilad Bracha
Pluggable Type Systems Gilad Bracha The Paradox of Type Systems Type systems help reliability and security by mechanically proving program properties Type systems hurt reliability and security by making
Chapter 1 Fundamentals of Java Programming
Chapter 1 Fundamentals of Java Programming Computers and Computer Programming Writing and Executing a Java Program Elements of a Java Program Features of Java Accessing the Classes and Class Members The
Overview. Elements of Programming Languages. Advanced constructs. Motivating inner class example
Overview Elements of Programming Languages Lecture 12: Object-oriented functional programming James Cheney University of Edinburgh November 6, 2015 We ve now covered: basics of functional and imperative
Oracle Solaris Security: Mitigate Risk by Isolating Users, Applications, and Data
Oracle Solaris Security: Mitigate Risk by Isolating Users, Applications, and Data Will Fiveash presenter, Darren Moffat author Staff Engineer Solaris Kerberos Development Safe Harbor Statement The following
The Road from Software Testing to Theorem Proving
The Road from Software Testing to Theorem Proving A Short Compendium of my Favorite Software Verification Techniques Frédéric Painchaud DRDC Valcartier / Robustness and Software Analysis Group December
Datatype-generic data migrations
Datatype-generic data migrations IFIP WG 21 meeting #73, Lökeberg, Sweden Andres Löh August 31, 2015 The Haskell Consultants Motivation Datatypes evolve Motivation Datatypes evolve Example: data Person
Formal Engineering for Industrial Software Development
Shaoying Liu Formal Engineering for Industrial Software Development Using the SOFL Method With 90 Figures and 30 Tables Springer Contents Introduction 1 1.1 Software Life Cycle... 2 1.2 The Problem 4 1.3
Lecture 13 of 41. More Propositional and Predicate Logic
Lecture 13 of 41 More Propositional and Predicate Logic Monday, 20 September 2004 William H. Hsu, KSU http://www.kddresearch.org http://www.cis.ksu.edu/~bhsu Reading: Sections 8.1-8.3, Russell and Norvig
Static Analysis and Validation of Composite Behaviors in Composable Behavior Technology
Static Analysis and Validation of Composite Behaviors in Composable Behavior Technology Jackie Zheqing Zhang Bill Hopkinson, Ph.D. 12479 Research Parkway Orlando, FL 32826-3248 407-207-0976 [email protected],
Termination Checking: Comparing Structural Recursion and Sized Types by Examples
Termination Checking: Comparing Structural Recursion and Sized Types by Examples David Thibodeau Decemer 3, 2011 Abstract Termination is an important property for programs and is necessary for formal proofs
The Classes P and NP
The Classes P and NP We now shift gears slightly and restrict our attention to the examination of two families of problems which are very important to computer scientists. These families constitute the
Technical Brief Distributed Trusted Computing
Technical Brief Distributed Trusted Computing Josh Wood Look inside to learn about Distributed Trusted Computing in Tectonic Enterprise, an industry-first set of technologies that cryptographically verify,
CS 356 Lecture 28 Internet Authentication. Spring 2013
CS 356 Lecture 28 Internet Authentication Spring 2013 Review Chapter 1: Basic Concepts and Terminology Chapter 2: Basic Cryptographic Tools Chapter 3 User Authentication Chapter 4 Access Control Lists
Lecture 9. Semantic Analysis Scoping and Symbol Table
Lecture 9. Semantic Analysis Scoping and Symbol Table Wei Le 2015.10 Outline Semantic analysis Scoping The Role of Symbol Table Implementing a Symbol Table Semantic Analysis Parser builds abstract syntax
Security challenges for internet technologies on mobile devices
Security challenges for internet technologies on mobile devices - Geir Olsen [[email protected]], Senior Program Manager for Security Windows Mobile, Microsoft Corp. - Anil Dhawan [[email protected]],
Android Developer Fundamental 1
Android Developer Fundamental 1 I. Why Learn Android? Technology for life. Deep interaction with our daily life. Mobile, Simple & Practical. Biggest user base (see statistics) Open Source, Control & Flexibility
Acronym Term Description
This glossary contains definitions of terms created by TCG, or terms that have a particular meaning in trusted computing, or terms that cause particular confusion in trusted computing. Acronym Term Description
The programming language C. sws1 1
The programming language C sws1 1 The programming language C invented by Dennis Ritchie in early 1970s who used it to write the first Hello World program C was used to write UNIX Standardised as K&C (Kernighan
Static vs. Dynamic. Lecture 10: Static Semantics Overview 1. Typical Semantic Errors: Java, C++ Typical Tasks of the Semantic Analyzer
Lecture 10: Static Semantics Overview 1 Lexical analysis Produces tokens Detects & eliminates illegal tokens Parsing Produces trees Detects & eliminates ill-formed parse trees Static semantic analysis
To Java SE 8, and Beyond (Plan B)
11-12-13 To Java SE 8, and Beyond (Plan B) Francisco Morero Peyrona EMEA Java Community Leader 8 9...2012 2020? Priorities for the Java Platforms Grow Developer Base Grow Adoption
Secure cloud access system using JAR ABSTRACT:
Secure cloud access system using JAR ABSTRACT: Cloud computing enables highly scalable services to be easily consumed over the Internet on an as-needed basis. A major feature of the cloud services is that
Object-Oriented Software Specification in Programming Language Design and Implementation
Object-Oriented Software Specification in Programming Language Design and Implementation Barrett R. Bryant and Viswanathan Vaidyanathan Department of Computer and Information Sciences University of Alabama
Idris, a General Purpose Dependently Typed Programming Language: Design and Implementation
Under consideration for publication in J. Functional Programming 1 Idris, a General Purpose Dependently Typed Programming Language: Design and Implementation EDWIN BRADY School of Computer Science, University
Lecture 18-19 Data Types and Types of a Language
Lecture 18-19 Data Types and Types of a Language April 29, 2014 Data Types and Types of a Language Data, Data Types and Types Type: Generalities Type Systems and Type Safety Type Equivalence, Coercion
Monitoring Metric First-order Temporal Properties
Monitoring Metric First-order Temporal Properties DAVID BASIN, FELIX KLAEDTKE, SAMUEL MÜLLER, and EUGEN ZĂLINESCU, ETH Zurich Runtime monitoring is a general approach to verifying system properties at
Specification and Analysis of Contracts Lecture 1 Introduction
Specification and Analysis of Contracts Lecture 1 Introduction Gerardo Schneider [email protected] http://folk.uio.no/gerardo/ Department of Informatics, University of Oslo SEFM School, Oct. 27 - Nov.
Computer Programming I
Computer Programming I COP 2210 Syllabus Spring Semester 2012 Instructor: Greg Shaw Office: ECS 313 (Engineering and Computer Science Bldg) Office Hours: Tuesday: 2:50 4:50, 7:45 8:30 Thursday: 2:50 4:50,
Deterministic Discrete Modeling
Deterministic Discrete Modeling Formal Semantics of Firewalls in Isabelle/HOL Cornelius Diekmann, M.Sc. Dr. Heiko Niedermayer Prof. Dr.-Ing. Georg Carle Lehrstuhl für Netzarchitekturen und Netzdienste
Bindings, mobility of bindings, and the -quantifier
ICMS, 26 May 2007 1/17 Bindings, mobility of bindings, and the -quantifier Dale Miller, INRIA-Saclay and LIX, École Polytechnique This talk is based on papers with Tiu in LICS2003 & ACM ToCL, and experience
Web Presentation Layer Architecture
Chapter 4 Web Presentation Layer Architecture In this chapter we provide a discussion of important current approaches to web interface programming based on the Model 2 architecture [59]. From the results
THE IMPACT OF INHERITANCE ON SECURITY IN OBJECT-ORIENTED DATABASE SYSTEMS
THE IMPACT OF INHERITANCE ON SECURITY IN OBJECT-ORIENTED DATABASE SYSTEMS David L. Spooner Computer Science Department Rensselaer Polytechnic Institute Troy, New York 12180 The object-oriented programming
Programming and Software Development CTAG Alignments
Programming and Software Development CTAG Alignments This document contains information about four Career-Technical Articulation Numbers (CTANs) for Programming and Software Development Career-Technical
Chapter 15 Functional Programming Languages
Chapter 15 Functional Programming Languages Introduction - The design of the imperative languages is based directly on the von Neumann architecture Efficiency (at least at first) is the primary concern,
Boogie: A Modular Reusable Verifier for Object-Oriented Programs
Boogie: A Modular Reusable Verifier for Object-Oriented Programs M. Barnett, B.E. Chang, R. DeLine, B. Jacobs, K.R.M. Leino Lorenzo Baesso ETH Zurich Motivation Abstract Domains Modular Architecture Automatic
FROM SAFETY TO SECURITY SOFTWARE ASSESSMENTS AND GUARANTEES FLORENT KIRCHNER (LIST)
FROM SAFETY TO SECURITY SOFTWARE ASSESSMENTS AND GUARANTEES FLORENT KIRCHNER (LIST) M loc 12 ONBOARD SOFTWARE SIZE 10 Volt (2011) F-35 (2012) 8 6 787 (2010) F-35 (2010) 4 2 F-22 (2005) 0 WHY DO WE TRUST
A Static Analyzer for Large Safety-Critical Software. Considered Programs and Semantics. Automatic Program Verification by Abstract Interpretation
PLDI 03 A Static Analyzer for Large Safety-Critical Software B. Blanchet, P. Cousot, R. Cousot, J. Feret L. Mauborgne, A. Miné, D. Monniaux,. Rival CNRS École normale supérieure École polytechnique Paris
Java Application Developer Certificate Program Competencies
Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle
Quotes from Object-Oriented Software Construction
Quotes from Object-Oriented Software Construction Bertrand Meyer Prentice-Hall, 1988 Preface, p. xiv We study the object-oriented approach as a set of principles, methods and tools which can be instrumental
Software Architecture
Cairo University Faculty of Computers and Information Computer Science Department Premasters Studies Software Architecture Report on Software Product Line Submitted to: Dr. Hany Ammar Submitted by: Hadeel
InvGen: An Efficient Invariant Generator
InvGen: An Efficient Invariant Generator Ashutosh Gupta and Andrey Rybalchenko Max Planck Institute for Software Systems (MPI-SWS) Abstract. In this paper we present InvGen, an automatic linear arithmetic
Programming Languages Featherweight Java David Walker
Programming Languages Featherweight Java David Walker Overview Featherweight Java (FJ), a minimal Javalike language. Models inheritance and subtyping. Immutable objects: no mutation of fields. Trivialized
core. Volume I - Fundamentals Seventh Edition Sun Microsystems Press A Prentice Hall Title ULB Darmstadt
core. 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Volume I - Fundamentals Seventh Edition CAY S. HORSTMANN GARY
Stack Allocation. Run-Time Data Structures. Static Structures
Run-Time Data Structures Stack Allocation Static Structures For static structures, a fixed address is used throughout execution. This is the oldest and simplest memory organization. In current compilers,
