Aug 24, 1999© 1999 CNRI, Guido van Rossum 1 IDLE An Integrated DeveLopment Environment in and for Python Guido van Rossum Open Source.

Slides:



Advertisements
Similar presentations
Optional Static Typing Guido van Rossum (with Paul Prescod, Greg Stein, and the types-SIG)
Advertisements

10/09/1999© 1999 CNRI, Guido van Rossum 1 Computer Programming for Everybody Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,
Mainframe-caliber tools for UNIX Treehouse Software, Inc.
Chapter 3: Editing and Debugging SAS Programs. Some useful tips of using Program Editor Add line number: In the Command Box, type num, enter. Save SAS.
Tutorial 12: Enhancing Excel with Visual Basic for Applications
Management Reporter By Zara Beckstein/Matt Saad. Basic Navigation Similar to GP 2013 R2 windows, there is a Navigation Pane in the lower left. This will.
VIM: The basics Tang Wai-Chung, Matthew (MaFai) 29/12/2006.
The IDE (Integrated Development Environment) provides a DEBUGGER for locating and correcting errors in program logic (logic errors not syntax errors) The.
Chapter 2: The Visual Studio.NET Development Environment Visual Basic.NET Programming: From Problem Analysis to Program Design.
03 Using Eclipse. 2 IDE Overview An IDE is an Interactive Development Environment Different IDEs meet different needs BlueJ and DrJava are designed as.
Python for S60 SmartPhones PostPC Workshop Fall 2006 Amnon Dekel.
1 Creating Icons for Commands When there is not an icon related to a command in your toolbars, you will see a question mark (?). No preview available …
Python Introduction.
Introduction to programming in MATLAB MATLAB can be thought of as an super-powerful graphing calculator Remember the TI-83 from calculus? With many more.
Digital Image Processing Lecture3: Introduction to MATLAB.
Building and managing class pages on our new Web site School Wires Training.
23-August-1999© 1999 CNRI, Guido van Rossum August-1999© 1999 CNRI, Guido van Rossum 2 Python Track Opening Words Guido van Rossum
CLEO’s User Centric Data Access System Christopher D. Jones Cornell University.
Introduction to Python Guido van Rossum Director of PythonLabs at Zope Corporation
WaveMaker Visual AJAX Studio 4.0 Training Troubleshooting.
Insert Presentation Title Heremm.dd.yy, City, ST SQL Reporting Services – Building the Report Kevin Ford Services Consaultant Accela, Inc.
Self Guided Tour for Query V8.4 Basic Features. 2 This Self Guided Tour is meant as a review only for Query V8.4 Basic Features and not as a substitute.
Microsoft Excel 2007 © Wiley Publishing All Rights Reserved. The L Line The Express Line to Learning L Line.
1 CA201 Word Application Increasing Efficiency Week # 13 By Tariq Ibn Aziz Dammam Community college.
Automating Tasks with Visual Basic. Introduction  When can’t find a readymade macro action that does the job you want, you can use Visual Basic code.
Python 0 Some material adapted from Upenn cmpe391 slides and other sources.
1 Python what is it?. 2 IDLE An Integrated DeveLopment Environment in and for Python.
© All rights reserved. U.S International Tech Support
Alice 2.0 Introductory Concepts and Techniques Project 1 Exploring Alice and Object-Oriented Programming.
August 29, 2005ICP: Chapter 1: Introduction to Python Programming 1 Introduction to Computer Programming Chapter 1: Introduction to Python Programming.
Creating your first C++ program
Interaction Design Interaction Design - Joan Cahill - Visio Interaction Design: Visio.
1 of 8 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
Formatting and Proofing Text PowerPoint 97 Intermediate.
Introduction to Vim Robbie CSCI2100 Data Structures Tutorial 3.
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
Introduction to Unix – CS 21 Lecture 8. Lecture Overview More detail on emacs and vi Regular expression matching in emacs and vi.
1 ADVANCED MICROSOFT WORD Lesson 14 – Editing in Workgroups Microsoft Office 2003: Advanced.
GISMO/GEBndPlan Overview Geographic Information System Mapping Object.
4 Editing files and Emacs Editing files The Emacs editor.
Design Verification Code and Toggle Coverage Course 7.
Evaluating & Maintaining a Site Domain 6. Conduct Technical Tests Dreamweaver provides many tools to assist in finalizing and testing your website for.
Lesson 4-Mastering the Visual Editor. Overview Introducing the visual editor. Working in an existing file with vi. Understanding the visual editor. Navigating.
OCR Computing GCSE © Hodder Education 2013 Slide 1 OCR GCSE Computing Python programming 4: Writing programs.
Introduction to Excel VBA UNC Charlotte CPE/PDH Series December 17, 2009.
Trinity College Dublin, The University of Dublin GE3M25: Computer Programming for Biologists Python Karsten Hokamp, PhD Genetics TCD, 03/11/2015.
1Copyright © 2011 Pearson Education, Inc. Publishing as Prentice Hall. Exploring Microsoft Office Access 2010 by Robert Grauer, Keith Mast, and Mary Anne.
CPS120: Introduction to Computer Science Compiling a C++ Program From The Command Line.
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
Exploring Spyder: An IDE for scientific computing
XP New Perspectives on Microsoft Office Access 2003, Second Edition- Tutorial 8 1 Microsoft Office Access 2003 Tutorial 8 – Integrating Access with the.
Visual Programming Borland Delphi. Developing Applications Borland Delphi is an object-oriented, visual programming environment to develop 32-bit applications.
Chapter 2: The Visual Studio.NET Development Environment Visual Basic.NET Programming: From Problem Analysis to Program Design.
CST 1101 Problem Solving Using Computers
Chapter 2: The Visual Studio .NET Development Environment
A Python Tour: Just a Brief Introduction
Vim basics Vi IMproved.
Administrator Training
Introduction to the Visual C# 2005 Express Edition IDE
Testing Key Revision Points.
Do you know this browser?...
Introduction to Python
JEdit.
Creating your first C program
Digital Image Processing
Debuggers and Debugging
A look at Python Programming Language 2018.
Scripts In Matlab.
12th Computer Science – Unit 5
Chapter 1: Programming Basics, Python History and Program Components
Presentation transcript:

