ECMA TC-53 Terms

1-wire
a serial protocol using a single data line plus ground reference for communication.
Actuator
A device that is reponsible for moving some part of a machine (eg a servo or motor).
Address
An identifier for interfacing with a specific component, device, or board.
Analog
Systems with a continuosly variable signal.
Analog-to-Digital Converter
Converts an analog signal to a digital value.
Application
In the context of TC-53, an application is a software program designed to perform a specific function on a specific device. Applications may import libraries and providers in the form of modules.
Application Programming Interface (API)
A set of features and rules that exist inside a software program enabling interaction with it through software.
Arguments
An Array-like object accessible inside functions that contains the values of the arguments passed to that function.
ArrayBuffer
An object used to represent a generic, fixed-length raw binary data buffer.
Asynchronous
A communication environment where each party receives and processes messages when possible rather than immediately.
Baud Rate
Rate at which information in transferred. Measured in bytes per second.
Binding
The value of a function's this attribute, which can vary with how the function was called. See "This".
Blocking
Code which runs outside of the current execution context but forces the context to wait.
Buffer
A storage in physical memory used to temporarily store data while it is being transferred from one place to another.
Built-in
Built-ins are javascript modules that are bundled with the host.
Bus
A communications system that transfers data. A "Bus" includes hardware, software and the protocol.
Button
A mechanism that completes an electrical circuit when pressed.
Byte
A unit of data consisting of 8 binary bits
CANbus
The Controller Area Network protocol enables communication between a network of devices. CAN is widley used in automobile electronics.
Callback
A callback function is passed as an argument to another function and is exectued when some process is completed.
Class
Class is a template definition of an object's properties and methods.
Clock Signal
A signal that oscillates between high and low, that is used like a metronome to control circuit timing.
Closure
The binding which defines the scope of execution.
Compartments
Compartments are used to store separate JavaScript heaps improving GC performance and adding security.
Compile Time Function Execution
When the arguments to a pure function are known at compile time the compiler can create more highly optimized code vs compilation at run time.
Composable
Functions that can be combined with one or more other functions. Composable functions require one input argument and one output value.
Constructor
The constructor initializes an object and can provide access to its private information.
Current
The rate of flow of an electric charge.
Data Accuracy
How close a data measurement is to it's theoretical expected output.
Data Provenance
Knowing where data came from and how it arrived.
Data Timeliness
A measure of data timeliness. For example, how long did that "read" command take to execute? On embedded systems this could be a few ns. On a cloud based device it could be several seconds.
Data Trustworthiness
The combination of data provenance, timeliness an accuracy.
Dependency Injection
Creating and passing in an obect's dependencies rather that having that object create it's own dependencies.
Digital
Capable of having just two states, high and low.
Driver
Software or a circuit used to control another decice.
Duty cycle
The percentage of time that a PWM signal is high or on.
ES-Strict
See "Strict Mode"
Embedded Device
A single purpose computing system wholly contained within another device or product.
Encapsulation
The packing of data and functions into one component and then controlling access to that component.
Events
An event which takes place on an object or element. Event targets can be configured to listen for certain events and call an Event Handler when the happen.
Expander
A device that provides addition inputs and/or outputs.
Extends
The extends keyword is used in class declarations or class expressions to create a class which is a child of another class.
Extensible Web Manifesto
A set of principles that guides how web standards committees create and prioritize new features. These principles include:
  • Focus on adding new low-level capabilities to the web platform that are secure and efficient.
  • Expose low-level capabilities that explain existing features, such as HTML and CSS, allowing authors to understand and replicate them.
  • Develop, describe and test new high-level features in JavaScript, and allow web developers to iterate on them before they become standardized. This creates a virtuous cycle between standards and developers.
  • Prioritize efforts that follow these recommendations and deprioritize and refocus those which do not.
