Semi-Supervised Code Generation by Editing Intents [.Pdf]

Total Page:16

File Type:pdf, Size:1020Kb

Semi-Supervised Code Generation by Editing Intents [.Pdf] Semi-Supervised Code Generation by Editing Intents Edgar Chen advised by Graham Neubig, Bogdan Vasilescu Carnegie Mellon University [email protected] Intent: count the occurrences of for reference materials or contents on question and a list item answer sites such as StackOverflow (SO). How- Code: l . count ( ’b’ ) ever, this means that the programmer must search for the right question, then the right answer, then Figure 1: A datapoint from StackOverflow, repre- understand the code in the answer well enough to senting a Question (intent) and its Answer (snip- implement his own version of it to attain the re- pet) sults that he is interested in, which can be tough for a novice. Abstract Semantic parsing is the category of tasks in NLP which involve transforming some unstruc- In this work, we explore the seman- tured natural language text into a structured log- tic parsing task of generating code in ical representation. These representations can a general-purpose programming language range from simple grammars for querying knowl- (e.g. Python) from a natural language de- edge bases (Berant et al., 2013) to smartphone scription. One significant issue with the voice commands which can be executed by vir- current state of code generation from nat- tual agents such as Siri and Alexa (Kumar et al., ural language is the lack of data in a ready- 2017). NLP researchers have shown significant to-translate form, ie written as a command progress on learning these representations using with variable names specified. We propose data. However, these representations are often a deep generative model to rewrite and limited in their expressivity due to limitations in augment utterances such as StackOver- the expressive power of the syntax and the limited flow questions into an acceptable form by domain of the task. The ability to generate code adding variable names and other impor- in general-purpose programming languages is de- tant information. We treat the rewritten sirable as they are both sufficiently expressive for natural language representation as a latent programmable tasks and can easily be understood variable, and sample an edited natural lan- and integrated by programmers into existing sys- guage sentence which we condition the tems and codebases. code generation process on. We train the One necessity for learning a strong code gen- models separately in a supervised setting eration system is data which includes a concise and together in an unsupervised setting. natural language intent for which the correspond- ing code snippet captures all of the instructions 1 Introduction and detail in the intent, while not including any Programmers learning a new programming lan- extraneous code. Previous works have focused guage like Java or Python can often struggle with on cases where code is annotated, line-by-line, implementing a simple command into code, due to with detailed natural language descriptions that unfamiliarity with syntax or other issues. Even ex- have variable names (Oda et al., 2015), or where perienced programmers can forget the specific de- the code can only interact with a fixed number tails of certain library functions. Often, program- of variables (i.e. pieces in a game) (Ling et al., mers stuck on such details will query search en- 2016). We would like to our models to capture gines with natural language descriptions looking the complexities of all questions that programmers can ask, which can be achieved by mining data Intent: count the occurrences of from a question-and-answer site like StackOver- a list item flow which allows users the freedom to ask any Code: l . count ( ’b’ ) code-related question. However, using the ques- Rewritten Intent: count the tion text from an SO post is often insufficient in- occurrences of item ’b’ in listl formation to actually generate code. In a usual code generation task, an example input would be Figure 2: A datapoint separated into 3 parts: intent a fully-formed command ”How to get maximal el- in blue, code in green, and generable tokens in red. ement in list ’my list’”, and its corresponding output would be a line of code: max(my list). fect. However, on StackOverflow a question posted by Xu et al. (Lin et al., 2017) have worked on users would take the form ”How to get maximal learning to generate Bash shell script commands element in a list?”, expressing only an abstract from natural language. Their approach relies on intent, and the answer to the post would still be synthesizing a template for a Bash one-liner, then max(my list). Despite the fact that the in- filling in the arguments. They show good re- tent and snippet agree, the intent does not contain sults in both accuracy and human evaluation, and enough information to generate the entire code show that their model is able to capture rela- snippet, as it is missing the variable name of the tively complex intents as commands and argu- list. ments. However, they limit the scope of the task One approach to fixing this issue would be man- to running Unix command-line utilities with ar- ual annotation, but the process is slow and takes guments, which means that many of the power- a skilled programmer in the target programming ful elements of Bash syntax are lost, such as con- language, and thus is not easily scaled. We take trol flow, I/O redirection, and variables, as most a two-step approach to utilize this data: First, we command-line use of Bash does not include these construct a model which rewrites the abstract nat- features. Our work is a step closer to generating ural language intents into concrete commands by code in a general-purpose language which allows augmenting them with variables from the code these more complex syntactic features. and other important information such as variable types. Then, we construct a model which gen- 3 Methods erates code snippets from these rewritten intents. 3.1 Problem Description Because data with rewritten intents is sparse, we treat the rewritten intents as underlying latent vari- A sample of fully annotated data is shown in Fig- ables which we infer to perform the final code gen- ure2. We would like to infer high-quality rewrit- eration step, and train our models in tandem, semi- ten intents from the intent (English) and code supervised. This approach surpasses our baseline (Python). The quality of a rewritten intent is mea- approach of ignoring the rewriting step and just sured by its faithfulness to the original intent and generating code directly from the intent, as well its completeness in providing a fully-formed natu- as learning rewritten intent generation using only ral language command allowing humans and ma- the small supervised dataset. chines to write code with no additional informa- tion. To facilitate the generation of these rewrit- 2 Related Work ten intents, we require that they are composed of mostly copies of words from the intent and Gradient-based optimization of generative latent- variable names and literals (strings, integers, etc.) variable models was first popularized with the from the code. This means that the rewritten in- Variational Auto-Encoder (VAE) (Kingma and tent will mostly contain content from the original Welling, 2013). However, Kingma and Welling intent, with some variable names possibly added focused on sampling and training continuous la- to allow for a complete generation. In Figure2, tent variables. Miao and Blunsom(2016) re- for example, without the variable names inserted purpose the ideas from the VAE to train models into the rewritten intent, it is impossible to write structured, discrete latent variables, and demon- the code; even if we know that we want to call strate that the latent variables can be used as the the count function, there’s no indication as to summaries in sentence compression to good ef- which list it should be called from or what ob- ject it should be called on. The rewritten intent The probability of generating a copy or token tells us that the list is l and that count should be with index i as the next word is Pr(zt = i) = qt;i. called on ’b’. One last element of the rewritten Finally, we calculate ht+1. If we decided to intent is the generable tokens: these are common copy a token, we would like to use information words such as prepositions (in, of, on) and types about the copied token, so we augment the input (list, file) which are sometimes not found in the to the LSTM f, the embedding of the copied word intents due to their brevity. We allow the model to e(zt), with the encoding of the copied token r[zt]. generate these for higher fidelity and clearer match If zt was not copied and instead generated, then with the manually annotated rewritten intents. we let r[zt] = 0. 3.2 Model The model can be separated into two parts: there is ht+1 = f(ht; [e(wt); r[zt]]) (5) a rewritten intent generator and a code generator. 3.2.2 Code Generator 3.2.1 Rewritten Intent Generator The code generator is also an encoder-decoder The base model is an encoder-decoder (Cho et al., LSTM model. We use a bidirectional LSTM to 2014) model. We use fine-tuned embeddings e(w) encode the rewritten intent, to obtain a list of en- to convert each token in the snippet and intent codings s = BiLSTM(z1; z2; :::; zjzj). Then, we into a vectors, then encode each sequence sepa- calculate scores for copying and generating code rately with bidirectional LSTMs (Hochreiter and tokens y^ = [^y1; :::; y^jy^j]. For copies, we employ Schmidhuber, 1997).
Recommended publications
  • Porta-SIMD: an Optimally Portable SIMD Programming Language Duke CS-1990-12 UNC CS TR90-021 May 1990
    Porta-SIMD: An Optimally Portable SIMD Programming Language Duke CS-1990-12 UNC CS TR90-021 May 1990 Russ Tuck Duke University Deparment of Computer Science Durham, NC 27706 The University of North Carolina at Chapel Hill Department of Computer Science CB#3175, Sitterson Hall Chapel Hill, NC 27599-3175 Text (without appendix) of a Ph.D. dissertation submitted to Duke University. The research was performed at UNC. @ 1990 Russell R. Tuck, III UNC is an Equal Opportunity/Atlirmative Action Institution. PORTA-SIMD: AN OPTIMALLY PORTABLE SIMD PROGRAMMING LANGUAGE by Russell Raymond Tuck, III Department of Computer Science Duke University Dissertation submitte in partial fulfillment of the requirements for the degree of Doctor of Philosophy in the Department of Computer Science in the Graduate School of Duke University 1990 Copyright © 1990 by Russell Raymond Tuck, III All rights reserved Abstract Existing programming languages contain architectural assumptions which limit their porta­ bility. I submit optimal portability, a new concept which solves this language design problem. Optimal portability makes it possible to design languages which are portable across vari­ ous sets of diverse architectures. SIMD (Single-Instruction stream, Multiple-Data stream) computers represent an important and very diverse set of architectures for which to demon­ strate optimal portability. Porta-SIMD (pronounced "porta.-simm'd") is the first optimally portable language for SIMD computers. It was designed and implemented to demonstrate that optimal portability is a useful and achievable standard for language design. An optimally portable language allows each program to specify the architectural features it requires. The language then enables the compiled program to exploit exactly those fea.­ tures, and to run on all architectures that provide them.
    [Show full text]
  • Pnw 2020 Strunk001.Pdf
    Remote Sensing of Environment 237 (2020) 111535 Contents lists available at ScienceDirect Remote Sensing of Environment journal homepage: www.elsevier.com/locate/rse Evaluation of pushbroom DAP relative to frame camera DAP and lidar for forest modeling T ∗ Jacob L. Strunka, , Peter J. Gouldb, Petteri Packalenc, Demetrios Gatziolisd, Danuta Greblowskae, Caleb Makif, Robert J. McGaugheyg a USDA Forest Service Pacific Northwest Research Station, 3625 93rd Ave SW, Olympia, WA, 98512, USA b Washington State Department of Natural Resources, PO Box 47000, 1111 Washington Street, SE, Olympia, WA, 98504-7000, USA c School of Forest Sciences, Faculty of Science and Forestry, University of Eastern Finland, P.O. Box 111, 80101, Joensuu, Finland d USDA Forest Service Pacific Northwest Research Station, 620 Southwest Main, Suite 502, Portland, OR, 97205, USA e GeoTerra Inc., 60 McKinley St, Eugene, OR, 97402, USA f Washington State Department of Natural Resources, PO Box 47000, 1111 Washington Street SE, Olympia, WA, 98504-7000, USA g USDA Forest Service Pacific Northwest Research Station, University of Washington, PO Box 352100, Seattle, WA, 98195-2100, USA ARTICLE INFO ABSTRACT Keywords: There is growing interest in using Digital Aerial Photogrammetry (DAP) for forestry applications. However, the Lidar performance of pushbroom DAP relative to frame-based DAP and airborne lidar is not well documented. Interest Structure from motion in DAP stems largely from its low cost relative to lidar. Studies have demonstrated that frame-based DAP Photogrammetry generally performs slightly poorer than lidar, but still provides good value due to its reduced cost. In the USA Forestry pushbroom imagery can be dramatically less expensive than frame-camera imagery in part because of a na- DAP tionwide collection program.
    [Show full text]
  • GUIDE to INTERNATIONAL UNIVERSITY ADMISSION About NACAC
    GUIDE TO INTERNATIONAL UNIVERSITY ADMISSION About NACAC The National Association for College Admission Counseling (NACAC), founded in 1937, is an organization of 14,000 professionals from around the world dedicated to serving students as they make choices about pursuing postsecondary education. NACAC is committed to maintaining high standards that foster ethical and social responsibility among those involved in the transition process, as outlined in the NACAC’s Guide to Ethical Practice in College Admission. For more information and resources, visit nacacnet.org. The information presented in this document may be reprinted and distributed with permission from and attribution to the National Association for College Admission Counseling. It is intended as a general guide and is presented as is and without warranty of any kind. While every effort has been made to ensure the accuracy of the content, NACAC shall not in any event be liable to any user or any third party for any direct or indirect loss or damage caused or alleged to be caused by the information contained herein and referenced. Copyright © 2020 by the National Association for College Admission Counseling. All rights reserved. NACAC 1050 N. Highland Street Suite 400 Arlington, VA 22201 800.822.6285 nacacnet.org COVID-19 IMPACTS ON APPLYING ABROAD NACAC is pleased to offer this resource for the fifth year. NACAC’s Guide to International University Admission promotes study options outside students’ home countries for those who seek an international experience. Though the impact the current global health crisis will have on future classes remains unclear, we anticipate that there will still be a desire among students—perhaps enhanced as a result of COVID-19, to connect with people from other cultures and parts of the world, and to pursue an undergraduate degree abroad.
    [Show full text]
  • User Guide - Opendap Documentation
    User Guide - OPeNDAP Documentation 2017-10-12 Table of Contents 1. About This Guide . 1 2. What is OPeNDAP. 1 2.1. The OPeNDAP Client/Server . 2 2.2. OPeNDAP Services . 3 2.3. The OPeNDAP Server (aka "Hyrax"). 4 2.4. Administration and Centralization of Data . 5 3. OPeNDAP Data Model . 5 3.1. Data and Data Models . 5 4. OPeNDAP Messages . 17 4.1. Ancillary Data . 17 4.2. Data Transmission . 23 4.3. Other Services . 24 4.4. Constraint Expressions . 27 5. OPeNDAP Server (Hyrax) . 34 5.1. The OPeNDAP Server. 34 6. OPeNDAP Client . 37 6.1. Clients . 38 1. About This Guide This guide introduces important concepts behind the OPeNDAP data model and Web API as well as the clients and servers that use them. While it is not a reference for any particular client or server, you will find links to particular clients and servers in it. 2. What is OPeNDAP OPeNDAP provides a way for researchers to access scientific data anywhere on the Internet, from a wide variety of new and existing programs. It is used widely in earth-science research settings but it is not limited to that. Using a flexible data model and a well-defined transmission format, an OPeNDAP client can request data from a wide variety of OPeNDAP servers, allowing researchers to enjoy flexibility similar to the flexibility of the web. There are different implementations of OPeNDAP produced by various open source NOTE organizations. This guide covers the implementation of OPeNDAP produced by the OPeNDAP group. The OPeNDAP architecture uses a client/server model, with a client that sends requests for data out onto the network to a server, that answers with the requested data.
    [Show full text]
  • ESAIL D3.3.4 Auxiliary Tether Reel Test Report
    WP 3.3 “Auxiliary tether reel”, Deliverable D3.3.4 ESAIL ESAIL D3.3.4 Auxiliary tether reel test report Work Package: WP 3.3 Version: Version 1.0 Prepared by: DLR German Aerospace Center, Roland Rosta Time: Bremen, June 18th, 2013 Coordinating person: Pekka Janhunen, [email protected] 1 WP 3.3 “Auxiliary tether reel”, Deliverable D3.3.4 ESAIL Document Change Record Pages, Tables, Issue Rev. Date Modification Name Figures affected 1 0 18 June 2013 All Initial issue Rosta 2 WP 3.3 “Auxiliary tether reel”, Deliverable D3.3.4 ESAIL Table of Contents 1. Scope of this Document ......................................................................................................................... 5 2. Test Item Description ............................................................................................................................ 6 2.1. Auxiliary Tether Reel...................................................................................................................... 6 3. Test Results ............................................................................................................................................ 7 3.1. Shock and Vibration Tests .............................................................................................................. 7 3.2. Thermal Vacuum Tests ................................................................................................................. 10 4. Appendix .............................................................................................................................................
    [Show full text]
  • Optimization of Virtual Power Plant in Nordic Electricity Market
    DEGREE PROJECT IN ELECTRICAL ENGINEERING, SECOND CYCLE, 30 CREDITS STOCKHOLM, SWEDEN 2019 Optimization of Virtual Power Plant in Nordic Electricity Market JWALITH DESU KTH ROYAL INSTITUTE OF TECHNOLOGY SCHOOL OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE KTH Royal Institute of Technology Master Thesis Optimization of Virtual Power Plant in the Nordic Electricity Market Author: Jwalith Desu Supervisor: Dr. Mohammad Reza Hesamzadeh Examiner: Dr. Mohammad Reza Hesamzadeh A thesis submitted in fulfilment of the requirements for the degree of Master of Science in the Electricity Market Research Group (EMReG) School of Electrical Engineering October 2019 Declaration of Authorship I, Jwalith DESU, declare that this thesis titled, 'Optimization of Virtual Power Plant in the Nordic Electricity Market' and the work presented in it are my own. I confirm that: This work was done wholly or mainly while in candidature for a research degree at this University. Where any part of this thesis has previously been submitted for a degree or any other qualification at this University or any other institution, this has been clearly stated. Where I have consulted the published work of others, this is always clearly at- tributed. Where I have quoted from the work of others, the source is always given. With the exception of such quotations, this thesis is entirely my own work. I have acknowledged all main sources of help. Where the thesis is based on work done by myself jointly with others, I have made clear exactly what was done by others and what I have contributed myself. Signed: Date: i Abstract With the world becoming more conscious about achieving 1.5-degree scenario as promised by the most powerful economies of the world, much needed push was received by the renewable energy technology providers.
    [Show full text]
  • Maple Park Parent Handbook
    MAPLE PARK MIDDLE SCHOOL - PARENT HANDBOOK 2018-2019- FUTURE GRIFFINS . available at schoo l offices aad d;,o,;c,w,bs;Oe • Official Boar d o f Education pohwww.c~1es nkcschools.org Parent/Student Handbook Welcome to Maple Park Middle School Dr. Brian Van Batavia, Principal Reagan Allegri, Assistant Principal Andrea Stauch, Assistant Principal 5300 N. Bennington Ave Kansas City, Missouri 64119 816-321-5280 www.nkcschools.org/mpms/ General Phone Information Maple Park Office 321-5280 6:45–2:45 p.m. Attendance 321-5282 24 hours Fax 321-5281 24 hours School Nurse 321-5283 7:45–3:00 p.m. Maple Park Cafeteria 321-5284 7:30–2:00 p.m. Central Office 321-5000 8:00–5:00 p.m. Transportation 321-5007 8:00–5:00 p.m. School Hours Office hours: 6:45 a.m.–2:45 p.m. Class hours: 7:15 a.m.–2:12 p.m. Early Release Thursday: 7:15 a.m.-1:37 p.m. Activities: 2:15 p.m.–4:45 p.m. July 5, 2018 Dear Maple Park Families, Welcome to Maple Park for the 2018-2019 School Year! I am looking forward to growing and learning with each of you as this will be my third year at Maple Park! I love middle school and the vast amounts of maturity that is achieved by the students during these years. I can’t wait to get to know each one of you. We are so fortunate to expand our attendance area and welcome new families into our school community.
    [Show full text]
  • Large Area Forest Yield Estimation with Pushbroom Digital Aerial Photogrammetry
    Article Large Area Forest Yield Estimation with Pushbroom Digital Aerial Photogrammetry Jacob Strunk 1,*, Petteri Packalen 2, Peter Gould 3, Demetrios Gatziolis 4, Caleb Maki 5, Hans-Erik Andersen 6 and Robert J. McGaughey 6 1 USDA Forest Service Pacific Northwest Research Station, 3625 93rd Ave SW, Olympia, WA 98512, USA 2 School of Forest Sciences, Faculty of Science and Forestry, University of Eastern Finland, P.O. Box 111, 80101 Joensuu, Finland; [email protected] 3 Washington State Department of Natural Resources, P.O. Box 47000 and 1111 Washington Street SE Olympia, WA 98504-7000, USA; [email protected] 4 USDA Forest Service Pacific Northwest Research Station, 620 Southwest Main Suite 400 Portland, OR 97205, USA; [email protected] 5 Washington State Department of Natural Resources, P.O. Box 47000, 1111 Washington Street SE Olympia, WA 98504-7000, USA; [email protected] 6 USDA Forest Service Pacific Northwest Research Station, University of Washington, P.O. Box 352100, Seattle, WA 98195-2100, USA; [email protected] (H.-E.A.); [email protected] (R.J.M.) * Correspondence: [email protected] Received: 5 February 2019; Accepted: 1 May 2019; Published: 7 May 2019 Abstract: Low-cost methods to measure forest structure are needed to consistently and repeatedly inventory forest conditions over large areas. In this study we investigate low-cost pushbroom Digital Aerial Photography (DAP) to aid in the estimation of forest volume over large areas in Washington State (USA). We also examine the effects of plot location precision (low versus high) and Digital Terrain Model (DTM) resolution (1 m versus 10 m) on estimation performance.
    [Show full text]
  • Quickstart - Opendap
    QuickStart - OPeNDAP 2017-10-12 Table of Contents 1. Introduction. 1 1.1. Key Terms . 1 2. What to do With an OPeNDAP URL . 1 2.1. An Easy Way: Using the Browser-Based OPeNDAP Server Dataset Access Form . 2 2.2. A More Flexible Way: Using Commands in a Browser . 5 3. Finding OPeNDAP URLs . 13 3.1. Google . 13 3.2. GCMD. 13 3.3. Web Interface . 13 4. Further Analysis . 14 1. Introduction OPeNDAP is the developer of client/server software, of the same name, that enables scientists to share data more easily over the internet. The OPeNDAP group is also the original developer of the Data Access Protocol (DAP) that the software uses. Many other groups have adopted DAP and provide compatible clients, servers, and SDKs. OPeNDAP’s DAP is also a NASA community standard. For the rest of this document, "OPeNDAP" will refer to the software. With OPeNDAP, you can access data using an OPeNDAP URL of any database server that supports OPeNDAP. You can do this via command-line, Internet browser, or a custom UI. You can also use other NetCFD complaint tools, such asMatlab, R, IDL, IDV, and Panoply. Note that OPeNDAP data is, by default, stored and transmitted in binary form. In addition to its native data representation format, OPeNDAP can get data in the following formats: NetCDF, GeoTIFF, JPEG2000, JSON, ASCII. This quick start guide covers how to use OPeNDAP in a typical web browser, such as Firefox, Chrome, or Safari, to discover information about data that is useful when creating database queries.
    [Show full text]
  • Download (1MB)
    Developing Policy Inputs for Efficient Trade and Sustainable Development Using Data Analysis Mini.K.G Senior Scientist, Fisheries Resources Assessment Division Central Marine Fisheries Research Institute, Kochi Email: [email protected] Introduction Trade forms a vital part of the world economy. The analysis of data on trade and related parameters plays a pivotal role in developing policy inputs for efficient trade and sustainable development. It is evident that the success of any type of analysis depends on the availability of the suitable type of data. In general, time series, cross sectional and pooled data are the three types of data available for trade analysis. Time series data are characterized by observations collected at regular intervals over a period of time while cross-sectional data are data on one or more variables collected at the same point of time. The pooled data is a combination of time series and cross-sectional data. For example, panel data, which is a special type of pooled data is used to study the relationship between trade flows and trade barriers over time. In recent years, the quantitative and qualitative analysis of trade and the effects of policies have grown sharply. This was due to the advances in the theoretical and analytical techniques as well as increased computational and data processing power of computers. A multitude of analysis tools are available in today’s world for a thorough and scientifically valid analysis of data. There are several choices available for the user to choose from – ranging from the general public license packages, analysis packages with statistical add-ons, general purpose languages with statistics libraries to the advanced proprietary packages.
    [Show full text]
  • Plantgl: a Python-Based Geometric Library for 3D Plant Modelling At
    PlantGL: A Python-based geometric library for 3D plant modelling at different scales Christophe Pradal, Frédéric Boudon, Christophe Nouguier, Jérôme Chopard, Christophe Godin To cite this version: Christophe Pradal, Frédéric Boudon, Christophe Nouguier, Jérôme Chopard, Christophe Godin. PlantGL: A Python-based geometric library for 3D plant modelling at different scales. Graphical Models, Elsevier, 2009, 71 (1), 1–21, posted-at = 2008-11-04 14:10:07. 10.1016/j.gmod.2008.10.001. hal-00850782 HAL Id: hal-00850782 https://hal.inria.fr/hal-00850782 Submitted on 8 Aug 2013 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. PlantGL: a Python-based geometric library for 3D plant modelling at different scales C. Pradal a 1 , F. Boudon a,∗1, C. Nouguier a, J. Chopard b, C. Godin b aCIRAD, Virtual Plants INRIA Project-Team, UMR DAP, Montpellier, F-34398 France. bINRIA, Virtual Plants INRIA Project-Team, UMR DAP, Montpellier, F-34398 France. Abstract In this paper, we present PlantGL, an open-source graphic toolkit for the creation, simulation and analysis of 3D virtual plants. This C++ geometric library is embedded in the Python language which makes it a powerful user-interactive platform for plant modeling in various biological application domains.
    [Show full text]
  • Building Micropython with KEIL and Programming with Python on I.MX RT1050/1060 Rev
    AN13242 Building Micropython with KEIL and Programming with Python on i.MX RT1050/1060 Rev. 0 — 27 April, 2021 Application Note Contents 1 Introduction 1 Introduction......................................1 This application note introduces the porting of MicroPython, the packaging of 2 Hardware platform...........................1 2.1 i.MX RT1050/60 crossover peripheral functions, and the adaptation of circuit boards, using the example process........................................ 1 of our work on the i.MX RT1050/1060EVK development board. The code are 2.2 i.MX RT1050/60 EVK board........ 1 mainly written in C language, but are presented to the users as Python modules 3 Micropython.....................................2 and types. You can either evaluate and use MicroPython on this development 3.1 Brief introduction to Python board, or use it to port and adapt your new board design. MicroPython’s native Language.....................................2 project management and build environment is based on GCC and Make under 3.2 Brief introduction to Micropython Linux. To facilitate the development habits of most MCU embedded engineers, .....................................................3 the development environment is also ported to Keil MDK5. 4 Building and running Micropython on i.MX RT1050/1060 EVK.................. 3 The readers are expected to have basic experience of development with KEIL 4.1 Downloading source code........... 3 MDK, knowing what is CMSIS-Pack, the concept of target in KEIL and how to 4.2 Opening project with KEIL
    [Show full text]