• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

Ur: statically-typed metaprogramming with type-level record computation (2010)

by A J Chlipala
Venue:In PLDI
Add To MetaCart

Tools

Sorted by:
Results 1 - 9 of 9

Languages, Theory

by Gérard Boudol, Inria Sophia, Zhengqin Luo, Inria Sophia, Tamara Rezk, Inria Sophia, Manuel Serrano
"... We propose a small-step operational semantics to support reasoning about web applications written in the multi-tier language HOP 1. The semantics covers both server side and client side computations, as well as their interactions, and includes creation of web services, distributed client-server comm ..."
Abstract - Add to MetaCart
We propose a small-step operational semantics to support reasoning about web applications written in the multi-tier language HOP 1. The semantics covers both server side and client side computations, as well as their interactions, and includes creation of web services, distributed client-server communications, concurrent evaluation of service requests at server side, elaboration of HTML documents, DOM operations, evaluation of script nodes in HTML documents and actions from HTML pages at client side. Categories and Subject Descriptors D.3.2 [Programming

Mechanical verification General Terms

by Avik Chaudhuri, Jeffrey S. Foster
"... Many of today’s web applications are built on frameworks that include sophisticated defenses against malicious adversaries. However, mistakes in the way developers deploy those defenses could leave applications open to attack. To address this issue, we introduce Rubyx, a symbolic executor that we us ..."
Abstract - Add to MetaCart
Many of today’s web applications are built on frameworks that include sophisticated defenses against malicious adversaries. However, mistakes in the way developers deploy those defenses could leave applications open to attack. To address this issue, we introduce Rubyx, a symbolic executor that we use to analyze Ruby-on-Rails web applications for security vulnerabilities. Rubyx specifications can easily be adapted to a variety of properties, since they are built from general assertions, assumptions, and object invariants. We show how to write Rubyx specifications to detect susceptibility to cross-site scripting and cross-site request forgery, insufficient authentication, leaks of secret information, insufficient access control, as well as application-specific security properties. We used Rubyx to check seven web applications from various sources against our specifications. We found many vulnerabilities, and each application was subject to at least one critical attack. Encouragingly, we also found that it was relatively easy to fix most vulnerabilities, and that Rubyx showed the absence of attacks after our fixes. Our results suggest that Rubyx is a promising new way to discover security vulnerabilities in Ruby-on-Rails web applications.

Julien Cretin

by Brent A. Yorgey, Stephanie Weirich, Simon Peyton Jones, Dimitrios Vytiniotis, José Pedro Magalhães
"... Static type systems strive to be richly expressive while still being simple enough for programmers to use. We describe an experiment that enriches Haskell’s kind system with two features promoted from its type system: data types and polymorphism. The new system has a very good power-to-weight ratio: ..."
Abstract - Add to MetaCart
Static type systems strive to be richly expressive while still being simple enough for programmers to use. We describe an experiment that enriches Haskell’s kind system with two features promoted from its type system: data types and polymorphism. The new system has a very good power-to-weight ratio: it offers a significant improvement in expressiveness, but, by re-using concepts that programmers are already familiar with, the system is easy to understand and implement. Categories and Subject Descriptors D.3.3 [Language Constructs and Features]: Data types and structures, Polymorphism; F.3.3 [Studies of Program Constructs]: Type structure

Marco: Safe, Expressive Macros for Any Language ⋆

by Byeongcheol Lee, Robert Grimm, Martin Hirzel, Kathryn S. Mckinley
"... Abstract. Macros improve expressiveness, concision, abstraction, and language interoperability without changing the programming language itself. They are indispensable for building increasingly prevalent multilingual applications. Unfortunately, existing macro systems are wellencapsulated but unsafe ..."
Abstract - Add to MetaCart
Abstract. Macros improve expressiveness, concision, abstraction, and language interoperability without changing the programming language itself. They are indispensable for building increasingly prevalent multilingual applications. Unfortunately, existing macro systems are wellencapsulated but unsafe (e.g., the C preprocessor) or are safe but tightlyintegrated with the language implementation (e.g., Scheme macros). This paper introduces Marco, the first macro system that seeks both encapsulation and safety. Marco is based on the observation that the macro system need not know all the syntactic and semantic rules of the target language but must only directly enforce some rules, such as variable name binding. Using this observation, Marco off-loads most rule checking to unmodified target-language compilers and interpreters and thus becomes language-scalable. We describe the Marco language, its languageindependent safety analysis, and how it uses two example target-language analysis plug-ins, one for C++ and one for SQL. This approach opens the door to safe and expressive macros for any language. 1

Author manuscript, published in "39th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages- POPL'12 (2012)" Self-Certification Bootstrapping Certified Typecheckers in F ⋆ with Coq

by Pierre-yves Strub, Nikhil Swamy, Cédric Fournet, Juan Chen , 2011
"... Well-established dependently-typed languages like Agda and Coq provide reliable ways to build and check formal proofs. Several other dependently-typed languages such as Aura, ATS, Cayenne, Epigram, F ⋆ , F7, Fine, Guru, PCML5, and Ur also explore reliable ways to develop and verify programs. All the ..."
Abstract - Add to MetaCart
Well-established dependently-typed languages like Agda and Coq provide reliable ways to build and check formal proofs. Several other dependently-typed languages such as Aura, ATS, Cayenne, Epigram, F ⋆ , F7, Fine, Guru, PCML5, and Ur also explore reliable ways to develop and verify programs. All these languages shine in their own regard, but their implementations do not themselves enjoy the degree of safety provided by machine-checked verification. We propose a general technique called self-certification that allows a typechecker for a suitably expressive language to be certified for correctness. We have implemented this technique for F ⋆ , a dependently typed language on the.NET platform. Self-certification involves implementing a typechecker for F ⋆ in F ⋆ , while using all the conveniences F ⋆ provides for the compiler-writer (e.g., partiality, effects, implicit conversions, proof automation, libraries). This

Language and Tool Support for Multilingual Programs

by Byeongcheol Lee , 2011
"... ..."
Abstract - Add to MetaCart
Abstract not found

Strongly-Typed Language Support for Internet- Scale Information Sources

by Don Syme, Keith Battocchi, Kenji Takeda, Donna Malayeri, Jomo Fisher, Tao Liu, Brian Mcnamara, Daniel Quirk, Matteo Taveggia, Wonseok Chae, Uladzimir Matsveyeu, Tomas Petricek
"... Abstract. A growing trend in both the theory and practice of programming is the interaction between programming and rich information spaces. From databases to web services to the semantic web to cloud-based data, the need to integrate programming with heterogeneous, connected, richly structured, str ..."
Abstract - Add to MetaCart
Abstract. A growing trend in both the theory and practice of programming is the interaction between programming and rich information spaces. From databases to web services to the semantic web to cloud-based data, the need to integrate programming with heterogeneous, connected, richly structured, streaming and evolving information sources is ever-increasing. Most modern applications incorporate one or more external information sources as integral components. Providing strongly typed access to these sources is a key consideration for strongly-typed programming languages, to insure low impedance mismatch in information access. At this scale, information integration strategies based on library design and code generation are manual, clumsy, and do not handle the internet-scale information sources now encountered in enterprise, web and cloud environments. In this report we describe the design and implementation of the type provider mechanism in F # 3.0 and its applications to typed programming with web ontologies, web-services, systems management information, database mappings, data markets, content management systems, economic data and hosted scripting. Type soundness becomes relative to the soundness of the type providers and the schema change in information sources, but the role of types in information-rich programming tasks is massively expanded, especially through tooling that benefits from rich types in explorative programming. 1

The essence of language-integrated query

by James Cheney, Sam Lindley, Philip Wadler
"... Language-integrated query is receiving renewed attention, in part because of its support through Microsoft’s LINQ framework. We present a simple theory of language-integrated query based on quotation and normalisation of quoted terms. Our technique supports abstraction over queries, dynamic generati ..."
Abstract - Add to MetaCart
Language-integrated query is receiving renewed attention, in part because of its support through Microsoft’s LINQ framework. We present a simple theory of language-integrated query based on quotation and normalisation of quoted terms. Our technique supports abstraction over queries, dynamic generation of queries, and queries with nested intermediate data. Higher-order features prove useful even for dynamic generation of first-order queries. We prove that normalisation always succeeds in translating any query of flat relation type to SQL. We present experimental results confirming our technique works, even in situations where Microsoft’s LINQ framework either fails to produce an SQL query or, in one case, produces an avalanche of SQL queries. 1.

Microsoft Research--Cambridge

by Stephanie Weirich, Brent A. Yorgey, Simon Peyton Jones, Dimitrios Vytiniotis, Stephanie Weirich, Brent A. Yorgey, Julien Cretin, Simon Peyton Jones, Dimitrios Vytiniotis, Jose P, Brent A. Yorgey, Stephanie Weirich, Julien Cretin, Simon Peyton Jones, Dimitrios Vytiniotis, José Pedro Magalhães
"... See next page for additional authors ..."
Abstract - Add to MetaCart
See next page for additional authors
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University