External provider
A downloadable module that provides a surface API that matches the GPIO API specified by TC-53.
Function
A code snippet that can be called by other code or by itself.
General Purpose Input/Output (GPIO)
A digital signal pin that can be configured for input or output.
Generic Sensor API
A framework for exposing sensor data to the Open Web Platform in a consistent way.
Harden
Tamper-proof an API surface (See SES).
Hardware Abstraction Layer (HAL)
A software layer between the OS or host and the hardware that provides a standard interface for interacting with hardware components.
Host
Provides the Javascript environment including the javascript engine, built-ins, and other objects.
I/O Class Pattern
The I/O Class Pattern describes a logical superclass for various hardware interface types (Digital, Analog, Serial, I2C, etc).
I2C
A communication bus standard that requires two lines and supports multiple, addressable devices on the same connection.
Immutable
An object whose content cannot be changed.
Impedance
The resistance of a electrical circuit to current.
Implementor
An implementor creates a provider. An implementor could be the creator of a host, or a 3rd party library.
Import
The import statement will bring in bindings provided by external modules.
Instance
An object that has been created by a function constructor, class constructor, or function factory.
Internal provider
A built-in module that provides a surface API that matches the GPIO API specified by TC-53.
Internet of Things (IoT)
The universe of common devices with connectivity that allows them to send and receive data over the Internet.
Interrupt
An interrupt is an external signal that indicates some process should be executed immediately.
JTAG
JTAG is a common hardware interface that provides your computer with a way to communicate directly with the chips on a board.
Javascript Object Notation (JSON)
A data-interchange format that closely resembles a subset of JavaScript syntax.
Job
A task to be executed asynchronously.
Library
A library provides a surface API that abstracts away the GPIO API. For example, an LED library could provide an API with the methods on(), off(), blink() and toggle() that abstract away an application developers need to interact directly with a digital IO instance.
Maximally Minimal
The supposition that specifying a minimal API surface for base classes allows for greatest value realization and a reduced risk of painting oneself into a corner. A concept based on conversations around EcmaScript classes.
Method
A function which is a property of an object.
Microcontroller (MCU)
A Microcontroller is a single integrated circuit with one or more CPUs, memory and programmable input/output.
Mixin
A class or interface in which some or all of its methods and/or properties are unimplemented, requiring that another class or interface provide the missing implementations. Mixins extend a class.
Module
Ecmascript code stored in an external file and imported via the ES6 import statement.
Mutable
A variable that can be changed.
Native bindings
Native bindings allow Ecmascript to call native code.
Non-blocking
Code that does not block execution.
Normative
Things that have been standardized and must be followed as a rule.
Parameter
A named variable passed into a function.
Partial Evaluation
When some arguments to a pure function are known at compile time the compiler can create more highly optimized code vs compilation at run time.
Pin bank
A group of input/output pins.
Polling
When code periodically checks the state of an input to see if a change has occurred.
Polymorphism
The presentation of one interface for multiple data types.
Precompile
See "Partial Evaluation" and "Compile Time Function Execution"
Promise
An object that's returned by a function that has not yet completed its work.
Protocol
A system of rules that define how data is exchanged between systems.
Provider
A provider is a module that provides a surface API that matches the GPIO API specified by TC-53.
Pull up/Pull down resisitor
A resistor used to ensure a known state for a signal. In an open circuit (eg a switch that is off, or button that is not pressed) half the circuit is in an indeterminate or "floating" state. A pull up or pull down resistor can address that.
Pulse Width Modulation (PWM)
Pulse width modulation is the regulation of a digital signal between on and off (duty cycle) over a fixed period of time (frequency) to create an averaged value voltage.
Reflection
The ability of a program to inspect or modify its own behavior.
Register
Locations in a device's memory which can be written to or read from. These memory locations may contain configuration settings or current state of the device.
Secure EcmaScript
a frozen environment that removes programs abilities to interfere with each other.
Self Hosted
~~~ Need help with this from tc53-2018-019 (Boston meeting) ~~~
Sensor
A device that detects and responds to some type of input from the physical environment.
Serial
A bus that communicates using one bit at a time. RS-232, I2C and SPI are all examples of serial communication.
Serial Peripheral Interface (SPI)
A synchronous serial communication protocol that support full duplex communication and multiple devices on a single bus.
Servomotor (Servo)
A particular form of servomechanism that uses a potnetiometer or encoder to precisely position a motor.
Single Board Computer (SBC)
A complete computer, including microprocessor, memory and I/O, built on a single circuit board. SBC's are usually designed to consume low power and offer a compact form factor.
Single-threaded
One command is processed at a time.
Sleep
Sleep mode in embeddable systems is also known as low-power or power-down mode. Current data is retained, the core processor is still running and the system can respond to "wake" events on interrupt or other I/O.
Stepper Motor
An electric motor that moves a set number of degrees per "step", a step being a change in the voltage applied to the devices coils (usually two).
Strict Mode
A restricted variant of EcmaScript.
Subclass
A class that inherits the attributes of another class.
Synchronous
Real-time communication where each party receives, processes and replies to messages instantly.
System Management Bus (SMBus)
A simple 2-wire bus derived from I2C for lightweight communication.
Tasks (W3C Tasks)
A set of instructions queued onto the event loop for exectution.
Third-Party Libraries
Providers, libraries, or frameworks provided by a developer other than the Provider developer or the application developer.
This
The JavaScript context object in which the current code is executing.
Thread
An execution context.
Unit Tests
Software testing against individual units of source code.
W3C Sensor API
See "Generic Sensor API"
WeakMap
A collection of key/value pairs in which the keys are objects only and the values can be arbitrary values. If there are no other references to the key object it will be released to the the garbage collector.
Web Things
A common data model and API for the Web of Things
Web Worker
An object the can run code in a seperate thread or execution context.