C Runtime In Tcl Andreas Kupries © th Annual Tcl Conference

Slides:



Advertisements
Similar presentations
User-Defined Functions Like short programs Can operate on their own data Can receive data from callers and return data to callers.
Advertisements

Working with Forms. how are forms manipulated? the document object contains an array of forms objects, one for each form, in document order –forms[] any.
C++ Templates. What is a template? Templates are type-generic versions of functions and/or classes Template functions and template classes can be used.
Pig Contributors Workshop Agenda Introductions What we are working on Usability Howl TLP Lunch Turing Completeness Workflow Fun (Bocci ball)
1 Starting a Program The 4 stages that take a C++ program (or any high-level programming language) and execute it in internal memory are: Compiler - C++
Scripting Languages CS 351 – Programming Paradigms.
Guide To UNIX Using Linux Third Edition
ASP.NET Programming with C# and SQL Server First Edition
C++ fundamentals.
Introduction - The Need for Data Structures Data structures organize data –This gives more efficient programs. More powerful computers encourage more complex.
COMPUTER PROGRAMMING. Introduction to C++ History Merges notions from Smalltalk and notions from C The class concept was borrowed from Simular67 Developed.
MICHAEL EDDINGTON Advanced Fuzzing with Peach 2.
|Tecnologie Web L-A Anno Accademico Laboratorio di Tecnologie Web Sviluppo di applicazioni web Servlet
M1G Introduction to Programming 2 4. Enhancing a class:Room.
CIS 375—Web App Dev II ASP.NET 2 Introducing Web Forms.
C++ Programming. Table of Contents History What is C++? Development of C++ Standardized C++ What are the features of C++? What is Object Orientation?
Working Out with KURL! Shayne Koestler Kinetic Data.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Computer Architecture and Operating Systems CS 3230: Operating System Section Lecture OS-7 Memory Management (1) Department of Computer Science and Software.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
© 2008, Renesas Technology America, Inc., All Rights Reserved 1 Purpose  This training module provides an overview of optimization techniques used in.
ASP.NET.. ASP.NET Environment ASP.NET is Microsoft's programming framework that enables the development of Web applications and services. It is an easy.
Programming Languages and Paradigms Object-Oriented Programming (Part II)
Running ORGANON in R Peter Gould and David Marshall Growth Model User Group December 9, 2011.
Cross Site Integration “mashups” cross site scripting.
Using CookCC.  Use *.l and *.y files.  Proprietary file format  Poor IDE support  Do not work well for some languages.
Chapter 13 Programming in the Large Dr. Jiung-yao Huang Dept. Comm. Eng. Nat. Chung Cheng Univ. TA: 鄭筱親 陳昱豪.
Software Engineering in Robotics Interfacing to external functions Henrik I. Christensen –
1 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Introduction to Etch Scott.
Tcl'2003 DocTools 10 th Annual Tcl/Tk Conference Andreas Kupries ActiveState Corporation.
Shannon Hastings Multiscale Computing Laboratory Department of Biomedical Informatics.
Porting a large scale enterprise application from Tcl/Tk 8.4 to 8.5 Prashant Thakre, Tushar Gupta {prashant_thakre, Gaurav Bansal.
TAKE – A Derivation Rule Compiler for Java Jens Dietrich, Massey University Jochen Hiller, TopLogic Bastian Schenke, BTU Cottbus/REWERSE.
A short introduction to the PHP Code Service (PCS) François Laupretre.
FALL 2001ICOM Lecture 01 ICOM 4015 Advanced Programming Lecture 0 Review of Programming I Reading: LNN Chapters 1-3,5-6.
Using the ARCS Grid and Compute Cloud Jim McGovern.
G.Govi CERN/IT-DB 1 September 26, 2003 POOL Integration, Testing and Release Procedure Integration  Packages structure  External dependencies  Configuration.
Chapter 12: Programming in the Large By: Suraya Alias 1-1.
Scion Macros How to make macros for Scion The Fast and Easy Guide.
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
Quiz 1 A sample quiz 1 is linked to the grading page on the course web site. Everything up to and including this Friday’s lecture except that conditionals.
Toni Petrina Microsoft MVP for C# Ekobit d.o.o. Controlling and extending development environment.
NCI CBIIT LIMS ISIG Meeting– July 2007 NCI CBIIT LIMS Consortium Interface SIG Mission: focus on an overall goal of providing a library of interfaces/adapters.
mathemaTcl – a collection of mathematical extensions
Data Transport for Online & Offline Processing
Compiler Construction (CS-636)
CSE 341 Section 9 Nick Mooney Spring 2017
Wrapping Fortran libraries
Cmdr Andreas Kupries ActiveState Software Inc. © 2013
C Runtime In Tcl v3 Andreas Kupries ActiveState Software Inc. © 2011
Object-Orientated Programming
Course Name: QTP Trainer: Laxmi Duration: 25 Hrs Session: Daily 1 Hr.
Lecture 1 Introduction.
Henning Schulzrinne Advanced Programming
.NET and .NET Core 9. Towards Higher Order Pan Wuming 2017.
Web Development Using ASP .NET
Automation with Gwen Introduction.
ABHISHEK SHARMA ARVIND SRINIVASA BABU HEMANT PRASAD 08-OCT-2018
Agile testing for web API with Postman
Nicholas Shahan Spring 2016
CSE 341 Section 9 Fall 2017 Adapted from slides by Nick Mooney, Nicholas Shahan, Cody Schroeder, and Dan Grossman.
Enterprise Java Beans.
Standard Template Library
Data Structures and ADTs
Rule Engine Concepts and Drools Expert
SPL – PS1 Introduction to C++.
ONAP Architecture Principle Review
MS Confidential : SharePoint 2010 Developer Workshop (Beta1)
Implementation Plan system integration required for each iteration
Presentation transcript:

C Runtime In Tcl Andreas Kupries © 2016 23th Annual Tcl Conference Crowne Plaza River Oaks, Houston, TX Nov 14 – 18, 2016

CriTcl – Introduction I Invented by Jean-Claude Wippler Tcl Operation & Use → 2 Levels Script – Glue, Policy System – Speed, Hiding, Bindings to externals C extensions – Easy to use, complex to write Configure/autoconf, Make, Boilerplate C code, … C Runtime In Tcl – DSL using Tcl's strengths Text processing, Templates, Glue to external cmds Collects C code, arranges for compile on- demand (Tcl autoload facilities)

CriTcl – Introduction II Initial design geared towards dev system C compiler needed at runtime Deployment to customers – Oops Require C compiler on production system 😖 Rewrite to regular extension 😞 Leverage Tcl again 😁 Read the input files as usual, force an immediate compile & link cycle, deploy the resulting library & package ♫ You now have a build system

CriTcl – New Work Mainly keep the course Lighten the burden of the developer Reduce overhead Automate Via Add-on packages to handle specific common situations Enhancements to the Critcl core

CriTcl – Core Enhancements Meta Data Stub Table Support Optional and Variadic Arguments (cproc) Custom Argument Types Capturing Output Code Location Management

CriTcl – Add-ons Generators Ekeko's (Tcl_[Set|Get]AssocData) String Pools – Custom Literal Tables Enumerations Mapping External Enumeration Mapping External Bitsets / Flags Classes & Objects Build utilities

CriTcl – Location We are @ github https://andreas-kupries.github.com/critcl https://github.com/andreas-kupries/critcl

CriTcl – Ahead Possible DSL enhancements Named parameters / options Support for upvar Parameterized types list<T>, list<list<T>> &T – See above, upvar int[0..256], int [-1..1], … … More packages Useful C code fragments (Alloc, Trace, …) ...

CriTcl – Ahead Slice & Dice branch Slice 150K monolithic core into pieces Easier to understand and maintain Better internal APIs Encapsulate CC access apart from general management Add tcc4tcl support

CriTcl – Future Ahead