Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: Ngôn ngữ lập trình KimL

  1. #1
    Ngày gia nhập
    01 2011
    Nơi ở
    Sài Gòn
    Bài viết
    2

    Mặc định Ngôn ngữ lập trình KimL

    Không biết mọi người có từng nghe nói tới esolang (ngôn ngữ lập trình dị biệt) chưa? Nói đại khái, đó là một loại ngôn ngữ lập trình không dùng để lập trình ứng dụng thực sự, mà chỉ nhằm các mục tiêu như: thử nghiệm, học hỏi, hoặc tiêu khiển. Cú pháp của chúng thường rất đặc biệt, thậm chí khó hiểu, hoặc buồn cười.

    KimL là một ngôn ngữ như vậy.

    Một chương trình viết bằng KimL bao gồm những lời gọi hàm trên các đối tượng tiền định nghĩa. Có ba kiểu dữ liệu là int, real và string. Ngoài ra, có một ngăn xếp nội bộ và một dãy 128 phần tử dữ liệu, có thể chứa bất cứ kiểu nào trong số ba kiểu vừa nêu.

    Đoạn mã sau đây là một chương trình tính giai thừa viết bằng ngôn ngữ KimL:
    Code:
    var.decl int f
    io.out "n = "
    io.in int
    ctrl.call fact
    var.set f = _tape(0)
    io.out "n! = " & f
    ctrl.end
    
    fact:
    	ctrl.goto fact_0 if _peek() < 0
    	ctrl.goto fact_1 if _peek() <= 1
    	stack.push _peek() – 1
    	ctrl.call fact
    	tape.write _pop() * _tape(0) at 0
    	ctrl.return
    fact_0:
    	stack.pop
    	tape.write 0 at 0
    	ctrl.return
    fact_1:
    	stack.pop
    	tape.write 1 at 0
    	ctrl.return
    Trông khá giống C hay BASIC về mặt hình thức, nhưng cũng từa tựa Assembly với các lệnh nhảy.

    Mã nguồn viết bằng C++, đã được dịch và chạy tốt trên Windows XP và Ubuntu. Các trình biên dịch đã thử nghiệm gồm Visual C++ 2008 và GCC.
    Vì kinh nghiệm C++ của tác giả còn yếu kém, kính mong quý vị dùng thử và cho ý kiến.

    Mã nguồn tải về từ: http://www.sourceforge.net/projects/kiml
    Tài liệu chi tiết về KimL được đính kèm bài này.
    Đã được chỉnh sửa lần cuối bởi alexanderdna : 04-02-2013 lúc 09:53 PM.
    "In C++ it's harder to shoot yourself in the foot, but when you do, you blow off your whole leg." - Bjarne Stroustrup

  2. #2
    Ngày gia nhập
    08 2010
    Bài viết
    17

    Chà, cái ILYC chưa nghiệm hết thì nay thêm 1 món mới nữa ^^ hâm mộ bạn thật nghen. Trước giờ mình chỉ viết được mỗi cái thông dịch cho brainfck (cũng esolang, nhưng đơn giản cực) bằng C++ + FLTK, thật nhỏ bé so với mấy công trình của bạn. Rất vui nếu được học hỏi thêm ở bạn, vì mình cũng rất khoái lĩnh vực này

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn