Batak Programming Language Design Perspective Programming language • Extreme opinions – Blind fanatism – DON’T CARE (they are just the same) • Proportional ones – Language is very important • Communication is of utmost important • Language is a means of communication (bad language => bad communication) – No single language suits every needs – A set of languages can suit every needs 7 language [style] s to fill every needs ? • • • • • • • General purpose programming-language Database-oriented programming-language Shell programming-language Application-level scripting language (XML?) Assembly (style) programming-language Metalanguage (used in YACC) Binary-style (intermediate, machine) May not be the category of language • String processing (Perl, AWK) • Internal language of document (PDF; internal format of Excel, Word documents) • PCL (Printing Command Language) • Logic programming-language • Functional programming-language Integration with relational database (1) • Oracle SQL (real world) CREATE TYPE student AS OBJECT ( id NUMERIC(8), name VARCHAR(30) ); CREATE TABLE IT_students OF student; CREATE TABLE mech_students OF student; Integration with relational database (2) • Some SQL (?) CREATE TYPE student := { numeric<9> id; char[20] name; }; CREATE TABLE <student> IT_students, mech_students ( PRIMARY KEY {id} ); Integration with relational database (3) • In Batak Program P; Type student := { numeric<9> id; char[20] name; }; Table<student> IT_students, mech_students ( PRIMARY KEY {id} ); integer main() { INSERT mech_students INTO IT_students; /* not INSERT INTO IT_students SELECT ... */ }