This document summarizes a lecture on modeling web applications. It discusses modeling web programs, software systems, and languages. It covers web abstractions like access control policies, data validation, workflow, AJAX, and search. It provides details on access control mechanisms, policies, representations, and rules. It also discusses data validation types and rules. Finally, it mentions workflow modeling for web applications.
The document describes the Blogs@Baruch platform, which has been active for 2.5 years and has 6000 users across 1200 sites. It receives high traffic and allows for open, scalable, and flexible blog sites. Key features include chronological posts with comments, media, categories, tags, pages, and RSS feeds. The platform supports various pedagogical models like close reading, content literacy, knowledge building, and writing to learn. It provides flexible design and is easy to set up by importing users and integrating media.
The history of programming languages shows a progressive development from low-level programming languages close to the machine, to high-level languages close to the problems being solved with software. Domain-specific languages take this a step further than general purpose programming languages by making assumptions about the class of applications for which the language is intended. Complete applications typically require programs in multiple (technical) domains, which can be catered for by separate domain-specific languages. While such separation of concerns is beneficial for domain expressivity, it often leads to loose coupling and lack of static verification. Hence, the design of individual DSLs needs to be complemented with their linguistic integration.
In this talk, I illustrate these ideas with the design of WebDSL, a domain-specific language for data centric web applications. WebDSL linguistically integrates the definition of data models, user interfaces, actions, access control rules, data validation rules, styling rules, and workflow definitions. While maintaining separation between these concerns through specialized sub-languages, linguistic integration ensures static consistency checking and correct code generation. The language allows developers to concentrate on the essential design of web applications, abstracting from accidental complexity, such as the details of data persistence. The combination of high-level and low-level constructs ensures high expressivity, while supporting customization to application requirements.
This document provides an overview of the third edition of the book "Investment Banking: The Dream Begins". The book has been restructured and divided into four parts, with part one introducing investment banking and discussing equity offerings and private equity. Part two covers financial statements, part three discusses valuation methods, and part four provides a step-by-step guide to valuation. The book aims to explain investment banking concepts in simple terms for those new to the field. It covers topics such as financial analysis, valuation tools, comparable company and deal analysis to help readers understand business valuation.
VBA (Visual Basic for Applications) is a widely used programming language in the banking industry that allows users to automate tasks and processes in Microsoft Excel. VBA is embedded in Excel and can also be used in other Microsoft applications like Access and PowerPoint. It is used across all departments in banks, from front office trading to middle and back office functions, to automate daily tasks that would otherwise be time-consuming if done manually. Having skills in VBA can provide advantages for one's career in the banking industry as it allows candidates to automate processes and demonstrate problem-solving abilities that make them stand out among competitors.
The document discusses domain specific languages (DSLs). It begins by introducing the speaker and their background. It then defines what a DSL is, including that it is a mini-language focused on solving problems in a specific domain. Examples of DSLs like SQL, regular expressions, and markup languages are provided. The document also discusses different types of DSLs and tools for creating them.
Python for Financial Data Analysis with pandasWes McKinney
This document discusses using Python and the pandas library for financial data analysis. It provides an overview of pandas, describing it as a tool that offers rich data structures and SQL-like functionality for working with time series and cross-sectional data. The document also outlines some key advantages of Python for financial data analysis tasks, such as its simple syntax, powerful built-in data types, and large standard library.
The document describes the Blogs@Baruch platform, which has been active for 2.5 years and has 6000 users across 1200 sites. It receives high traffic and allows for open, scalable, and flexible blog sites. Key features include chronological posts with comments, media, categories, tags, pages, and RSS feeds. The platform supports various pedagogical models like close reading, content literacy, knowledge building, and writing to learn. It provides flexible design and is easy to set up by importing users and integrating media.
The history of programming languages shows a progressive development from low-level programming languages close to the machine, to high-level languages close to the problems being solved with software. Domain-specific languages take this a step further than general purpose programming languages by making assumptions about the class of applications for which the language is intended. Complete applications typically require programs in multiple (technical) domains, which can be catered for by separate domain-specific languages. While such separation of concerns is beneficial for domain expressivity, it often leads to loose coupling and lack of static verification. Hence, the design of individual DSLs needs to be complemented with their linguistic integration.
In this talk, I illustrate these ideas with the design of WebDSL, a domain-specific language for data centric web applications. WebDSL linguistically integrates the definition of data models, user interfaces, actions, access control rules, data validation rules, styling rules, and workflow definitions. While maintaining separation between these concerns through specialized sub-languages, linguistic integration ensures static consistency checking and correct code generation. The language allows developers to concentrate on the essential design of web applications, abstracting from accidental complexity, such as the details of data persistence. The combination of high-level and low-level constructs ensures high expressivity, while supporting customization to application requirements.
This document provides an overview of the third edition of the book "Investment Banking: The Dream Begins". The book has been restructured and divided into four parts, with part one introducing investment banking and discussing equity offerings and private equity. Part two covers financial statements, part three discusses valuation methods, and part four provides a step-by-step guide to valuation. The book aims to explain investment banking concepts in simple terms for those new to the field. It covers topics such as financial analysis, valuation tools, comparable company and deal analysis to help readers understand business valuation.
VBA (Visual Basic for Applications) is a widely used programming language in the banking industry that allows users to automate tasks and processes in Microsoft Excel. VBA is embedded in Excel and can also be used in other Microsoft applications like Access and PowerPoint. It is used across all departments in banks, from front office trading to middle and back office functions, to automate daily tasks that would otherwise be time-consuming if done manually. Having skills in VBA can provide advantages for one's career in the banking industry as it allows candidates to automate processes and demonstrate problem-solving abilities that make them stand out among competitors.
The document discusses domain specific languages (DSLs). It begins by introducing the speaker and their background. It then defines what a DSL is, including that it is a mini-language focused on solving problems in a specific domain. Examples of DSLs like SQL, regular expressions, and markup languages are provided. The document also discusses different types of DSLs and tools for creating them.
Python for Financial Data Analysis with pandasWes McKinney
This document discusses using Python and the pandas library for financial data analysis. It provides an overview of pandas, describing it as a tool that offers rich data structures and SQL-like functionality for working with time series and cross-sectional data. The document also outlines some key advantages of Python for financial data analysis tasks, such as its simple syntax, powerful built-in data types, and large standard library.
Model-Driven Software Development - Web Abstractions 1Eelco Visser
The document discusses the WebDSL domain-specific language for developing web applications. It introduces key concepts of the WebDSL language like defining entity models, templates for displaying data, navigation between pages, and access control rules. The document provides examples of how these concepts are used in WebDSL to build features of a sample wiki application. It also outlines some directions for future work, like additional web abstractions, language implementation details, and language modeling techniques.
Aurynn Shaw
In this talk, we will cover Vertically Challenged, a plugin for repoze.who which utilizes the Postgres system roles for web application authorization.
We will be covering the underlying theory of Vertically Challenged, both in terms of benefits to your project, as well as the weaknesses of the concept, and how VC leverages database functionality to make your application easier to code and maintain.
We will also be covering how to design your database roles tree, how Vertically Challenged makes your roles tree available in the application layer, and how to integrate Vertically Challenged with repoze.who.
This document provides a summary of websites that Jax Wechsler worked on between 2007-2009. It lists each client, URL, launch date, key features, and comments for 14 different projects. The projects cover a wide range of clients and industries including events, non-profits, education, and magazines. Features included content management systems, blogs, forums, calendars, maps, videos, and galleries.
Mobile Development with uPortal and Infusioncolinbdclark
A half-day, code-oriented workshop teaching developers how to build mobile applications using Infusion and the mobile Fluid Skinning System. Includes advice on performance optimization and techniques for using the open Web to reach more users on more devices.
The document is an introduction to web terminology that provides definitions and examples. It begins with a brief history of the web from Web 1.0 to the current Web 2.0 and potential future Web 3.0. Key terms are then defined, such as HTML, CSS, blogs, CMS, wikis, podcasting, RSS feeds, tagging, and more. Examples and links are included to help explain each term. The document aims to help people learn the essential terminology used in web design and development.
Service Integration - A Web of Things PerspectiveSimon Mayer
The document discusses integrating data and services in the Web of Things from a representational state transfer (REST) perspective. It describes representing physical devices as web resources that can be accessed via HTTP requests and addressed with URIs. Properties and actions of devices are represented as addressable sub-resources that can be manipulated via RESTful operations. Semantic annotations like microformats are proposed to enable service discovery and facilitate mashing up IoT services. Several European Union-funded research projects are summarized that aim to develop open platforms and techniques for integrating smart devices and their data on the Web.
Talk i gave at Better Software on May 5th 2010, together with Fullo of Ideato.
It's about improving web applications speed. Based on Steve Souders work.
I'll be giving a newer version of the talk at PHP Day 2010
Also
http://www.ideato.it/
http://federico.galassi.net/
http://www.stevesouders.com/
http://www.bettersoftware.it/
http://www.phpday.it/
Follow me on Twitter
https://twitter.com/federicogalassi
An On-line Collaborative Data Management SystemCameron Kiddle
A presentation I prepared that was presented by Rob Simmonds at the Gateway Computing Environments 2010 Workshop in New Orleans on November 14, 2010. It provides an overview of a data management system that was developed for GeoChronos - an on-line collaborative platform for Earth observation scientists.
This document discusses current issues regarding semantic web technologies in Korea. It provides an overview of presentations and trend reports authored by Hanmin Jung from KISTI on topics related to semantic web from 2009 to 2010. It also describes KISTI's work modeling ontologies, the role of ontologies compared to legacy databases, and KISTI's involvement in linking open government and public data to expand the semantic web.
The document discusses how to write a scalable Symfony application in the cloud. It covers upgrading points like database connections, file uploads, session storage, local development, and deploying. Database connections should use a master-slave configuration. File uploads can use Amazon S3 for storage. Sessions can be stored in a database. Local development differs from production. Deploying can use SVN update or checkout with symlinking. Automation helps deployment.
Linked Data and the Semantic Web - Mimas SeminarAdrian Stevenson
Linked Data and the Semantic Web refer to publishing structured data on the web in a way that allows both humans and machines to access and connect related data more easily. The key aspects are using URIs to identify real-world things and linking those URIs to other relevant URIs so data from different sources about the same things can be connected. While progress has been made in publishing some government and cultural data as Linked Data, challenges remain around adoption, usability, sustainability and addressing concerns around data licensing and provenance for the Semantic Web vision to be fully realized.
Here are the key points about using content-based filtering techniques:
- Content-based filtering relies on analyzing the content or description of items to recommend items similar to what the user has liked in the past. It looks for patterns and regularities in item attributes/descriptions to distinguish highly rated items.
- The item content/descriptions are analyzed automatically by extracting information from sources like web pages, or entered manually from product databases.
- It focuses on objective attributes about items that can be extracted algorithmically, like text analysis of documents.
- However, personal preferences and what makes an item appealing are often subjective qualities not easily extracted algorithmically, like writing style or taste.
- So while content-based filtering can
Web 3.0 will bring more structure and connectivity to the web through semantic technologies. It will create a web where software agents can perform sophisticated tasks and content is interconnected. Key aspects of Web 3.0 include personalized and context-aware experiences, integration of data from various online and offline sources, and new ways of combining multimedia content and data for novel insights. Initiatives toward building Web 3.0 include projects that publish government and academic data as linked open data, technologies for identifying and linking multimedia fragments, and location-aware mobile applications that provide customized offers and information to users.
Slides about "Information and Data Extraction on the Web" for "Information management on the Web" course at DIA (Computer Science Department) of Roma Tre University
Semantic Technologies: Which Way Now? – UKOLN ResponseAdrian Stevenson
UKOLN response at Semantic Technologies: Which Way Now? at CETIS Semantic Web Working Group, University of Strathclyde, Glasgow, UK. 10th December 2009
OvertheAir 2010 html5 impact on application programmingTor Björn Minde
The document discusses emerging HTML5 communication technologies and their impact. It covers new technologies like WebSockets and EventSource that enable real-time bidirectional and server-sent events between web apps and servers. It argues this will influence native apps and lead to more interconnected, adaptive and synchronized web experiences across different screens.
HTML5 impact on application programmingEricsson Labs
The document discusses emerging HTML5 communication technologies and their impact. It covers new technologies like WebSockets, EventSource, and cross-origin XMLHttpRequest that enable real-time communication. It argues these technologies will influence native apps and lead to more interconnected, adaptive applications that can span devices and automatically synchronize data.
This document discusses syntactic editor services including formatting, syntax coloring, and syntactic completion. It describes how syntactic completion can be provided generically based on a syntax definition. The document also discusses how context-free grammars can be extended with templates to specify formatting layout when pretty-printing abstract syntax trees to text. Templates are used to insert whitespace, line breaks, and indentation to produce readable output.
More Related Content
Similar to Model-Driven Software Development - Web Abstractions 2
Model-Driven Software Development - Web Abstractions 1Eelco Visser
The document discusses the WebDSL domain-specific language for developing web applications. It introduces key concepts of the WebDSL language like defining entity models, templates for displaying data, navigation between pages, and access control rules. The document provides examples of how these concepts are used in WebDSL to build features of a sample wiki application. It also outlines some directions for future work, like additional web abstractions, language implementation details, and language modeling techniques.
Aurynn Shaw
In this talk, we will cover Vertically Challenged, a plugin for repoze.who which utilizes the Postgres system roles for web application authorization.
We will be covering the underlying theory of Vertically Challenged, both in terms of benefits to your project, as well as the weaknesses of the concept, and how VC leverages database functionality to make your application easier to code and maintain.
We will also be covering how to design your database roles tree, how Vertically Challenged makes your roles tree available in the application layer, and how to integrate Vertically Challenged with repoze.who.
This document provides a summary of websites that Jax Wechsler worked on between 2007-2009. It lists each client, URL, launch date, key features, and comments for 14 different projects. The projects cover a wide range of clients and industries including events, non-profits, education, and magazines. Features included content management systems, blogs, forums, calendars, maps, videos, and galleries.
Mobile Development with uPortal and Infusioncolinbdclark
A half-day, code-oriented workshop teaching developers how to build mobile applications using Infusion and the mobile Fluid Skinning System. Includes advice on performance optimization and techniques for using the open Web to reach more users on more devices.
The document is an introduction to web terminology that provides definitions and examples. It begins with a brief history of the web from Web 1.0 to the current Web 2.0 and potential future Web 3.0. Key terms are then defined, such as HTML, CSS, blogs, CMS, wikis, podcasting, RSS feeds, tagging, and more. Examples and links are included to help explain each term. The document aims to help people learn the essential terminology used in web design and development.
Service Integration - A Web of Things PerspectiveSimon Mayer
The document discusses integrating data and services in the Web of Things from a representational state transfer (REST) perspective. It describes representing physical devices as web resources that can be accessed via HTTP requests and addressed with URIs. Properties and actions of devices are represented as addressable sub-resources that can be manipulated via RESTful operations. Semantic annotations like microformats are proposed to enable service discovery and facilitate mashing up IoT services. Several European Union-funded research projects are summarized that aim to develop open platforms and techniques for integrating smart devices and their data on the Web.
Talk i gave at Better Software on May 5th 2010, together with Fullo of Ideato.
It's about improving web applications speed. Based on Steve Souders work.
I'll be giving a newer version of the talk at PHP Day 2010
Also
http://www.ideato.it/
http://federico.galassi.net/
http://www.stevesouders.com/
http://www.bettersoftware.it/
http://www.phpday.it/
Follow me on Twitter
https://twitter.com/federicogalassi
An On-line Collaborative Data Management SystemCameron Kiddle
A presentation I prepared that was presented by Rob Simmonds at the Gateway Computing Environments 2010 Workshop in New Orleans on November 14, 2010. It provides an overview of a data management system that was developed for GeoChronos - an on-line collaborative platform for Earth observation scientists.
This document discusses current issues regarding semantic web technologies in Korea. It provides an overview of presentations and trend reports authored by Hanmin Jung from KISTI on topics related to semantic web from 2009 to 2010. It also describes KISTI's work modeling ontologies, the role of ontologies compared to legacy databases, and KISTI's involvement in linking open government and public data to expand the semantic web.
The document discusses how to write a scalable Symfony application in the cloud. It covers upgrading points like database connections, file uploads, session storage, local development, and deploying. Database connections should use a master-slave configuration. File uploads can use Amazon S3 for storage. Sessions can be stored in a database. Local development differs from production. Deploying can use SVN update or checkout with symlinking. Automation helps deployment.
Linked Data and the Semantic Web - Mimas SeminarAdrian Stevenson
Linked Data and the Semantic Web refer to publishing structured data on the web in a way that allows both humans and machines to access and connect related data more easily. The key aspects are using URIs to identify real-world things and linking those URIs to other relevant URIs so data from different sources about the same things can be connected. While progress has been made in publishing some government and cultural data as Linked Data, challenges remain around adoption, usability, sustainability and addressing concerns around data licensing and provenance for the Semantic Web vision to be fully realized.
Here are the key points about using content-based filtering techniques:
- Content-based filtering relies on analyzing the content or description of items to recommend items similar to what the user has liked in the past. It looks for patterns and regularities in item attributes/descriptions to distinguish highly rated items.
- The item content/descriptions are analyzed automatically by extracting information from sources like web pages, or entered manually from product databases.
- It focuses on objective attributes about items that can be extracted algorithmically, like text analysis of documents.
- However, personal preferences and what makes an item appealing are often subjective qualities not easily extracted algorithmically, like writing style or taste.
- So while content-based filtering can
Web 3.0 will bring more structure and connectivity to the web through semantic technologies. It will create a web where software agents can perform sophisticated tasks and content is interconnected. Key aspects of Web 3.0 include personalized and context-aware experiences, integration of data from various online and offline sources, and new ways of combining multimedia content and data for novel insights. Initiatives toward building Web 3.0 include projects that publish government and academic data as linked open data, technologies for identifying and linking multimedia fragments, and location-aware mobile applications that provide customized offers and information to users.
Slides about "Information and Data Extraction on the Web" for "Information management on the Web" course at DIA (Computer Science Department) of Roma Tre University
Semantic Technologies: Which Way Now? – UKOLN ResponseAdrian Stevenson
UKOLN response at Semantic Technologies: Which Way Now? at CETIS Semantic Web Working Group, University of Strathclyde, Glasgow, UK. 10th December 2009
OvertheAir 2010 html5 impact on application programmingTor Björn Minde
The document discusses emerging HTML5 communication technologies and their impact. It covers new technologies like WebSockets and EventSource that enable real-time bidirectional and server-sent events between web apps and servers. It argues this will influence native apps and lead to more interconnected, adaptive and synchronized web experiences across different screens.
HTML5 impact on application programmingEricsson Labs
The document discusses emerging HTML5 communication technologies and their impact. It covers new technologies like WebSockets, EventSource, and cross-origin XMLHttpRequest that enable real-time communication. It argues these technologies will influence native apps and lead to more interconnected, adaptive applications that can span devices and automatically synchronize data.
Similar to Model-Driven Software Development - Web Abstractions 2 (20)
This document discusses syntactic editor services including formatting, syntax coloring, and syntactic completion. It describes how syntactic completion can be provided generically based on a syntax definition. The document also discusses how context-free grammars can be extended with templates to specify formatting layout when pretty-printing abstract syntax trees to text. Templates are used to insert whitespace, line breaks, and indentation to produce readable output.
This document provides an overview of parsing in compiler construction. It discusses context-free grammars and how they are used to generate sentences and parse trees through derivations. It also covers ambiguity that can arise from grammars and various grammar transformations used to eliminate ambiguity, including defining associativity and priority. The dangling else problem is presented as an example of an ambiguous grammar.
This document provides an overview of the Lecture 2 on Declarative Syntax Definition for the CS4200 Compiler Construction course. The lecture covers the specification of syntax definition from which parsers can be derived, the perspective on declarative syntax definition using SDF, and reading material on the SDF3 syntax definition formalism and papers on testing syntax definitions and declarative syntax. It also discusses what syntax is, both in linguistics and programming languages, and how programs can be described in terms of syntactic categories and language constructs. An example Tiger program for solving the n-queens problem is presented to illustrate syntactic categories in Tiger.
This document provides an overview of the CS4200 Compiler Construction course at TU Delft. It discusses the course organization, structure, and assessment. The course is split into two parts - CS4200-A which covers concepts and techniques through lectures, papers, and homework assignments, and CS4200-B which involves building a compiler for a subset of Java as a semester-long project. Students will use the Spoofax language workbench to implement their compiler and will submit assignments through a private GitLab repository.
A Direct Semantics of Declarative Disambiguation RulesEelco Visser
This document discusses research into providing a direct semantics for declarative disambiguation of expression grammars. It aims to define what disambiguation rules mean, ensure they are safe and complete, and provide an effective implementation strategy. The document outlines key research questions around the meaning, safety, completeness and coverage of disambiguation rules. It also presents contributions around using subtree exclusion patterns to define safe and complete disambiguation for classes of expression grammars, and implementing this in SDF3.
Declarative Type System Specification with StatixEelco Visser
In this talk I present the design of Statix, a new constraint-based language for the executable specification of type systems. Statix specifications consist of predicates that define the well-formedness of language constructs in terms of built-in and user-defined constraints. Statix has a declarative semantics that defines whether a model satisfies a constraint. The operational semantics of Statix is defined as a sound constraint solving algorithm that searches for a solution for a constraint. The aim of the design is that Statix users can ignore the execution order of constraint solving and think in terms of the declarative semantics.
A distinctive feature of Statix is its use of scope graphs, a language parametric framework for the representation and querying of the name binding facts in programs. Since types depend on name resolution and name resolution may depend on types, it is typically not possible to construct the entire scope graph of a program before type constraint resolution. In (algorithmic) type system specifications this leads to explicit staging of the construction and querying of the type environment (class table, symbol table). Statix automatically stages the construction of the scope graph of a program such that queries are never executed when their answers may be affected by future scope graph extension. In the talk, I will explain the design of Statix by means of examples.
https://eelcovisser.org/post/309/declarative-type-system-specification-with-statix
Compiler Construction | Lecture 17 | Beyond Compiler ConstructionEelco Visser
Compiler construction techniques are applied beyond general-purpose languages through domain-specific languages (DSLs). The document discusses several DSLs developed using Spoofax including:
- WebDSL for web programming with sub-languages for entities, queries, templates, and access control.
- IceDust for modeling information systems with derived values computed on-demand, incrementally, or eventually consistently.
- PixieDust for client-side web programming with views as derived values updated incrementally.
- PIE for defining software build pipelines as tasks with dynamic dependencies computed incrementally.
The document also outlines several research challenges in compiler construction like high-level declarative language definition, verification of
Domain Specific Languages for Parallel Graph AnalytiX (PGX)Eelco Visser
This document discusses domain-specific languages (DSLs) for parallel graph analytics using PGX. It describes how DSLs allow users to implement graph algorithms and queries using high-level languages that are then compiled and optimized to run efficiently on PGX. Examples of DSL optimizations like multi-source breadth-first search are provided. The document also outlines the extensible compiler architecture used for DSLs, which can generate code for different backends like shared memory or distributed memory.
Compiler Construction | Lecture 15 | Memory ManagementEelco Visser
The document discusses different memory management techniques:
1. Reference counting counts the number of pointers to each record and deallocates records with a count of 0.
2. Mark and sweep marks all reachable records from program roots and sweeps unmarked records, adding them to a free list.
3. Copying collection copies reachable records to a "to" space, allowing the original "from" space to be freed without fragmentation.
4. Generational collection focuses collection on younger object generations more frequently to improve efficiency.
Compiler Construction | Lecture 14 | InterpretersEelco Visser
This document summarizes a lecture on interpreters for programming languages. It discusses how operational semantics can be used to define the meaning of a program through state transitions in an interpreter. It provides examples of defining the semantics of a simple language using DynSem, a domain-specific language for specifying operational semantics. DynSem specifications can be compiled to interpreters that execute programs in the defined language.
Compiler Construction | Lecture 13 | Code GenerationEelco Visser
The document discusses code generation and optimization techniques, describing compilation schemas that define how language constructs are translated to target code patterns, and covers topics like ensuring correctness of generated code through type checking and verification of static constraints on the target format. It also provides examples of compilation schemas for Tiger language constructs like arithmetic expressions and control flow and discusses generating nested functions.
Compiler Construction | Lecture 12 | Virtual MachinesEelco Visser
The document discusses the architecture of the Java Virtual Machine (JVM). It describes how the JVM uses threads, a stack, heap, and method area. It explains JVM control flow through bytecode instructions like goto, and how the operand stack is used to perform operations and hold method arguments and return values.
Compiler Construction | Lecture 9 | Constraint ResolutionEelco Visser
This document provides an overview of constraint resolution in the context of a compiler construction lecture. It discusses unification, which is the basis for many type inference and constraint solving approaches. It also describes separating type checking into constraint generation and constraint solving, and introduces a constraint language that integrates name resolution into constraint resolution through scope graph constraints. Finally, it discusses papers on further developments with this approach, including addressing expressiveness and staging issues in type systems through the Statix DSL for defining type systems.
Compiler Construction | Lecture 8 | Type ConstraintsEelco Visser
This lecture covers type checking with constraints. It introduces the NaBL2 meta-language for writing type specifications as constraint generators that map a program to constraints. The constraints are then solved to determine if a program is well-typed. NaBL2 supports defining name binding and type structures through scope graphs and constraints over names, types, and scopes. Examples show type checking patterns in NaBL2 including variables, functions, records, and name spaces.
Compiler Construction | Lecture 7 | Type CheckingEelco Visser
This document summarizes a lecture on type checking. It discusses using constraints to separate the language-specific type checking rules from the language-independent solving algorithm. Constraint-based type checking collects constraints as it traverses the AST, then solves the constraints in any order. This allows type information to be learned gradually and avoids issues with computation order.
Compiler Construction | Lecture 6 | Introduction to Static AnalysisEelco Visser
Lecture introducing the need for static analysis in addition to parsing, the complications caused by names, and an introduction to name resolution with scope graphs
🔥🔥🔥🔥🔥🔥🔥🔥🔥
إضغ بين إيديكم من أقوى الملازم التي صممتها
ملزمة تشريح الجهاز الهيكلي (نظري 3)
💀💀💀💀💀💀💀💀💀💀
تتميز هذهِ الملزمة بعِدة مُميزات :
1- مُترجمة ترجمة تُناسب جميع المستويات
2- تحتوي على 78 رسم توضيحي لكل كلمة موجودة بالملزمة (لكل كلمة !!!!)
#فهم_ماكو_درخ
3- دقة الكتابة والصور عالية جداً جداً جداً
4- هُنالك بعض المعلومات تم توضيحها بشكل تفصيلي جداً (تُعتبر لدى الطالب أو الطالبة بإنها معلومات مُبهمة ومع ذلك تم توضيح هذهِ المعلومات المُبهمة بشكل تفصيلي جداً
5- الملزمة تشرح نفسها ب نفسها بس تكلك تعال اقراني
6- تحتوي الملزمة في اول سلايد على خارطة تتضمن جميع تفرُعات معلومات الجهاز الهيكلي المذكورة في هذهِ الملزمة
واخيراً هذهِ الملزمة حلالٌ عليكم وإتمنى منكم إن تدعولي بالخير والصحة والعافية فقط
كل التوفيق زملائي وزميلاتي ، زميلكم محمد الذهبي 💊💊
🔥🔥🔥🔥🔥🔥🔥🔥🔥
Level 3 NCEA - NZ: A Nation In the Making 1872 - 1900 SML.pptHenry Hollis
The History of NZ 1870-1900.
Making of a Nation.
From the NZ Wars to Liberals,
Richard Seddon, George Grey,
Social Laboratory, New Zealand,
Confiscations, Kotahitanga, Kingitanga, Parliament, Suffrage, Repudiation, Economic Change, Agriculture, Gold Mining, Timber, Flax, Sheep, Dairying,
Leveraging Generative AI to Drive Nonprofit InnovationTechSoup
In this webinar, participants learned how to utilize Generative AI to streamline operations and elevate member engagement. Amazon Web Service experts provided a customer specific use cases and dived into low/no-code tools that are quick and easy to deploy through Amazon Web Service (AWS.)
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptxEduSkills OECD
Iván Bornacelly, Policy Analyst at the OECD Centre for Skills, OECD, presents at the webinar 'Tackling job market gaps with a skills-first approach' on 12 June 2024
This presentation was provided by Racquel Jemison, Ph.D., Christina MacLaughlin, Ph.D., and Paulomi Majumder. Ph.D., all of the American Chemical Society, for the second session of NISO's 2024 Training Series "DEIA in the Scholarly Landscape." Session Two: 'Expanding Pathways to Publishing Careers,' was held June 13, 2024.
Chapter wise All Notes of First year Basic Civil Engineering.pptxDenish Jangid
Chapter wise All Notes of First year Basic Civil Engineering
Syllabus
Chapter-1
Introduction to objective, scope and outcome the subject
Chapter 2
Introduction: Scope and Specialization of Civil Engineering, Role of civil Engineer in Society, Impact of infrastructural development on economy of country.
Chapter 3
Surveying: Object Principles & Types of Surveying; Site Plans, Plans & Maps; Scales & Unit of different Measurements.
Linear Measurements: Instruments used. Linear Measurement by Tape, Ranging out Survey Lines and overcoming Obstructions; Measurements on sloping ground; Tape corrections, conventional symbols. Angular Measurements: Instruments used; Introduction to Compass Surveying, Bearings and Longitude & Latitude of a Line, Introduction to total station.
Levelling: Instrument used Object of levelling, Methods of levelling in brief, and Contour maps.
Chapter 4
Buildings: Selection of site for Buildings, Layout of Building Plan, Types of buildings, Plinth area, carpet area, floor space index, Introduction to building byelaws, concept of sun light & ventilation. Components of Buildings & their functions, Basic concept of R.C.C., Introduction to types of foundation
Chapter 5
Transportation: Introduction to Transportation Engineering; Traffic and Road Safety: Types and Characteristics of Various Modes of Transportation; Various Road Traffic Signs, Causes of Accidents and Road Safety Measures.
Chapter 6
Environmental Engineering: Environmental Pollution, Environmental Acts and Regulations, Functional Concepts of Ecology, Basics of Species, Biodiversity, Ecosystem, Hydrological Cycle; Chemical Cycles: Carbon, Nitrogen & Phosphorus; Energy Flow in Ecosystems.
Water Pollution: Water Quality standards, Introduction to Treatment & Disposal of Waste Water. Reuse and Saving of Water, Rain Water Harvesting. Solid Waste Management: Classification of Solid Waste, Collection, Transportation and Disposal of Solid. Recycling of Solid Waste: Energy Recovery, Sanitary Landfill, On-Site Sanitation. Air & Noise Pollution: Primary and Secondary air pollutants, Harmful effects of Air Pollution, Control of Air Pollution. . Noise Pollution Harmful Effects of noise pollution, control of noise pollution, Global warming & Climate Change, Ozone depletion, Greenhouse effect
Text Books:
1. Palancharmy, Basic Civil Engineering, McGraw Hill publishers.
2. Satheesh Gopi, Basic Civil Engineering, Pearson Publishers.
3. Ketki Rangwala Dalal, Essentials of Civil Engineering, Charotar Publishing House.
4. BCP, Surveying volume 1
This presentation was provided by Rebecca Benner, Ph.D., of the American Society of Anesthesiologists, for the second session of NISO's 2024 Training Series "DEIA in the Scholarly Landscape." Session Two: 'Expanding Pathways to Publishing Careers,' was held June 13, 2024.
How Barcodes Can Be Leveraged Within Odoo 17Celine George
In this presentation, we will explore how barcodes can be leveraged within Odoo 17 to streamline our manufacturing processes. We will cover the configuration steps, how to utilize barcodes in different manufacturing scenarios, and the overall benefits of implementing this technology.
Model-Driven Software Development - Web Abstractions 2
1. Web Abstractions 1I
access control policies, data validation, workflow, ajax, search
Lecture 4
Course IN4308
Eelco Visser
Master Computer Science
http://eelcovisser.org Delft University of Technology
Wednesday, March 10, 2010
2. Modeling
Modeling IDEs
Software Systems
Modeling Transforming
Web Programs Software Models
Implementing Software Language
Web Models Engineering Strategies
Modeling Make your own
Software Languages Software Languages
Wednesday, March 10, 2010
3. Web Abstractions
from a declarative point of view
(we’ll investigate underlying mechanisms later)
Wednesday, March 10, 2010
4. More Web Abstractions
- Access control policies
★ constraints over objects
★ role-based AC, discretionary AC
- Data validation
★ form validation
★ data integrity
- Workflow
- Search
- AJAX: accessing page fragments (templates)
Wednesday, March 10, 2010
5. Access Control
Danny M. Groenewegen, Eelco Visser. Declarative Access Control for WebDSL:
Combining Language Integration and Separation of Concerns. ICWE 2008: 175-188
Wednesday, March 10, 2010
6. Case 2: Access Control Policy for Conference
Papers
★ has authors
Authors
★ submit papers, read reviews
Reviewers
★ write review for paper & discuss papers
★ are anonymous (for authors)
Conflicts
★ author cannot be reviewer
★ reviewer not related to authors
Wednesday, March 10, 2010
8. WebDSL Access Control
Constraints over data model
- boolean expression over properties of objects
Rules restrict access to resources
- page, template, action
Infer restriction of navigation
- don’t show link to inaccessible page or forbidden
action
Wednesday, March 10, 2010
9. Principal
representation of principal
turn on access control
Wednesday, March 10, 2010
10. Access Control Rules
‘may access page f with
argument x if boolean
expression e is true’
Wednesday, March 10, 2010
11. Wiki Access Control Rules
‘anyone can view
existing pages, only
logged in users can
create pages’
‘only logged in users may edit pages’
Wednesday, March 10, 2010
17. Access Control Policies
Standard Policies
- Mandatory access control
- Discretionary access control
- Role-based access control
Mixing policies
- Role-based + discretionary access control
WebDSL
- No restrictions on access control policies
Wednesday, March 10, 2010
18. Encoding Access Control Policies
Rules
- Who may access which resources?
- Who can apply which actions?
Representation
- How are permissions stored?
Administration
- How can permissions be changed?
- Who can change permissions?
Wednesday, March 10, 2010
22. Mandatory Access Control
Security Labels
★ Classification label protects object
• Top Secret, Secret, Confidential, Unclassified
★ Clearance indicates access of subject
Confidentiality rules
★ Read-down: clearance should be higher than or
equal to classification document to read
★ Write-up: clearance is lower than or equal to
classification of document to write
Wednesday, March 10, 2010
29. Role-Based Access Control
Role: group of activities
- authorization assigned to roles
- users assigned to roles
- robust to organizational changes
Hierarchical roles
- least privilege: use minimal permissions for task
Separation of duties
- critical actions require coordination
Wednesday, March 10, 2010
33. Mixing Access Control Policies
Real policies
- Mix of DAC & RBAC
- AC rules are constraints over object graph
WebDSL
- No policies built-in
Wednesday, March 10, 2010
34. Case 2: Access Control Policy for Conference
Papers
★ has authors
Authors
★ submit papers, read reviews
Reviewers
★ write review for paper & discuss papers
★ are anonymous (for authors)
Conflicts
★ author cannot be reviewer
★ reviewer not related to authors
Wednesday, March 10, 2010
35. Data Validation
Danny M. Groenewegen, Eelco Visser. Integration of Data Validation
and User Interface Concerns in a DSL for Web Applications. SLE 2010
Wednesday, March 10, 2010
36. Data Validation
Check input & maintain data integrity
Types of validation
- Value well-formedness
- Data invariants
- Input assertions
- Action assertions
User interface integration
- Display errors
Wednesday, March 10, 2010
37. Validation Rules
data validation
form validation
action assertions messages
Wednesday, March 10, 2010
47. Workflow
Zef Hemel, Ruben Verhaaf, Eelco Visser. WebWorkFlow: An Object-Oriented
Workflow Modeling Language for Web Applications. MoDELS 2008: 113-127
Note: WebWorkFlow is not supported by current version of WebDSL
Wednesday, March 10, 2010
48. Workflow
Coordinating activities by participants
WebWorkFlow
- object-oriented workflow definition
- integrate all aspects of workflow
★ data
★ user interface
★ access control
★ control-flow
- abstractions on top of base WebDSL
Wednesday, March 10, 2010
59. Workflow Remarks
Recursive workflows (see paper)
Issue: user interface patterns for workflow
Is workflow an anti-pattern?
- is workflow good interaction design?
- determine order of user actions
- what are alternatives?
Wednesday, March 10, 2010
62. AJAX
Michel Weststrate. Abstractions for Asynchronous
User Interfaces in Web Applications.Master's thesis,
Delft University of Technology, 2009.
Wednesday, March 10, 2010
63. AJAX
Deliver page fragments, not just full pages
- Replace page elements by new fragments
- Templates are unit of replacement
Wednesday, March 10, 2010
64. placeholder
default view
Wednesday, March 10, 2010
66. Summary
Access control policies
★ constraints over objects
★ encoding of standard policies (DAC, RBAC)
Data validation
★ form validation & data integrity
Workflow
★ coordinating activities of multiple participants
Search based on data model annotations
AJAX: accessing page fragments (templates)
Wednesday, March 10, 2010
67. Schedule
Lab this week
★ WebDSL application
Cases
★ Case 2: web abstractions
★ Read: Declarative Access Control for WebDSL
★ Read: Integration of Data Validation and User
Interface Concerns
★ Read: WebWorkFlow
Next
★ Lecture 5: WebDSL implementation strategies
★ Lecture 6 & 7: modeling languages
Wednesday, March 10, 2010