Recent

Author Topic: Amigo programming language  (Read 7246 times)

paxscript

  • New Member
  • *
  • Posts: 16
Amigo programming language
« on: November 26, 2024, 10:14:27 am »
Hello All,

I have released my new product:

www.amigo-lang.com

Amigo is a new general-purpose, object-oriented, statically typed, high-level programming language. The main target of use is solving AI problems. It has simple C-like syntax, powerful capabilities for data representation and processing, and efficient memory management.

The key features of Amigo are:

- The core of the language is very small. It includes simple data types (int, string, double, etc.) and first-class functions.
- Amigo has a single compound data type—the tuple. Despite this, it provides powerful tools for creating, modifying, and manipulating any dynamic data structures: lists, trees, queues, etc. At the same time, the garbage collector is not used.
- Amigo introduces an extended concept of function. It allows introducing all OOP features without borrowing additional concepts. Such concepts as classes, objects, arrays, enums, ranges, interfaces, etc., are derived from the concepts of function and closure. In other words, we can consider OOP concepts as just a syntax sugar in relation to the Amigo core.
- Amigo has powerful macros. Any Amigo program can be used as a macro because Amigo macros are made in the language itself. You can debug macros in the same IDE.

Other features and concepts supported by Amigo are:

- Generic types
- Operator overloading
- Coroutines, generators, and fibers
- Continuations
- Bunches of functions
- Delegates
- Linq
- Destructuring and pattern matching
- Object literals and anonymous classes
- Modules (units of compilation)

Amigo interpreter is written in Delphi from scratch. The source code is compatible with FPC/Lazarus. IDE code uses TSynEdit component. I'm planning to release AmigoScripter soon.

Thanks.

A.

maurog

  • New Member
  • *
  • Posts: 38
Re: Amigo programming language
« Reply #1 on: November 26, 2024, 07:31:01 pm »
Oh WOW, I’ve always been a fan of PaxScript.
I used PaxScript in a CAM project as a runtime scripter.
(With PaxScripter, I created post-processors for CNC machines at runtime.)
Below is a screenshot showing PaxScripter/PaxDebugger + CADSys42-2D  in action.

Do you plan to port the legendary PaxScripter to Lazarus at some point?

Thanks for sharing,

Best regards,
Maurog.

« Last Edit: November 28, 2024, 12:22:01 am by maurog »
And yes, Lazarus is definitely a beast – it comes with everything you need, but sometimes also more than you expect. 😅 (Chat-GPT)

fireboxsoft

  • New Member
  • *
  • Posts: 11
Re: Amigo programming language
« Reply #2 on: December 02, 2024, 03:40:51 am »
Bro, you're amazing! I've been using PaxCompiler and paxScript for many years, of course, with the Pascal language. But later on, the PaxCompiler website was acquired, and I'm looking forward to a version that supports Pascal and is compatible with the Lazarus development tool.
大哥,你太厉害了!我好多年前就在使用PaxCompiler以及paxScript,当然,使用的是pascal语言。但后来paxCompiler网站被收购了,期待支持pascal语言以及支持lazarus开发工具的版本。 :D

paxscript

  • New Member
  • *
  • Posts: 16
Re: Amigo programming language
« Reply #3 on: December 02, 2024, 05:30:46 am »
Thank you!

I'm working on AmigoBasic and AmigoPascal interpreters now (they are using the same Amigo runner), so AmigoScripter and Amigo IDE will support 3 languages.

A.

maurog

  • New Member
  • *
  • Posts: 38
Re: Amigo programming language
« Reply #4 on: December 02, 2024, 11:19:44 pm »
These are great news. Thank you.
And yes, Lazarus is definitely a beast – it comes with everything you need, but sometimes also more than you expect. 😅 (Chat-GPT)

my_only_lonely

  • New member
  • *
  • Posts: 8
Re: Amigo programming language
« Reply #5 on: December 23, 2024, 03:40:13 am »
Thank you!

I'm working on AmigoBasic and AmigoPascal interpreters now (they are using the same Amigo runner), so AmigoScripter and Amigo IDE will support 3 languages.

A.
Does Amigo support compiling to machine code just like PaxCompiler, or it is a interpreter only language?

paxscript

  • New Member
  • *
  • Posts: 16
Re: Amigo programming language
« Reply #6 on: December 23, 2024, 05:51:53 am »
Amigo compiler generates a bytecode that is interpreted with Amigo VM.

A.

my_only_lonely

  • New member
  • *
  • Posts: 8
