Thinking About Star
By Francis McCabe and Mike Sperber
()
About this ebook
This short booklet will introduce you to the Star programming language, what is novel about it and why you should know more.
Star is a modern functional first programming language that has a rich set of features. It is readable, safe and extensible. It supports multiple paradigms including actor based programming, query based programming, and concurrent programming.
The booklet highlights some of the key features of the language and gives extended examples including showing how a semi-conductor factory can be scheduled using Star.
It is intended to showcase some of the features of the language but it is not a full introduction to programming in Star.
Francis McCabe
Frank McCabe is a Senior Architect at Instart Logic Inc. Educated in England at Manchester University and Imperial College he has been involved in many research areas, in Europe, Japan and in the US. In the 1980's he co-founded a small startup LPA that developed logic programming solutions for many thousands of customers. During the 1990's he was active in the European scene for multi-agent systems. He participated in several European research projects. In the 2000's, he was active in Standard Settings Organizations (including W3C) focussing on areas such as the architecture of Service Ecosystems, Inter-agent communication, Java interfaces, Web services and Business Process Modeling Language. Recently he has been working on a new programming language – called Star – that aims to combine modern concepts from functional programming, best practices for software engineering and to permit straightforward extensibility. Star is a multi-paradigm language that can equally well tackle intensive real-time calculations and complex AI planning tasks such as scheduling the flow of material through a factory.
Related to Thinking About Star
Related ebooks
Programming in Star Rating: 0 out of 5 stars0 ratingsJava for Beginners: A Crash Course to Learn Java Programming in 1 Week Rating: 5 out of 5 stars5/5Objective-C Programming Nuts and bolts Rating: 0 out of 5 stars0 ratingsIntroduction to Programming Languages Rating: 4 out of 5 stars4/5Programming Essentials Rating: 5 out of 5 stars5/5JAVA: Java Programming for beginners teaching you basic to advanced JAVA programming skills! Rating: 0 out of 5 stars0 ratingsGroovy Programming: An Introduction for Java Developers Rating: 5 out of 5 stars5/5Subject Oriented Programming Rating: 0 out of 5 stars0 ratingsLearn Kotlin for Android Development: The Next Generation Language for Modern Android Apps Programming Rating: 0 out of 5 stars0 ratingsMy First In Java Rating: 0 out of 5 stars0 ratingsRust In Practice Rating: 0 out of 5 stars0 ratingsRust In Practice: A Programmers Guide to Build Rust Programs, Test Applications and Create Cargo Packages Rating: 0 out of 5 stars0 ratingsJAVA Programming for Beginners: The Simple Guide to Learning JAVA Programming fast! Rating: 0 out of 5 stars0 ratingsCrystal Clear Java: 1St Edition Rating: 0 out of 5 stars0 ratingsMastering C: A Comprehensive Guide to Programming Excellence Rating: 0 out of 5 stars0 ratingsProgramming Language Concepts: Improving your Software Development Skills Rating: 0 out of 5 stars0 ratingsUnderstanding Python: Beginner's Guide to Programming Rating: 0 out of 5 stars0 ratingsFour Programming Languages Creating a Complete Website Scraper Application Rating: 0 out of 5 stars0 ratingsHow to Learn PHP, MySQL and Javascript Quickly!: For Dummies Rating: 5 out of 5 stars5/5Swift Programming Nuts and bolts Rating: 0 out of 5 stars0 ratingsiOS Programming Nuts and bolts Rating: 4 out of 5 stars4/5Java 17 Quick Syntax Reference: A Pocket Guide to the Java SE Language, APIs, and Library Rating: 0 out of 5 stars0 ratingsC# Programming Fundamentals Rating: 0 out of 5 stars0 ratingsBeginning Jakarta EE: Enterprise Edition for Java: From Novice to Professional Rating: 0 out of 5 stars0 ratingsLearn Rust Programming: Safe Code, Supports Low Level and Embedded Systems Programming with a Strong Ecosystem (English Edition) Rating: 0 out of 5 stars0 ratingsC# For Beginners: An Introduction to C# Programming with Tutorials and Hands-On Examples Rating: 0 out of 5 stars0 ratings
Programming For You
Game Development with Unreal Engine 5: Learn the Basics of Game Development in Unreal Engine 5 (English Edition) Rating: 0 out of 5 stars0 ratingsPython Programming : How to Code Python Fast In Just 24 Hours With 7 Simple Steps Rating: 4 out of 5 stars4/5Excel : The Ultimate Comprehensive Step-By-Step Guide to the Basics of Excel Programming: 1 Rating: 5 out of 5 stars5/5Python: For Beginners A Crash Course Guide To Learn Python in 1 Week Rating: 4 out of 5 stars4/5HTML & CSS: Learn the Fundaments in 7 Days Rating: 4 out of 5 stars4/5Grokking Algorithms: An illustrated guide for programmers and other curious people Rating: 4 out of 5 stars4/5C# Programming from Zero to Proficiency (Beginner): C# from Zero to Proficiency, #2 Rating: 0 out of 5 stars0 ratingsSQL QuickStart Guide: The Simplified Beginner's Guide to Managing, Analyzing, and Manipulating Data With SQL Rating: 4 out of 5 stars4/5Coding All-in-One For Dummies Rating: 4 out of 5 stars4/5Learn JavaScript in 24 Hours Rating: 3 out of 5 stars3/5PYTHON: Practical Python Programming For Beginners & Experts With Hands-on Project Rating: 5 out of 5 stars5/5Python Machine Learning By Example Rating: 4 out of 5 stars4/5Learn to Code. Get a Job. The Ultimate Guide to Learning and Getting Hired as a Developer. Rating: 5 out of 5 stars5/5Python Data Structures and Algorithms Rating: 5 out of 5 stars5/5Problem Solving in C and Python: Programming Exercises and Solutions, Part 1 Rating: 5 out of 5 stars5/5Python QuickStart Guide: The Simplified Beginner's Guide to Python Programming Using Hands-On Projects and Real-World Applications Rating: 0 out of 5 stars0 ratingsLearn SQL in 24 Hours Rating: 5 out of 5 stars5/5Linux: Learn in 24 Hours Rating: 5 out of 5 stars5/5Raspberry Pi Cookbook for Python Programmers Rating: 0 out of 5 stars0 ratingsThe Unofficial Guide to Open Broadcaster Software: OBS: The World's Most Popular Free Live-Streaming Application Rating: 0 out of 5 stars0 ratings
Reviews for Thinking About Star
0 ratings0 reviews
Book preview
Thinking About Star - Francis McCabe
Abstract
Star is a functional, multi-paradigm and extensible programming language that runs on the Java platform. It is a full-scale language, capable of expressing many kinds of program. As such it is a rich language with many features.
Star was originally developed as part of a framework for processing a range of real-time business applications such as factory scheduling and data analytics.
This white paper explores some of the basic features of the language and shows by example how it can be used to solve problems.
Why Star?
Star is first of all a general purpose programming language. You can use it to effectively solve problems in many domains. Star was developed to help write analytical and statistical applications. However, it has evolved into a general purpose problem-oriented programming language.¹ Many of the features and functionalities of the platform are expressed in a way that is consistent with Star. As such, it plays a key role in enabling the different elements of an application built on the platform to work smoothly together.
Like any programming language, Star represents a distinct view point on what programming languages should be. Star is a rich functional-first language with extensibility capabilities. Star is designed to be readable, powerful, safe and extensible.
In the spectrum of high-level and low-level programming languages, Star is at the higher end of the range. But, importantly, it's extensibility features enable it to support even higher level constructs.
Performance is also important, of course. However, we view performance as being guided by the principle of `fast enough is good enough'. In practice, since the compiler is based on the JVM, many Star programs have a performance profile that is commensurate with comparable Java programs.
Functional Programming
Functional programming has roots that go back to the origins of programming itself. However, it has been recently gaining in prominence because of some of the inherent advantages in the paradigm:
Its ‘declarative’ nature makes reasoning about functional programs easier than for ‘procedural’ programs.
This benefits programmers in a surprising number of ways. Of course, the most obvious one is that correctness and type safety are easier to establish than for a program built out of assignment and for-loops.
A subtler but equally critical benefit is that it can make programming itself easier: the programmer is free to focus on sub-problems without unnecessary entanglement with other sub-problems.
The impact of this benefit can be quite dramatic: similar in effect to the introduction of garbage collected memory compared to managed memory allocation.
It’s verbs as well as nouns
Object oriented languages have a very finely developed sense of the noun. An object is intrinsically a noun; objects reference concrete or abstract things that a programmer is manipulating. The notation of classes, interfaces, inheritance and so on represents a powerful set of concepts for organizing the application’s nouns.
However, just as in spoken languages like English, verbs are also important: what you do with objects is at least as important as the objects themselves. Most OO