Aug 24, 1999© 1999 CNRI, Guido van Rossum 1 IDLE An Integrated DeveLopment Environment in and for Python Guido van Rossum Open Source Conference Monterey, August 1999

Aug 24, 1999© 1999 CNRI, Guido van Rossum 2 Overview Intro How it’s done –undo engine –colorizer –sample extension (autoindent) –call tips (Mark Hammond) –class browser –debugger Demo

Aug 24, 1999© 1999 CNRI, Guido van Rossum 3 My ideal environment Knows more about Python than you can teach Emacs: Perfect colorization Perfect auto-indent Interactive shell with auto-indent Integrated Python debugger Is written in portable Python –hence extensible in Python

Aug 24, 1999© 1999 CNRI, Guido van Rossum 4 It's not done yet! Debugger unfinished Customization beyond editing the source :) Tons of details, e.g.: Emulate more Emacs keybindings Back up files, check if file changed Typing above prompt in shell window Reformat whole buffer

Aug 24, 1999© 1999 CNRI, Guido van Rossum 5 Possible developments More newbie-proof (CP4E) Project management tools Syntax suggestions (templates?) Name suggestions (type analysis?) Continuous syntax check & lint (like a spell checker)

Aug 24, 1999© 1999 CNRI, Guido van Rossum 6 How it's done Industrial strength editor window –Several extensibility dimensions: loadable extensions (e.g. autoindent) stackable filters (undo, colorization) subclassing Interactive shell window –subclass of editor window –adds history, command execution

Aug 24, 1999© 1999 CNRI, Guido van Rossum 7 EditorWindow.py

Aug 24, 1999© 1999 CNRI, Guido van Rossum 8 PyShell.py

Aug 24, 1999© 1999 CNRI, Guido van Rossum 9 The undo engine Intercept all buffer-changing ops of widget command (not events) –rename widget command in Tcl –define new command in its place delegate all ops except insert/delete Mechanism allows dynamically stacked interceptors –colorization inserted below undo

Aug 24, 1999© 1999 CNRI, Guido van Rossum 10 Undo details Each command has an inverse Some marks also remembered –needed by shell (too ad-hoc) Grouping option –undo/redo several ops at once –used by high level cmds e.g. reformat Keeps track of "file-changed" flag

Aug 24, 1999© 1999 CNRI, Guido van Rossum 11 The colorizer Insert/delete mark text as dirty Colorize while idle, stop on editing Perfect Python tokenizer using optimized regular expressions Restart at sync point before dirty Continue until sync points match >200 lines/sec on 300 MHz P-II

Aug 24, 1999© 1999 CNRI, Guido van Rossum 12 !def gcd(a, b): ! """Calculate greatest ? common divisor.""" ! while a: ! a, b = b/a, a ! return b Colorizer example

Aug 24, 1999© 1999 CNRI, Guido van Rossum 13 AutoIndent.py class AutoIndent:# Thanks to Tim Peters menudefs = [(“edit”, [(“_Tab”, “ >”),...])] keydefs = {“ >”: “ ”,...} def __init__(self, editwin): self.editwin = editwin def smart_indent_event(self, event): text = self.text first, last = self.editwin.get_selection_indices()...

Aug 24, 1999© 1999 CNRI, Guido van Rossum 14 CallTips.py Bind (, ), ESC, KeyRelease events def paren_open_event(self, event): # Thanks to Mark Hammond self._remove_calltip_window() arg_text = get_arg_text(self.get_object_at_cursor()) if arg_text: self.calltip_start = self.text.index("insert") self.calltip = self._make_calltip_window() self.calltip.showtip(arg_text) return "" #so the event is handled normally.

Aug 24, 1999© 1999 CNRI, Guido van Rossum 15 Class browser New Tree widget class –uses model/view/controller –path browser: change model only pyclbr.py parses module source –looks for classes and methods –modified to find top-level functions

Aug 24, 1999© 1999 CNRI, Guido van Rossum 16 ClassBrowser.py

Aug 24, 1999© 1999 CNRI, Guido van Rossum 17 PathBrowser.py

Aug 24, 1999© 1999 CNRI, Guido van Rossum 18 Debugger Currently sucks :( Go, step, over, out commands Set break points in source window view call stack, locals, globals –and source, in editor window Stack viewer separately usable post-mortem inspection Right-click in stack trace: go to src

Aug 24, 1999© 1999 CNRI, Guido van Rossum 19 StackViewer.py

Aug 24, 1999© 1999 CNRI, Guido van Rossum 20 Debugger.py

Aug 24, 1999© 1999 CNRI, Guido van Rossum 21 Demo (If there’s time left)