Aspect-Orientation (AO*)

Total Page:16

File Type:pdf, Size:1020Kb

Aspect-Orientation (AO*) Lecture 7 Aspect-orientation (AO*) A new paradigm in Software Engineering Copyright © Yijun Yu, 2005 Spring 2005 ECE450H1S Software Engineering II Last lecture and tutorial … Software Quality Measurements • We have shown the use of quality measurements to monitor the progress of software development • The development/restructuring (maintenance) activities (refactoring, tuning, adding features) can be guided by the metrics of softgoals Spring 2005 ECE450H1S Software Engineering II Today … On Aspect Orientation • Today we explain the paradigm of aspect- orientation 1. Concepts: What are aspects? 2. Practices: Aspect-orientation at large – AOP: Aspect-oriented programming – AOSD: Aspect-oriented software development – AORE: Aspect-oriented requirements engineering – AOSR: Aspect-oriented software reuse (probably next lecture) 3. A case study of AORE 4. Summary Spring 2005 ECE450H1S Software Engineering II 1. What are aspects? 1. Some design principles • Divide and conquer: problem solving/design principle • Modularization: high cohesion/low coupling Separation of concerns • DRY: Don’t Repeat Yourself Increase the fan-in 2. Previous paradigms • 70s – 80s: Structured programming (Goto’s considered harmful) => Structured Analysis, Structured Design • 80s – 90s: Object-oriented programming (OOP) => OOA/OOD => UML 3. Why another paradigm ? • Since late 90s … Separation of the crosscutting concerns 4. What are aspects? – Modularizing the crosscutting concerns Spring 2005 ECE450H1S Software Engineering II 1.1 Some design principles Structured programming • What is structured program? – A program has no more GOTO’s – Only three kinds of structure prevails • Sequential • If-then-else • Loops [Dijkstra: Goto considered harmful] – In other words, every statement block has single-entry, single-exit as Hammock Graph [Weiser: Program slicing] • “Whenever possible, we wish to maximize fan-in during the design process. Fan-in is the raison d’être of modularity. Each instance of multiple fan-in means that some duplicate code has been avoided.” raison d'être: grounds for existence (http://www.french-linguistics.co.uk/dictionary/) [Yourdon & Constantine79] Structured Design (pg. 172, see also http://wwwpa.win.tue.nl/wstomv/quotes/structured-design.html) [parnas: Modularization, information hiding] Spring 2005 ECE450H1S Software Engineering II (1) A decomposition hierarchy from abstract to concrete: Divide and Conquer, Structured Design; (2) Don’t Repeat Yourself, Factoring / Refactoring … C C C CC C C Spring 2005 ECE450H1S Software Engineering II Example MOVE UNTIL VALUE FIND SCAN REMOVALL STRINGCOMP Yourdon & Constantine, SD, pg.168 Spring 2005 ECE450H1S Software Engineering II 1.1 Some design principles Object-oriented programming • Everything is an object (Smalltalk) • Information hiding / Encapsulation: object groups related data and the operations on the data into a module • Object has structural relationships: – inheritance: generalization / specialization: isA/instanceOf – aggregation : hasA / isPartOf – associations: 1-to-many, 1-to-1, many-to-many • In the end, the structurally-related objects are packaged into components Spring 2005 ECE450H1S Software Engineering II 1.2 Aspect-orientation • Component language (any structured or OO language, even corresponding design and requirements specification) • What are crosscutting concerns? • An aspect language – What are joinpoints? – What are pointcuts? – What are advices? • A weaving mechanism Spring 2005 ECE450H1S Software Engineering II Aspect concepts • Concepts: cross-cutting, AOP hides the join points component, aspect, join points, weaving C Aspect Spring 2005 ECE450H1S Software Engineering II AOP (THE MAGIC) MOVE UNTIL VALUE FIND SCAN REMOVALL STRINGCOMP Spring 2005 ECE450H1S Software Engineering II AOP (NOT REALLY MAGIC) VALUE MOVE UNTIL FIND SCAN REMOVALL FIND: AT LINE 5 VALUE: AT LINE7 SCAN: AT LINE 15 MOVE UNTIL: AT LINE 8 REMOVALL: AT LINE 2 STRINGCOMP Spring 2005 ECE450H1S Software Engineering II AOP example ApplicationSession StandardSession privat e lon g la stAcc essed = cr eatio nTim e; if (ina ctive Inte rval != -1 ) { stream. write Obje ct(ne w Lon g(las tAcce ssed Time) ); pri vate int inact iveIn terva l = - 1; int thisI nterv al = (int) (Syst em.cu rrent Time Milli s() - void a ccess ed() { lastAcc essed ) / 1000; // s et l ast a ccess ed to this Acce ssTim e as it wi ll be lef t ove r sM.acc essed (ctx , req uest, sess ionId ); // f rom the p revio us ac cess if ( thisI nterv al > inact iveI nterv al) { last Acce ssed = thi sAcce ssTim e; inval idate (); public void acc essed ( Con text ctx, Requ est r eq, S tring id ) { /* public void inva lidat e() { package org. apac he.to mcat. sessi on; /** this Acce ssTim e = S ystem .curr entT imeMi llis( ); Appl icat ionSe ssion apS= (Appl icat ionSe ssion )find Sessi on( ctx, * ==== ===== ==== ===== ===== ===== ===== ==== ===== ===== ===== ===== ==== ===== == serv erSe ssion .remo veApp licat ionS essio n(con text) ; /** * Bind an o bject to t his s essio n, u sing the s pecif ied n ame. If an ob ject Serve rSess ionMa nager ssm = id); * * Retur n th e <co de>Ht tpSes sion< /cod e> fo r whi ch th is * of th e sa me na me is alre ady b ound to t his s essio n, th e ob ject is vali date (); S erver Sessi onMan ager .getM anage r(); if( apS= =null ) ret urn; * The Apach e So ftwar e Lic ense, Vers ion 1.1 // r emov e eve rythi ng in the sess ion import java. io.I OExce ption ; object * repla ced. } * import java. io.O bject Input Strea m; * is th e fa cade. * <p> ssm.r emove Sessi on(th is); Serv erSe ssion serv S=apS .getS erve rSess ion() ; * Copy right (c) 1999 The Apach e Sof twar e Fou ndati on. All r ight s Enum erat ion e num = valu es.ke ys() ; import java. io.O bject Outpu tStre am; */ * After thi s met hod e xecut es, a nd i f the obje ct im pleme nts voi d val idat e() { } serv S.ac cesse d(); * rese rved. whil e (e num.h asMor eElem ents( )) { import java. io.S erial izabl e; pub lic H ttpS essio n get Sessi on() { * <code >Htt pSess ionBi nding Liste ner< /code >, th e con taine r ca lls // i f we have an i nacti ve in terv al, c heck to se e if we'v e exc eeded } apS. acce ssed( ); * Stri ng na me = (Stri ng)en um.n extEl ement (); import java. util .Enum erati on; * <code >val ueBou nd()< /code > on the objec t. it } * Redi strib utio n and use in so urce and binar y for ms, w ith o r wi thout remo veVal ue(na me); import java. util .Hash table ; retu rn ( (Http Sessi on) t his); * if ( inac tiveI nterv al != -1) { // c ache it - no n eed t o com pute it a gain * modi ficat ion, are permi tted provi ded that the f ollow ing c ondi tions } import java. util .Vect or; * @para m na me Na me to whic h the obj ect i s bou nd, c annot be null int thisI nterv al = privat e lon g la stAcc essed Time = cre atio nTime ; req. setS essio n( ap S ); * are met: import javax .ser vlet. Servl etExc eptio n; } * @para m va lue O bject to b e bou nd, canno t be null (int) (Syst em.cu rrent Time Milli s() - last Acces sed) / 10 00; * vali d = false ; import javax .ser vlet. http. HttpS essio n; * } * 1. R edist ribu tions of s ource code mus t ret ain t he ab ove c opyr ight } import javax .ser vlet. http. HttpS essio nBin dingE vent; * @exce ptio n Ill egalS tateE xcept ion if th is me thod is ca lled on a n if ( thisI nterv al > inact iveI nterv al) { * n otice , th is li st of cond ition s an d the foll owing disc laim er. import javax .ser vlet. http. HttpS essio nBin dingL isten er; // ----- ---- ----- ----- ----- ----- ---- ----- ----- ----- - * inva lida ted s essio n inval idate (); /** * pub lic b oole an is New() { import javax .ser vlet. http. HttpS essio nCon text; Session Publ ic M ethod s * } /** * Retur n th e las t tim e the clie nt s ent a requ est * 2. R edist ribu tions in b inary form mus t rep roduc e the abov e co pyrig ht if ( ! va lid) { import org.a pach e.tom cat.c atali na.*; * @depr ecat ed As of V ersio n 2.2 , th is me thod is re place d by } * Inval idat e all sess ions that have expi red. associa ted w ith this * n otice , th is li st of cond ition s an d the foll owing disc laim er in Stri ng ms g = s m.get Strin g("a pplic ation Sessi on.se ssio n.ise "); import org.a pach e.tom cat.u til.S tring Mana ger; * <cod e>se tAttr ibute ()</c ode> } */ * sessi on, as th e num ber o f mil lise conds sinc e mid night , * t he do cume ntati on an d/or other mat erial s pro vided with the /** */ pri vate void proc essEx pires () { January 1, 1 970 * d istri buti on. thro w new Ille galSt ateEx cept ion(m sg); /* * Updat e th e acc essed time info rmat ion f or th is se ssion . pub lic v oid putVa lue(S tring name , Ob ject value ) { public long get LastA ccess edTim e() { * GMT. Act ions that your appli cati on ta kes, such as * } /** This m*e tPheordfo rm t he in terna l pro cessi ng r equir ed to inva lidat e if ( vali d) { long tim eNow = Sys tem.c urren tTim eMill is(); getting or s etti ng * 3.
Recommended publications
  • Boenig-Liptsin / Entrepreneurs of the Mind / 1 Citizen's Mind
    Margo Boenig-Liptsin SIGCIS Workshop, November 9, 2014 Work in !rogress Session "orking draft – please do not cite (ear SIGCIS Workshop !articipants) *hank you $or reading this partial draft of one of my dissertation 'hapters) I-m submitting to your review a draft of a 'hapter $rom the mi##&e of my dissertation, therefore to contextualize the "riting that you "i&& be reading, I inc&ude be&ow an abstract of my "hole dissertation project and a chapter out&ine. 2s you "i&& see, this early draft of Chapter 2 is based primari&y on empirical research of my three national cases1 I haven't yet integrated into it any secondary &iterature. I "ould be very gratef,& $or your suggestions of re$erences that you $eel "ould be interesting $or me to incorporate/refect upon, especial&y $rom the &iterature on the history of computing, given the topi's that I am exploring in this chapter or in the dissertation as a "hole. *his early draft is also missing complete $ootnotes—they are current&y 0ust notes $or mysel$ and references that I need to tidy up. I-m gratef,& $or al& of your comments, "hich "i&& no doubt make the next #raft of this signifcant&y better) Best "ishes, Margo (issertation abstract Making the Citi/en of the Information 2ge7 2 comparative study of computer &iteracy programs $or 'hi&dren, 1960s-1990s My dissertation is a comparative history of the frst computer &iteracy programs $or chi&dren. *he project examines how programs to introduce 'hi&dren to computers in the 9nited States, :rance, and the Soviet 9nion $rom the 1960s to 1990s embodied political, epistemic, and moral debates about the kind of citi/en required $or &i$e in the 21st century.
    [Show full text]
  • Cpp-Skript SS18.Pdf
    Programmierung mit C++ für Computerlinguisten CIS, LMU München Max Hadersbeck Mitarbeiter Daniel Bruder, Ekaterina Peters, Jekaterina Siilivask, Kiran Wallner, Stefan Schweter, Susanne Peters, Nicola Greth — Version Sommersemester 2018 — Inhaltsverzeichnis 1 Einleitung1 1.1 Prozedurale und objektorientierte Programmiersprachen . .1 1.2 Encapsulation, Polymorphismus, Inheritance . .1 1.3 Statische und dynamische Bindung . .2 1.4 Die Geschichte von C++ . .2 1.5 Literaturhinweise . .3 2 Traditionelle und objektorientierte Programmierung4 2.1 Strukturiertes Programmieren . .4 2.2 Objektorientiertes Programmieren . .5 3 Grundlagen7 3.1 Installation von Eclipse und Übungsskript . .7 3.2 Starten eines C++ Programms . .7 3.3 Allgemeine Programmstruktur . .8 3.4 Kommentare in Programmen . 10 3.5 Variablen . 11 3.5.1 Was sind Variablen? . 11 3.5.2 Regeln für Variablen . 12 3.5.3 Grundtypen von Variablen . 12 3.5.4 Deklaration und Initialisierung von Variablen . 13 3.5.5 Lebensdauer von Variablen . 14 3.5.6 Gültigkeit von Variablen . 15 3.6 Namespace . 16 3.6.1 Defaultnamespace . 16 3.7 Zuweisen von Werten an eine Variable . 17 3.8 Einlesen und Ausgeben von Variablenwerten . 19 3.8.1 Einlesen von Daten . 19 3.8.2 Zeichenweises Lesen und Ausgeben von Daten . 21 3.8.3 Ausgeben von Daten . 22 3.8.4 Arbeit mit Dateien . 23 3.8.4.1 Textdateien unter Unix ................... 23 3.8.4.2 Textdateien unter Windows ................ 24 3.8.4.3 Lesen aus einer Datei . 25 3.8.4.4 Lesen aus einer WINDOWS Textdatei . 26 i ii Inhaltsverzeichnis 3.8.4.5 Schreiben in eine Datei . 26 3.9 Operatoren .
    [Show full text]
  • A Python Implementation for Racket
    PyonR: A Python Implementation for Racket Pedro Alexandre Henriques Palma Ramos Thesis to obtain the Master of Science Degree in Information Systems and Computer Engineering Supervisor: António Paulo Teles de Menezes Correia Leitão Examination Committee Chairperson: Prof. Dr. José Manuel da Costa Alves Marques Supervisor: Prof. Dr. António Paulo Teles de Menezes Correia Leitão Member of the Committee: Prof. Dr. João Coelho Garcia October 2014 ii Agradecimentos Agradec¸o... Em primeiro lugar ao Prof. Antonio´ Leitao,˜ por me ter dado a oportunidade de participar no projecto Rosetta com esta tese de mestrado, por todos os sabios´ conselhos e pelos momentos de discussao˜ e elucidac¸ao˜ que se proporcionaram ao longo deste trabalho. Aos meus pais excepcionais e a` minha mana preferida, por me terem aturado e suportado ao longo destes quase 23 anos e sobretudo pelo incondicional apoio durante estes 5 anos de formac¸ao˜ superior. Ao pessoal do Grupo de Arquitectura e Computac¸ao˜ (Hugo Correia, Sara Proenc¸a, Francisco Freire, Pedro Alfaiate, Bruno Ferreira, Guilherme Ferreira, Inesˆ Caetano e Carmo Cardoso), por todas as sug- estoes˜ e pelo inestimavel´ feedback em artigos e apresentac¸oes.˜ Aos amigos em Tomar (Rodrigo Carrao,˜ Hugo Matos, Andre´ Marques e Rui Santos) e em Lisboa (Diogo da Silva, Nuno Silva, Pedro Engana, Kaguedes, Clara Paiva e Odemira), por terem estado pre- sentes, duma forma ou doutra, nos essenciais momentos de lazer. A` Fundac¸ao˜ para a Cienciaˆ e Tecnologia (FCT) e ao INESC-ID pelo financiamento e acolhimento atraves´ da atribuic¸ao˜ de uma bolsa de investigac¸ao˜ no ambitoˆ dos contratos Pest-OE/EEI/LA0021/2013 e PTDC/ATP-AQI/5224/2012.
    [Show full text]
  • A Comparative Study of the First Computer Literacy Programs for Children in the United States, France, and the Soviet Union, 1970-1990
    Making Citizens of the Information Age: A Comparative Study of the First Computer Literacy Programs for Children in the United States, France, and the Soviet Union, 1970-1990 The Harvard community has made this article openly available. Please share how this access benefits you. Your story matters Citation Boenig-Liptsin, Margarita. 2015. Making Citizens of the Information Age: A Comparative Study of the First Computer Literacy Programs for Children in the United States, France, and the Soviet Union, 1970-1990. Doctoral dissertation, Harvard University, Graduate School of Arts & Sciences. Citable link http://nrs.harvard.edu/urn-3:HUL.InstRepos:23845438 Terms of Use This article was downloaded from Harvard University’s DASH repository, and is made available under the terms and conditions applicable to Other Posted Material, as set forth at http:// nrs.harvard.edu/urn-3:HUL.InstRepos:dash.current.terms-of- use#LAA Making Citizens of the Information Age: A comparative study of the first computer literacy programs for children in the United States, France, and the Soviet Union, 1970-1990 A dissertation presented by Margarita Boenig-Liptsin to The Department of History of Science in partial fulfillment of the requirements for the degree of Doctor of Philosophy in the subject of History of Science Harvard University Cambridge, Massachusetts August 2015 © 2015 Margarita Boenig-Liptsin All rights reserved. Dissertation Advisor: Professor Sheila Jasanoff Margarita Boenig-Liptsin Making Citizens of the Information Age: A comparative study of the first computer literacy programs for children in the United States, France, and the Soviet Union, 1970-1990 ABSTRACT In this dissertation I trace the formation of citizens of the information age by comparing visions and practices to make children and the general public computer literate or cultured in the United States, France, and the Soviet Union.
    [Show full text]
  • Benchmarking the Amazon Elastic Compute Cloud (EC2)
    Benchmarking the Amazon Elastic Compute Cloud (EC2) A Major Qualifying Project Report submitted to the Faculty of the WORCESTER POLYTECHNIC INSTITUTE in partial fulfillment of the requirements for the Degree of Bachelor of Science by Patrick Coffey Niyanta Mogre Jason Beliveau Andrew Harner Approved By: WPI Project Advisor Professor Donald R. Brown March 9, 2011 Abstract This project sought to determine whether Amazon EC2 is an economically viable environment for scientific research-oriented activities within a university setting. The methodology involved benchmarking the performance of the cloud servers against the best systems available at the WPI ECE department. Results indicate that the newest ECE server outperformed the best EC2 instance by approximately 25% in most cases. A comprehensive cost analysis suggests that EC2 instances can achieve up to 60% better cost to performance ratios in the short-term when compared against the ECE servers. However, a long-term projected cost analysis determined that the overall cost of owning a large set of reserved instances comes out to almost 60% more than the cost of comparable in-house servers. Acknowledgments We would like to thank our advisor, Professor Donald R. Brown for his guidance throughout the course of this project. We would also like to thank Professor Sergey Makarov for providing us access to his research for our case study, as well as Professor Berk Sunar for advising us on the aspects of computer architecture that were needed to analyze our results. We would also like to thank Professor Hugh Lauer for allowing us the opportunity to run the SPEC benchmarks, as well as his advice in understanding benchmarking concepts.
    [Show full text]
  • Chapter 13 Educational Technology at BBN Wallace Feurzeig
    Feurzeig, W. (2011). Educational technology at BBN. In D. Walden & R. Nickerson (Eds.), A culture of innovation. East Sandwich, MA: Waterside Publishing. Chapter 13 Educational Technology at BBN Wallace Feurzeig Since the early 1960s, BBN mathematicians, scientists, and engineershave explored ways tousecomputer and communications technologies to improve teaching and learning. BBN staff members have conducted basic research in human cognition and learning, developed innovativesoftware tools toextend and enrich the traditional curriculum, and provided professional development tohelpeducatorsmakeeffectiveuseofthe new technologies.They have helped schools employ networking facilities to connectteachers and students with each other and with national and global resources.1 13.1 From drill-and-practice to “intelligent” CAI No one,in the early sixties, saw the enormous potential of computers for education moreclearly than J. C. R.Licklider. Atthattime,the prevailing modelforthe use oftech- nologyin education was drill-and-practice.The computer, like earlier electromechanical teaching devices, directed the interaction;itposed questions (typically multiplechoice) and assessed the correctness ofthe student’sanswers.The student’s rolewaspurely responsive. Paired-associate drill Anearly exampleofthiskind of computer-aided instruction (CAI) was the paired- associatedrill tutor developed byLickliderin 1960(Coulson,1962). the program was used toprovide practice in learning German language vocabulary. However, it could be used toprovide practice in learning any kind of paired-associatematerial, thatis, materialthatisorganized in pairs,the firstitem of which is treated as a question, the second as an answer. The program worked roughly as follows. Oneachtrial, the program would type the first item of a pair (i.e., the question) and wait for the student to type an answer. If the studenttyped the correct answer(i.e., the second item of the pair), the program would indicate thatthe response was correct, and moveonto the next question.
    [Show full text]
  • Scripting User's Guide 12C Release 1 (12.2.1.4.0) E93588-02
    Oracle® Fusion Middleware Oracle WebCenter Forms Recognition Scripting User's Guide 12c Release 1 (12.2.1.4.0) E93588-02 September 2019 Documentation for WebCenter Forms Recognition project developers that describes how to develop scripts for creating and customizing projects. Oracle Fusion Middleware Oracle WebCenter Forms Recognition Scripting User's Guide, 12c Release 1 (12.2.1.4.0) E93588-02 Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.
    [Show full text]
  • Characterization and Compensation of Stray Light Effects in Time of Flight Based Range Sensors
    Characterization and compensation of Stray light effects in Time of flight based range sensors Jonas Holmlund Master’s Thesis in Engineering Physics, Department of Physics, Umeå University, 2013 Department of physics Linnaeus väg 20 901 87 Umeå Sweden www.physics.umu.se Characterization and compensation of Stray light effects in Time of flight based range sensors Jonas Holmlund [email protected] MAY 2013 Supervisors: Emil Jonze Jonas Sjöberg Examiner: Ove Axner Abstract Recently much work has been done with the development of 3D real-time imagers, including the Time-of-flight (ToF) camera. This type of camera uses the principle of time of flight, in order to perform a distance measurement to every point in the field of view of the camera. This is done by sending a light signal towards the objects of the observed scene of the camera, where the light is reflected and returns to the camera. The signal is detected at the camera sensor, usually a CCD- or CMOS-chip with an array of pixels, where a distance measurement is made at every pixel, creating a 3D image of the whole scene. The problem is that some of the signal light travels through the optical system of the camera in a way that was not meant in the design. This light is called stray light. The measurement of the distance to different points within the field of view of the camera depends on the amount of light and the distance traveled by the light that reaches each and every one of the sensor pixels. This means that the effects of stray light will directly affect the accuracy of the depth data for the images when stray light spreads to different parts of the sensor.
    [Show full text]
  • Njit-Etd2006-063
    Copyright Warning & Restrictions The copyright law of the United States (Title 17, United States Code) governs the making of photocopies or other reproductions of copyrighted material. Under certain conditions specified in the law, libraries and archives are authorized to furnish a photocopy or other reproduction. One of these specified conditions is that the photocopy or reproduction is not to be “used for any purpose other than private study, scholarship, or research.” If a, user makes a request for, or later uses, a photocopy or reproduction for purposes in excess of “fair use” that user may be liable for copyright infringement, This institution reserves the right to refuse to accept a copying order if, in its judgment, fulfillment of the order would involve violation of copyright law. Please Note: The author retains the copyright while the New Jersey Institute of Technology reserves the right to distribute this thesis or dissertation Printing note: If you do not wish to print this page, then select “Pages from: first page # to: last page #” on the print dialog screen The Van Houten library has removed some of the personal information and all signatures from the approval page and biographical sketches of theses and dissertations in order to protect the identity of NJIT graduates and faculty. ABSTRACT FINDING ROLE ERRORS OF THE NCIT GENE HIERARCHY USING THE NCBI by Marc Oren Due to the knowledge discovery process of gene information, details such as organism and chromosomal location should be known. Furthermore, the extensive biomedical research in genomics led to discovery of processes and diseases in which a gene plays a role.
    [Show full text]
  • Oracle Forms Recognition Scripting Guide 10G Release 3 (10.1.3.5.0) Copyright © 2009, Oracle And/Or Its Affiliates
    Oracle® Forms Recognition Scripting Guide 10g Release 3 (10.1.3.5.0) October 2009 Oracle Forms Recognition Scripting Guide 10g Release 3 (10.1.3.5.0) Copyright © 2009, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this software or related documentation is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007).
    [Show full text]
  • Tierless Web Programming in ML
    Thèse de doctorat de l’Université Sorbonne Paris Cité Préparée à l’Université Paris Diderot au Laboratoire IRIF Ecole Doctorale 386 - Science Mathématiques De Paris Centre Tierless Web programming in ML par Gabriel Radanne Dirigée par Roberto Di Cosmo et Jérôme Vouillon Thèse soutenue publiquement le 14 Novembre 2017 devant le jury constitué de Roberto Di Cosmo Directeur de thèse Jérôme Vouillon Co-Directeur de thèse Koen Claessen Rapporteur Jacques Garrigue Rapporteur Coen De Roover Examinateur Xavier Leroy Examinateur Manuel Serrano Examinateur Jeremy Yallop Examinateur Abstract Eliom is a dialect of OCaml for Web programming in which server and client pieces of code can be mixed in the same file using syntactic annotations. This allows to build a whole application as a single distributed program, in which it is possible to define in a composable way reusable widgets with both server and client behaviors. Eliom is type-safe, as it ensures that communications are well-behaved through novel language constructs that match the specificity of Web pro- gramming. Eliom is also efficient, it provides static slicing which sepa- rates client and server parts at compile time and avoids back-and-forth communications between the client and the server. Finally, Eliom sup- ports modularity and encapsulation thanks to an extension of the OCaml module system featuring tierless annotations that specify whether some definitions should be on the server, on the client, or both. This thesis presents the design, the formalization and the implementa- tion of the Eliom language. Résumé Eliom est un dialecte d’OCaml pour la programmation Web qui permet, à l’aide d’annotations syntaxiques, de déclarer code client et code serveur dans un même fichier.
    [Show full text]
  • Content Delivery Network API Documentation
    Content Delivery Network Content Delivery Network API Documentation Product Documentation ©2013-2019 Tencent Cloud. All rights reserved. Page 1 of 376 Content Delivery Network Copyright Notice ©2013-2019 Tencent Cloud. All rights reserved. Copyright in this document is exclusively owned by Tencent Cloud. You must not reproduce, modify, copy or distribute in any way, in whole or in part, the contents of this document without Tencent Cloud's the prior written consent. Trademark Notice All trademarks associated with Tencent Cloud and its services are owned by Tencent Cloud Computing (Beijing) Company Limited and its affiliated companies. Trademarks of third parties referred to in this document are owned by their respective proprietors. Service Statement This document is intended to provide users with general information about Tencent Cloud's products and services only and does not form part of Tencent Cloud's terms and conditions. Tencent Cloud's products or services are subject to change. Specific products and services and the standards applicable to them are exclusively provided for in Tencent Cloud's applicable terms and conditions. ©2013-2019 Tencent Cloud. All rights reserved. Page 2 of 376 Content Delivery Network Contents API Documentation History Introduction API Category Making API Requests Request Structure Common Params Signature v3 Signature Responses Data Query APIs ListTopData DescribeOriginData DescribeIpVisit DescribeCdnData DescribeBillingData DescribeReportData Service Query APIs DescribePayType DescribeMapInfo DescribeCdnIp
    [Show full text]