VI Jornadas Sobre Programación Y Lenguajes PROLE'06

Total Page:16

File Type:pdf, Size:1020Kb

VI Jornadas Sobre Programación Y Lenguajes PROLE'06 VI Jornadas sobre Programacion´ y Lenguajes PROLE’06 Sitges, Barcelona 4-6 Octubre, 2006 Editores: Paqui Lucio Fernando Orejas ii Pr´ologo Las Jornadas sobre Programaci´ony Lenguajes (PROLE) se vienen consoli- dando como un marco propicio de reuni´on,debate y divulgaci´onpara los gru- pos espa˜nolesque investigan en temas relacionados con la programaci´ony los lenguajes de programaci´on.En este volumen se recopilan los art´ıculosaceptados para su presentaci´onen las Sextas Jornadas sobre Programaci´ony Lenguajes (PROLE’06) celebradas en Sitges (Barcelona) los dias 4, 5 y 6 de Octubre de 2006. Anteriormente tuvieron lugar en Almagro (2001), El Escorial (2002), Al- icante (2003), M´alaga(2004) y Granada (2005). La edici´onde PROLE’06, al igual que todas las ediciones previas, se organiza en paralelo, y compartiendo varios actos, con las Jornadas de Ingenier´ıa del Software y Bases de Datos (JISBD). Ambos eventos son organizados bajo los auspicios de SISTEDES (So- ciedad de Ingenier´ıa del Software y Tecnolog´ıas de Desarrollo de Software), sociedad constituida en Granada durante la celebraci´onde CEDI en Septiembre del 2005. Desde la edici´onde 2006, todas las personas inscritas en JISBD o PROLE ser´anmiembros de SISTEDES hasta la celebraci´onde las siguientes jornadas. Por ello, queremos expresar nuestro agradecimiento tanto a los or- ganizadores de las JISBD’06, en especial a Pere Botella, y a la direcci´onde SISTEDES. Todos los trabajos presentados fueron rigurosamente revisados por tres miembros del Comit´ede Programa y/o revisores adicionales, a todos los cuales queremos agradecer su inestimable ayuda. Los 24 trabajos aceptados, que este volumen recoge, son los formalmente aceptados por el Comit´ede Programa y se clasifican en cuatro categor´ıas diferentes: 12 son trabajos considerados en progreso, 4 son res´umesde trabajos recientemente publicados en alg´un foro in- ternacional de reconocido prestigio, 2 son demostraciones de sistemas y 6 son art´ıculossobre trabajo cient´ıficooriginal. Gracias tambi´en a todos los autores por participar en PROLE’06 y por el trabajo que realizan. El programa de PROLE’06 cuenta tambi´encon dos excelentes conferencias invitadas a cargo de Krzysztof R. Apt (Centrum voor Wiskunde en Informatica, Amsterdam) y Eelco Visser (Institute of Information and Computing Sciences, Utrecht). Gracias a ambos por aceptar amablemente nuestra invitaci´on. Los res´umenesde estas conferencias tambi´enhan sido incluidos en estas actas. Puede obtenerse informaci´on sobre PROLE a trav´es de la p´agina http://www.dsic.upv.es/users/elp/prole/, lo que debemos agradecer al grupo ELP de la Universidad Polit´ecnicade Valencia. Agradecemos tambi´en la ayuda recibida del Departament d’Universitats, Recerca i Societat de la Informaci´ode la Generalitat de Catalunya. Estas actas han sido generadas utilizando el soporte (basado en LaTeX) que proporciona ENTCS, revista electr´onica que acoger´a la edici´onde un volumen post-jornadas de trabajos originales. Gracias a ENTCS y, en especial, a Michael Mislove por su apoyo y amabilidad. 8 de Septiembre de 2006 Paqui Lucio Fernando Orejas iii Comit´ede Programa Presidenta: Paqui Lucio, Universidad del Pa´ıs Vasco Elvira Albert, Universidad Complutense de Madrid Jes´us Almendros, Universidad de Almer´ıa Mar´ıaAlpuente, Universidad Polit´ecnicade Valencia Jordi Cortadella, Universidad Polit´ecnicade Catalunya Ver´onicaDahl, Universidad Simon Fraser (Canada) Antonio J. Fern´andez,Universidad de M´alaga Victor Gul´ıas, Universidad de A Coru˜na Manuel Hermenegildo, Universidad Polit´ecnicade Madrid Francisco J. L´opez Fraguas, Universidad Complutense de Madrid Salvador Lucas, Universidad Polit´ecnicade Valencia Jos´eMerseguer, Universidad de Zaragoza Juan Jos´eMoreno Navarro, Universidad Polit´ecnicade Madrid Gin´esMoreno, Universidad de Castilla-La Mancha Marisa Navarro, Universidad del Pa´ıs Vasco Fernando Orejas, Universidad Polit´ecnicade Catalunya Ricardo Pe˜na,Universidad Complutense de Madrid Ernesto Pimentel, Universidad de M´alaga Isabel Pita, Universidad Complutense de Madrid Ambrosio Toval, Universidad de Murcia Germ´anVidal, Universidad Polit´ecnicade Valencia Revisores Javier Alvez´ Nima Kaviani Puri Arenas Montserrat Hermo Huguet Rafael Caballero Rold´an Javier Larrosa Francisco Dur´an Francisco Javier Lucas Mart´ınez Santiago Escobar Julio Mari˜no Jos´eLuis Fern´andezAlem´an Juan Miguel Molina Joxe Gaintzarain Ibarmia Fernando Molina Molina Emilio Gallego Arias Susana Mu˜nozHern´andez Elena G´omez-Mart´ınez Pawel Pietrzak Baohua Gu Daniel Romero iv ´Indice Conferencias Invitadas Program Transformation with Dynamic Rewrite Rules E.Visser ............................................................. 1 Infinite Qualitative Simulations by Means of Constraint Programming K. R. Apt (trabajo conjunto con S. Brand) . 3 Sesi´on1.- Sem´antica A Functorial Framework for Constraint Normal Logic Programming P. Lucio, F. Orejas, E. Pasarella, E. Pino . 5 Relating two semantic descriptions of functional logic languages F. J. L´opez-Fraguas, J. Rodr´ıguezHortal´a,J. S´anchez Hern´andez . 15 Towards a Set Oriented Calculus for Logic Programming R. Caballero, Y. Garc´ıa-Ruiz, F. S´aenz-P´erez ......................... 25 Sesi´on2.- Implementaci´on Optimizaci´onde las primitivas de reflexi´onofrecidas por los lenguajes din´amicos J. M. Redondo L´opez, F. Ort´ınSoler, J. M. Cueva Lovelle . 35 Formally Deriving a compiler for SAFE R.Pe˜na,C.Segura ................................................... 47 Sesi´on 3 .- An´alisisde Programas Towards a dependency pair framework for context-sensitive rewriting B. Alarc´on,R. Guti´errez,S. Lucas . 57 Term Dependence Graphs D.Cheda,J.Silva,G.Vidal .......................................... 67 Generation of Reduced Certificates in Abstraction-Carrying Code E. Albert, P. Arenas, G. Puebla, M. Hermenegildo . 77 Proving Termination of Context-Sensitive Rewriting with MU-TERM B. Alarc´on,R. Guti´errez,J. Iborra, S. Lucas . 87 v Sesi´on 4 .- Narrowing Elimination of Extra Variables in Functional Logic Programs J. de Dios Castro, F. J. L´opez-Fraguas . 99 Formal Properties of Needed Narrowing with Similarity Relations G.Moreno,V.Pascual ............................................... 115 A Proposal for the Cooperation of Solvers in Constraint Functional Logic Programming S. Est´evez-Mart´ın,A. J. Fern´andez,T. Hortal´a-Gonz´alez,M. Rodr´ıguez- Artalejo, F. S´aenz-P´erez, R. del Vado-V´ırseda . 131 Sesi´on 5.- Bases de Datos Towards a Constraint Deductive Database Language based on Hereditary Harrop Formulas S. Nieva, F. S´aenz-P´erez, J. S´anchez-Hern´andez . 147 XQuery within Logic Programming J. M. Almendros Jim´enez, A. Becerra-Ter´on,F. J. Enciso-Ba˜nos . 159 Sesi´on 6.- Verificaci´on Formal sequentialization of distributed systems via model rewriting M. Bertran, F. Babot, A. Climent . 169 The Maude-NRL Protocol Analyzer: A Rewriting-Based Inference System for Equational Cryptographic Reasoning S. Escobar, C. Meadows, J. Meseguer . 185 GVERDI-R A Tool for Repairing Faulty Web Sites M. Alpuente, D. Ballis, M. Falaschi, D. Romero . 195 Sesi´on7 .- Lenguajes Funcionales Dise˜no de un entorno integrado de desarrollo para NiMo S. Clerici, C. Zoltan, G. Prestigiacomo, J. Garc´ıa Sanjuli´an. 205 Three New Algorithmic Debugging Strategies J.Silva .............................................................. 215 Timed Concurrent Constraint Programming with Instantaneous Compu- tations M. Alpuente, B. Gramlich, A. Villanueva . 225 vi VoDKA: Developing a Video-on-Demand Server using Distributed Func- tional Programming V. Gul´ıas,C. Abalde, D. Cabrero, M. Barreiro . 235 Sesi´on 8 .- Transformaci´onde Programas Efficient Reductant Calculi by using Partial Evaluation Techniques with Thresholding P. Juli´anIranzo, G. Moreno Valverde, J. Penabad V´azquez. 245 Partial inversion of first-order functional programs J. M. Almendros Jim´enez,G.Vidal .................................. 261 Ensuring the Termination of Narrowing-Driven Partial Evaluation using Size-Change Graphs G. Arroyo, J. Guadalupe Ramos, J. Silva, G. Vidal . 271 vii PROLE 2006 Program Transformation with Dynamic Rewrite Rules Eelco Visser 1 Institute of Information and Computing Sciences, Utrecht University P.O. Box 80089, 3508 TB Utrecht, The Netherlands The area of program transformation is concerned with the manipulation of the source code of programs. Since textual transformations tend to be hard to get correct, transformations are usually carried out on structured representations of programs, such as abstract syntax trees. Term rewrite rules provide a good formalism for describing simple transformations on trees. The Stratego [1] program transformation language is based on term rewriting, but extends the formalism with programmmable rewriting strategies and scoped dynamic rewrite rules. A collection of useful rewrite rules for the abstract syntax of a programming language is usually non-terminating and non-confluent. For any particular transformation a choice needs to be made from the collection of rules and the order in which they are applied. Programmable rewriting strategies [4] are programs in a domain-specific strategy language that provides combinators for combining single rewrite rules into complex transformation algorithms. While strategies provide control over the application of rules, they do not solve the problem of context-sensitivity in program transformation. Programs contain many kinds of binding relations between declarations or definitions and uses of those definitions indicated by means of
Recommended publications
  • Ironpython in Action
    IronPytho IN ACTION Michael J. Foord Christian Muirhead FOREWORD BY JIM HUGUNIN MANNING IronPython in Action Download at Boykma.Com Licensed to Deborah Christiansen <[email protected]> Download at Boykma.Com Licensed to Deborah Christiansen <[email protected]> IronPython in Action MICHAEL J. FOORD CHRISTIAN MUIRHEAD MANNING Greenwich (74° w. long.) Download at Boykma.Com Licensed to Deborah Christiansen <[email protected]> For online information and ordering of this and other Manning books, please visit www.manning.com. The publisher offers discounts on this book when ordered in quantity. For more information, please contact Special Sales Department Manning Publications Co. Sound View Court 3B fax: (609) 877-8256 Greenwich, CT 06830 email: [email protected] ©2009 by Manning Publications Co. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by means electronic, mechanical, photocopying, or otherwise, without prior written permission of the publisher. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in the book, and Manning Publications was aware of a trademark claim, the designations have been printed in initial caps or all caps. Recognizing the importance of preserving what has been written, it is Manning’s policy to have the books we publish printed on acid-free paper, and we exert our best efforts to that end. Recognizing also our responsibility to conserve the resources of our planet, Manning books are printed on paper that is at least 15% recycled and processed without the use of elemental chlorine.
    [Show full text]
  • Working with Ironpython and WPF
    Working with IronPython and WPF Douglas Blank Bryn Mawr College Programming Paradigms Spring 2010 With thanks to: http://www.ironpython.info/ http://devhawk.net/ IronPython Demo with WPF >>> import clr >>> clr.AddReference("PresentationFramework") >>> from System.Windows import * >>> window = Window() >>> window.Title = "Hello" >>> window.Show() >>> button = Controls.Button() >>> button.Content = "Push Me" >>> panel = Controls.StackPanel() >>> window.Content = panel >>> panel.Children.Add(button) 0 >>> app = System.Windows.Application() >>> app.Run(window) XAML Example: Main.xaml <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns: x="http://schemas.microsoft.com/winfx/2006/xaml" Title="TestApp" Width="640" Height="480"> <StackPanel> <Label>Iron Python and WPF</Label> <ListBox Grid.Column="0" x:Name="listbox1" > <ListBox.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Path=title}" /> </DataTemplate> </ListBox.ItemTemplate> </ListBox> </StackPanel> </Window> IronPython + XAML import sys if 'win' in sys.platform: import pythoncom pythoncom.CoInitialize() import clr clr.AddReference("System.Xml") clr.AddReference("PresentationFramework") clr.AddReference("PresentationCore") from System.IO import StringReader from System.Xml import XmlReader from System.Windows.Markup import XamlReader, XamlWriter from System.Windows import Window, Application xaml = """<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Title="XamlReader Example" Width="300" Height="200"> <StackPanel Margin="5"> <Button
    [Show full text]
  • Concurrency Patterns for Easier Robotic Coordination
    Concurrency Patterns for Easier Robotic Coordination Andrey Rusakov∗ Jiwon Shin∗ Bertrand Meyer∗† ∗Chair of Software Engineering, Department of Computer Science, ETH Zurich,¨ Switzerland †Software Engineering Lab, Innopolis University, Kazan, Russia fandrey.rusakov, jiwon.shin, [email protected] Abstract— Software design patterns are reusable solutions to Guarded suspension – are chosen for their concurrent nature, commonly occurring problems in software development. Grow- applicability to robotic coordination, and evidence of use ing complexity of robotics software increases the importance of in existing robotics frameworks. The paper aims to help applying proper software engineering principles and methods such as design patterns to robotics. Concurrency design patterns programmers who are not yet experts in concurrency to are particularly interesting to robotics because robots often have identify and then to apply one of the common concurrency- many components that can operate in parallel. However, there based solutions for their applications on robotic coordination. has not yet been any established set of reusable concurrency The rest of the paper is organized as follows: After design patterns for robotics. For this purpose, we choose six presenting related work in Section II, it proceeds with a known concurrency patterns – Future, Periodic timer, Invoke later, Active object, Cooperative cancellation, and Guarded sus- general description of concurrency approach for robotics pension. We demonstrate how these patterns could be used for in Section III. Then the paper presents and describes in solving common robotic coordination tasks. We also discuss detail a number of concurrency patterns related to robotic advantages and disadvantages of the patterns and how existing coordination in Section IV.
    [Show full text]
  • The Evolution of Control Architectures Towards Next Generation
    Department of Electronic and Electrical Engineering University College London University of London T h e Ev o l u t io n o f C o n t r o l A rchitectures T o w a r d s N ext G e n e r a t io n N e t w o r k s By Christos Solomonides BEng(Hons), MRes(Distinction) 7 September 2001 A thesis submitted to the University o f London for the Ph.D. in Electronic and Electrical Engineering ProQuest Number: U643054 All rights reserved INFORMATION TO ALL USERS The quality of this reproduction is dependent upon the quality of the copy submitted. In the unlikely event that the author did not send a complete manuscript and there are missing pages, these will be noted. Also, if material had to be removed, a note will indicate the deletion. uest. ProQuest U643054 Published by ProQuest LLC(2016). Copyright of the Dissertation is held by the Author. All rights reserved. This work is protected against unauthorized copying under Title 17, United States Code. Microform Edition © ProQuest LLC. ProQuest LLC 789 East Eisenhower Parkway P.O. Box 1346 Ann Arbor, Ml 48106-1346 A b s t r a c t This thesis describes the evolution of control architectures and network intelligence towards next generation telecommunications networks. Network intelligence is a term given to the group of architectures that provide enhanced control services. Network intelligence is provided through the control plane, which is responsible for the establishment, operation and termination of calls and connections. The work focuses on examining the way in which network intelligence has been provided in the traditional telecommunications environment and in a converging environment.
    [Show full text]
  • Visual Studio 2010 Tools for Sharepoint Development
    Visual Studio 2010 for SharePoint Open XML and Content Controls COLUMNS Toolbox Visual Studio 2010 Tools for User Interfaces, Podcasts, Object-Relational Mappings SharePoint Development and More Steve Fox page 44 Scott Mitchell page 9 CLR Inside Out Profi ling the .NET Garbage- Collected Heap Subramanian Ramaswamy & Vance Morrison page 13 Event Tracing Event Tracing for Windows Basic Instincts Collection and Array Initializers in Visual Basic 2010 Generating Documents from SharePoint Using Open XML Adrian Spotty Bowles page 20 Content Controls Data Points Eric White page 52 Data Validation with Silverlight 3 and the DataForm John Papa page 30 Cutting Edge Data Binding in ASP.NET AJAX 4.0 Dino Esposito page 36 Patterns in Practice Functional Programming Core Instrumentation Events in Windows 7, Part 2 for Everyday .NET Developers MSDN Magazine Dr. Insung Park & Alex Bendetov page 60 Jeremy Miller page 68 Service Station Building RESTful Clients THIS MONTH at msdn.microsoft.com/magazine: Jon Flanders page 76 CONTRACT-FIRST WEB SERVICES: Schema-Based Development Foundations with Windows Communication Foundation Routers in the Service Bus Christian Weyer & Buddihke de Silva Juval Lowy page 82 TEST RUN: Partial Anitrandom String Testing Concurrent Affairs James McCaffrey Four Ways to Use the Concurrency TEAM SYSTEM: Customizing Work Items Runtime in Your C++ Projects Rick Molloy page 90 OCTOBER Brian A. Randell USABILITY IN PRACTICE: Getting Inside Your Users’ Heads 2009 Charles B. Kreitzberg & Ambrose Little Vol 24 No 10 Vol OCTOBER 2009 VOL 24 NO 10 OCTOBER 2009 VOLUME 24 NUMBER 10 LUCINDA ROWLEY Director EDITORIAL: [email protected] HOWARD DIERKING Editor-in-Chief WEB SITE MICHAEL RICHTER Webmaster CONTRIBUTING EDITORS Don Box, Keith Brown, Dino Esposito, Juval Lowy, Dr.
    [Show full text]
  • Pyrevit Documentation Release 4.7.0-Beta
    pyRevit Documentation Release 4.7.0-beta eirannejad May 15, 2019 Getting Started 1 How To Use This Documents3 2 Create Your First Command5 3 Anatomy of a pyRevit Script 7 3.1 Script Metadata Variables........................................7 3.2 pyrevit.script Module...........................................9 3.3 Appendix A: Builtin Parameters Provided by pyRevit Engine..................... 12 3.4 Appendix B: System Category Names.................................. 13 4 Effective Output/Input 19 4.1 Clickable Element Links......................................... 19 4.2 Tables................................................... 20 4.3 Code Output............................................... 21 4.4 Progress bars............................................... 21 4.5 Standard Prompts............................................. 22 4.6 Standard Dialogs............................................. 26 4.7 Base Forms................................................ 35 4.8 Graphs.................................................. 37 5 Keyboard Shortcuts 45 5.1 Shift-Click: Alternate/Config Script................................... 45 5.2 Ctrl-Click: Debug Mode......................................... 45 5.3 Alt-Click: Show Script file in Explorer................................. 46 5.4 Ctrl-Shift-Alt-Click: Reload Engine................................... 46 5.5 Shift-Win-Click: pyRevit Button Context Menu............................. 46 6 Extensions and Commmands 47 6.1 Why do I need an Extension....................................... 47 6.2 Extensions...............................................
    [Show full text]
  • Developers Toolkit Quickstart Guide
    Developers Toolkit QuickStart Guide Generic steps for all projects: Create a new project Import the Kratos_3.dll .NET assembly The Newtonsoft.Json.dll is also required Refer to the sample projects for the following steps Create a FactSetOnDemand object from the Kratos_3.RunTimePlatform namespace Set-up configuration data Create FactSet calls to retrieve data .NET Languages .NET language (C++/CLI, C#, Visual Basic, Java) Example Open Visual Studio Create a new project of the appropriate language type Add a reference to the Kratos_3 dll Configure the build to the appropriate architecture (x86 if using the 32-bit dll or x64 if using the 64-bit dll) Create a new code file (Refer to the sample projects for the following steps) Import the Kratos_3.RunTimePlatform namespace Create a FactSetOnDemand object Set-up configuration data Create FactSet calls to retrieve data IronPython For IronPython Put the Kratos_3.dll NET assembly somewhere your program will be able to reference it. Make sure your dll architecture matches your IronPython architecture. If you installed the 32-bit IronPython, use the x86 Kratos_3 dll. If you installed the 64-bit version of IronPython, use the x64 dll. Make a new Python file Import the clr module. (The steps below can be viewed in the IronPython sample program) Use the clr reference to load the Kratos_3 dll Import the Kratos_#.RunTimePlatform namespace Create a FactSetOnDemand object Set-up the configuration data Create FactSet calls to retrieve data To run an IronPython project Open the windows command console (not the IronPython console) Type: “ipy <path to python program>” FactSet Research Systems Inc.
    [Show full text]
  • Programming with Windows Forms
    A P P E N D I X A ■ ■ ■ Programming with Windows Forms Since the release of the .NET platform (circa 2001), the base class libraries have included a particular API named Windows Forms, represented primarily by the System.Windows.Forms.dll assembly. The Windows Forms toolkit provides the types necessary to build desktop graphical user interfaces (GUIs), create custom controls, manage resources (e.g., string tables and icons), and perform other desktop- centric programming tasks. In addition, a separate API named GDI+ (represented by the System.Drawing.dll assembly) provides additional types that allow programmers to generate 2D graphics, interact with networked printers, and manipulate image data. The Windows Forms (and GDI+) APIs remain alive and well within the .NET 4.0 platform, and they will exist within the base class library for quite some time (arguably forever). However, Microsoft has shipped a brand new GUI toolkit called Windows Presentation Foundation (WPF) since the release of .NET 3.0. As you saw in Chapters 27-31, WPF provides a massive amount of horsepower that you can use to build bleeding-edge user interfaces, and it has become the preferred desktop API for today’s .NET graphical user interfaces. The point of this appendix, however, is to provide a tour of the traditional Windows Forms API. One reason it is helpful to understand the original programming model: you can find many existing Windows Forms applications out there that will need to be maintained for some time to come. Also, many desktop GUIs simply might not require the horsepower offered by WPF.
    [Show full text]
  • Dipartimento Di Informatica E Scienze Dell'informazione
    Dipartimento di Informatica e • • Scienze dell'Informazione ••• • High performance implementation of Python for CLI/.NET with JIT compiler generation for dynamic languages. by Antonio Cuni Theses Series DISI-TH-2010-05 DISI, Universit`adi Genova v. Dodecaneso 35, 16146 Genova, Italy http://www.disi.unige.it/ Universit`adegli Studi di Genova Dipartimento di Informatica e Scienze dell'Informazione Dottorato di Ricerca in Informatica Ph.D. Thesis in Computer Science High performance implementation of Python for CLI/.NET with JIT compiler generation for dynamic languages. by Antonio Cuni July, 2010 Dottorato di Ricerca in Informatica Dipartimento di Informatica e Scienze dell'Informazione Universit`adegli Studi di Genova DISI, Univ. di Genova via Dodecaneso 35 I-16146 Genova, Italy http://www.disi.unige.it/ Ph.D. Thesis in Computer Science (S.S.D. INF/01) Submitted by Antonio Cuni DISI, Univ. di Genova [email protected] Date of submission: July 2010 Title: High performance implementation of Python for CLI/.NET with JIT compiler generator for dynamic languages. Advisor: Davide Ancona DISI, Univ. di Genova [email protected] Ext. Reviewers: Michael Leuschel STUPS Group, University of D¨usseldorf [email protected] Martin von L¨owis Hasso-Plattner-Institut [email protected] Abstract Python is a highly flexible and open source scripting language which has significantly grown in popularity in the last few years. However, all the existing implementations prevent programmers from developing very efficient code. This thesis describes a new and more efficient implementation of the language, obtained by developing new techniques and adapting old ones which have not yet been applied to Python.
    [Show full text]
  • ESWP3 - Embedded Software Principles, Patterns and Procedures Release 1.0
    ESWP3 - Embedded Software Principles, Patterns and Procedures Release 1.0 ESWP3 contributors September 24, 2015 Contents 1 Human Relation Patterns 3 1.1 Categorization of human relation patterns................................3 2 Principles 5 2.1 Categorization of principles.......................................5 2.2 All principles in alphabetic order....................................5 3 Build Patterns 7 3.1 Categorization of build patterns.....................................7 3.2 All build patterns in alphabetic order..................................8 4 Release Antipatterns 11 5 Requirement Patterns 13 5.1 Standardized Textual Specification Pattern............................... 13 5.2 Perform Manual Review Pattern..................................... 13 6 Design Patterns 15 6.1 Categorization of “design” patterns................................... 15 6.2 Pattern Selection Procedure....................................... 21 6.3 Legend to the design pattern sections.................................. 21 6.4 All design patterns in alphabetic order.................................. 21 7 Idioms in C 29 7.1 Classification of idioms......................................... 29 7.2 Add the name space........................................... 29 7.3 Constants to the left........................................... 29 7.4 Magic numbers as variables....................................... 30 7.5 Namend parameters........................................... 30 7.6 Sizeof to variables............................................ 30 8 Unit Test Patterns
    [Show full text]
  • NET Hacking & In-Memory Malware
    .NET Hacking & In-Memory Malware Shawn Edwards Shawn Edwards Cyber Adversarial Engineer The MITRE Corporation Hacker Maker Learner Take stuff apart. Change it. Put Motivated by an incessant Devoted to a continuous effort it back together. desire to create and craft. of learning and sharing knowledge. Red teamer. Adversary Numerous personal and emulator. professional projects. B.S. in Computer Science. Adversary Emulation @ MITRE • Red teaming, but specific threat actors • Use open-source knowledge of their TTPs to emulate their behavior and operations • Ensures techniques are accurate to real world • ATT&CK (Adversarial Tactics Techniques and Common Knowledge) • Public wiki of real-world adversary TTPs, software, and groups • CALDERA • Modular Automated Adversary Emulation framework Adversary Emulation @ MITRE • ATT&CK • Adversarial Tactics Techniques and Common Knowledge • Public wiki of real-world adversary TTPs, software, and groups • Lets blue team and red team speak in the same language • CALDERA • Modular Automated Adversary Emulation framework • Adversary Mode: • AI-driven “red team in a box” • Atomic Mode: • Define Adversaries, give them abilities, run operations. Customize everything at will. In-Memory Malware • Is not new • Process Injection has been around for a long time • Typically thought of as advanced tradecraft; not really • Surged in popularity recently • Made easier by open-source or commercial red team tools • For this talk, only discuss Windows malware • When relevant, will include the ATT&CK Technique ID In-Memory
    [Show full text]
  • NET Framework
    .NET Framework #.net 1 1: .NET Framework 2 2 2 . 2 Compact Framework 2 3 Examples 3 C # Hello World 3 Visual Basic .NET Hello World 3 Hello World in F # 4 C ++ / CLI Hello World 4 PowerShell Hello World 4 Nemerle 4 Oxygene 4 Boo Hello World 5 Hello World in Python (IronPython) 5 IL 5 2: .NET 6 6 6 Examples 6 6 3: .NET JSON Newtonsoft.Json 7 7 Examples 7 JSON 7 JSON . 7 4: ADO.NET 8 8 8 Examples 8 SQL 8 - SQL 8 ADO.NET 9 . 10 5: ASP.NET ASP.NET MVC 11 11 Examples 11 11 6: C # SHA1 13 13 Examples 13 # SHA1 13 7: C # SHA1 14 14 Examples 14 # SHA1 14 # 14 8: CLR 15 Examples 15 15 9: DateTime 16 Examples 16 ParseExact 16 TryParse 17 TryParseExact 18 10: HTTP 19 Examples 19 HTTP (HttpListener) 19 HTTP (ASP.NET ) 21 11: HTTP 23 23 Examples 23 System.Net.HttpWebRequest GET 23 System.Net.WebClient GET 23 System.Net.HttpClient GET 24 System.Net.HttpWebRequest POST 24 System.Net.WebClient POST 24 System.Net.HttpClient POST 25 System.Net.Http.HttpClient HTTP 25 12: JIT 27 27 27 Examples 27 27 13: JSON 30 30 Examples 30 System.Web.Script.Serialization.JavaScriptSerializer 30 Json.NET 30 Json.NET 30 - Newtonsoft.Json 31 31 JsonSerializerSettings Json.NET 32 14: LINQ 33 33 33 39 39 ToArray() ToList() ? 39 Examples 39 () 40 () 40 40 OrderByDescending 40 41 41 41 41 () 41 42 42 LastOrDefault 42 SingleOrDefault 42 FirstOrDefault 43 43 44 SelectMany () 44 45 45 45 SequenceEqual 45 46 OfType 46 46 46 46 47 47 GroupBy 47 ToDictionary 48 49 ToArray 49 ToList 49 49 49 ElementAtOrDefault 50 SkipWhile 50 TakeWhile 50 DefaultIfEmpty 50 () 51 51 52 53 54 54 54 55 55 55 15: NuGet 57 57 Examples 57 NuGet 57 UI 58 58 58 59 59 59 (MyGet, Klondike ) 59 UI () Nuget 59 61 16: ReadOnlyCollections 62 62 ReadOnlyCollections ImmutableCollection 62 Examples 62 ReadOnlyCollection 62 62 LINQ 62 62 ReadOnlyCollection 62 : ReadOnlyCollection .
    [Show full text]