Re: Amigo programming language
« Reply #7 on: December 23, 2024, 07:38:52 am »
Amigo compiler generates a bytecode that is interpreted with Amigo VM.

A.

That is a pity. The reason why I bought PaxCompiler and not using free PascalScript is the performance.
I'm using it on some server side performance-sensitive logic. It would be excellent if it could support compiled machine code.
Would you at least consider adding JIT support? As far as I know, DWScript is also interpreted, but it supports JIT.
« Last Edit: December 23, 2024, 07:44:21 am by my_only_lonely »

440bx

  • Hero Member
  • *****
  • Posts: 4875
Re: Amigo programming language
« Reply #8 on: December 23, 2024, 08:54:21 am »
Amigo interpreter is written in Delphi from scratch. The source code is compatible with FPC/Lazarus.
Just curious, do you intend to eventually make the source available ?
(FPC v3.0.4 and Lazarus 1.8.2) or (FPC v3.2.2 and Lazarus v3.2) on Windows 7 SP1 64bit.

paxscript

  • New Member
  • *
  • Posts: 16
Re: Amigo programming language
« Reply #9 on: December 23, 2024, 09:25:40 am »
That is a pity. The reason why I bought PaxCompiler and not using free PascalScript is the performance.
I'm using it on some server side performance-sensitive logic. It would be excellent if it could support compiled machine code.
Would you at least consider adding JIT support? As far as I know, DWScript is also interpreted, but it supports JIT.


Yes, it would be good, but it is not the nearest target. The main direction is flexibility.

AmigoScripter will support 3 languages, and it will be available for all platforms supported by Delphi. All languages will include such traits as coroutines, continuations, LINQ, the actor model, macros, and cross-language programming. Support of classes comes from first-class functions and closures ( www.amigo-lang.com/genesis_classes.htm ); support of data structures is based on processing of tuples (the single built-in data type in Amigo VM) and generics. For example, a Pascal-like array can be represented as class RangedArray<R, T>. This is flexible, but it will require bytecode optimization.

A.
« Last Edit: December 23, 2024, 10:02:52 am by paxscript »

paxscript

  • New Member
  • *
  • Posts: 16
Re: Amigo programming language
« Reply #10 on: December 23, 2024, 09:34:14 am »
Just curious, do you intend to eventually make the source available ?

I'm going to sell licenses on the full source code of the scripter. It should allow me to continue development.

A.

my_only_lonely

  • New member
  • *
  • Posts: 8
Re: Amigo programming language
« Reply #11 on: December 23, 2024, 09:37:46 am »
I'm a bit curious since Pascal syntax is not supported yet.
Does it supports all Delphi data types? For example Delphi has Integer, SmallInt, ShortInt, Int64, Byte, Word, Cardinal.
It might be important if we want to migrate from PaxCompiler to the Amigo. DWScript only support Int64 for Integer values.
« Last Edit: December 23, 2024, 09:40:21 am by my_only_lonely »

paxscript

  • New Member
  • *
  • Posts: 16
Re: Amigo programming language
« Reply #12 on: December 23, 2024, 09:56:00 am »
I'm a bit curious since Pascal syntax is not supported yet.
Does it supports all Delphi data types? For example Delphi has Integer, SmallInt, ShortInt, Int64, Byte, Word, Cardinal.
It might be important if we want to migrate from PaxCompiler to the Amigo. DWScript only support Int64 for Integer values.


Yes, Amigo VM supports all primary .Net types. AmigoPascal will support all compound Delphi/FPC types (enums, sets, records, classes, arrays, etc.), and all these types will be derived from the Amigo kernel in a unified way.

A.

my_only_lonely

  • New member
  • *
  • Posts: 8
Re: Amigo programming language
« Reply #13 on: December 23, 2024, 10:01:35 am »
That is great! I know JIT or compiled machine code is not the nearest target. But is it on the roadmap?
For example LuaJIT is more porpular than the original Lua on the server side usage.

paxscript

  • New Member
  • *
  • Posts: 16
Re: Amigo programming language
« Reply #14 on: December 23, 2024, 10:08:33 am »
That is great! I know JIT or compiled machine code is not the nearest target. But is it on the roadmap?
For example LuaJIT is more porpular than the original Lua on the server side usage

Yes, JIT is the road map. I have to make deep bytecode optimization to prepare it.
« Last Edit: December 23, 2024, 10:10:55 am by paxscript »

 

TinyPortal © 2005-2018