Measures Concepts
GitHub icon

Yoix

Yoix - Programming language

< >

Yoix is an open source programming language created in 2000 by Rich Drechsler and John Mocenigo.

#615on PLDB 24Years Old

In computer programming, Yoix is a high-level, general-purpose, interpreted, dynamic programming language. The Yoix interpreter is implemented using standard Java technology without any add-on packages and requires only a Sun-compliant JVM to operate. Initially developed by AT&T Labs researchers for internal use, it has been available as free and open source software since late 2000.. Read more on Wikipedia...


Example from hello-world:
import yoix.stdio.*; printf("Hello World");
Example from Wikipedia:
import yoix.*.*; BuildYoixLogoImage(double height, Color color, int addshadow) { // create the basic image, without shadow GenImage(double height, Color color, Font imagefont, double scale) { Image yoixlogo = { int type = TYPE_RGB_ALPHA; Color imgcolor = color; double scale = scale; Font imagefont = imagefont; Font regfont = imagefont.scalefont(0.5, 0.5); Graphics graphics = { Font font = imagefont; int textantialiasing = TRUE; }; double ywd = stringWidth(graphics.font, "Y"); Dimension size = { double height = height; double width = ywd * 5.25; }; double owd = stringWidth(graphics.font, "o"); double iwd = stringWidth(graphics.font, "i"); double xwd = stringWidth(graphics.font, "x"); ywd += iwd; ywd /= 2.0; paint(Rectangle r) { double alpha = 1.0; double alpha2 = 0.3333; int limit = 12; graphics { gsave(); erasedrawable(0.0); // for transparent PNG rectclip(r); setrgbcolor(imgcolor.red, imgcolor.green, imgcolor.blue); translate(48 * this.scale, 44 * this.scale); for(n=0; n<limit; n++) { moveto(0.0, 0.0); setfont(this.imagefont); // "handmade" kerning show("Y", alpha); if (n == 0) { moveto(ywd, 0.0); show("o", alpha); moveto(ywd + owd - 0.3 * iwd, 0.0); show("i", alpha); moveto(ywd + owd + 0.8 * iwd, 0.0); show("x", alpha); moveto(ywd + owd + 0.8 * iwd + xwd, -this.imagefont.height * 0.33); setfont(this.regfont); show("\xAE", alpha); alpha = alpha2; } alpha *= 0.75; rotate(30); } grestore(); } } }; return(yoixlogo); } Font basefont = { String name = "ClearviewATT-plain-48"; }; double scale = height / 90.0; Font imagefont = basefont.scalefont(scale, scale); if (addshadow) { Image logo = GenImage(height, color, imagefont, scale); image = new Image { int type = TYPE_RGB_ALPHA; Image source = logo; Image img = logo; // convolve image to make a (lightened) shadow Image shadow = new Image { int type = TYPE_RGB_ALPHA; Image source = img; Array kernel = new Array[100]; Pointer ptr; for(ptr in kernel) *ptr = 0.0055; paint() { convolve(kernel); } }; // combine the image and shadow into one image paint(Rectangle r) { graphics { gsave(); moveto(0, 0); showimage(this.img); moveto(this.img.size.height * 0.005, this.img.size.height * 0.02); showimage(this.shadow); grestore(); } } }; } else { image = GenImage(height, color, imagefont, scale); } return(image); } // rudimentary argument processing (getopt is also available) // first argument is height of image double sz = (argc > 1) ? atof(argv[1]) : 270; int shdw = 1; int print = 0; // second argument: if 0/1 turn shadow off/on, otherwise // assume it is a filename for printing. if (argc > 2) { if (argv[2] =~ "^[01]$") { shdw = atoi(argv[2]); } else { print = 1; } } Image yoixlogo = BuildYoixLogoImage(sz, Color.black, (sz >= 72) && shdw); if (print) { Stream output; if ((output = open(argv[2], "w")) != NULL) { encodeImage(yoixlogo, "png", output); close(output); } } else { JFrame jf = { int visible = TRUE; Dimension size = NULL; Array layout = { new JPanel { Dimension preferredsize = { double width = yoixlogo.size.width; double height = yoixlogo.size.height; }; Color background = Color.white; Image backgroundimage = yoixlogo; int backgroundhints = SCALE_NONE; }, }; }; }

Language features

Feature Supported Token Example
Strings ✓ "
"Hello world"
Print() Debugging ✓ printf
Comments ✓
// A comment
Line Comments ✓ //
// A comment
Semantic Indentation X

View source

- Build the next great programming language · Search · Add Language · Features · Creators · Resources · About · Blog · Acknowledgements · Queries · Stats · Sponsor · Day 605 · feedback@pldb.io · Logout