Yazoo là một dòng lệnh, giải thích ngôn ngữ kịch bản mà cung cấp một môi trường làm sẵn cho C hay C ++ chức năng & nbsp;. Một người sử dụng nhúng thói quen riêng của mình vào các ngôn ngữ bằng cách tham khảo chúng trong một file mã nguồn của Yazoo, sau đó biên dịch lại Yazoo. Khi Yazoo là chạy, nó sẽ mang đến một dấu nhắc lệnh, nơi người dùng có thể định nghĩa và thao tác các biến, mảng, chức năng kịch bản, đọc và viết các tập tin, vv - và, gọi chức năng nhúng mình. Vì chỉ có các thư viện C chuẩn được sử dụng, Yazoo nên làm việc trên chỉ là về bất kỳ nền tảng.
Yazoo kịch bản là một chuyện tối giản: các lớp học, các bộ, chức năng, chức năng lập luận, vv là tất cả những điều tương tự. Sự đơn giản của chương trình này giúp giảm bớt các đường cong học tập. Nhưng nó cũng mua các ngôn ngữ rất nhiều tính tổng quát - Yazoo phép nhiều cấu trúc lập trình kỳ lạ mà rất hiếm trong một ngôn ngữ kịch bản, nhưng đã chứng minh hữu ích trong tay xuất sắc của tác giả.
Các Yazoo tải bao gồm: C / C ++ file nguồn; một Makefile; cần thiết ".zoo" kịch bản; và tài liệu hướng dẫn
là gì mới trong phiên bản này:.
- Lỗi cố định:
- vấn đề xác định các thành viên ủy quyền khi thay đổi kích thước mảng; ví dụ [1] proxy_array @ :: {}
- 'q trở lại' bây giờ hoạt động khi 'q' là void
- một vấn đề mà các số nguyên unsigned lớn sẽ in là '0'
- đi () có thể bị mắc kẹt bên trong các phần tử mảng
- read_string () (và ReadTable ()) không thể đọc số mũ bằng dấu cộng (ví dụ: 1e + 1)
- vấn đề về đọc và viết số gần với giới hạn underflow đôi độ chính xác
- một vấn đề với ReadTable () khi cố gắng để thay đổi kích thước danh sách
- một vấn đề với ReadTable () khi một bảng hai chiều chỉ có một yếu tố duy nhất
- cố khi sử dụng SaveTable () với các bảng rỗng
- a copy () sụp đổ khi các đối số đầu tiên là nguyên thủy và các đối số thứ hai là tổng hợp
- là một vấn đề với go () mà len lỏi trong khi các nhà điều hành đã được giới thiệu #
- thỉnh thoảng bị lỗi khi cố gắng start.zoo cờ một lỗi
- một thông điệp cảnh báo trong một số trình biên dịch (extrnl.c)
- SaveTable () bây giờ làm cho chắc chắn để de-alias bảng nếu nó được gọi là không đúng
- lỗi trong SaveTable () khi được thông qua một tổ chức phi-composite 'bảng'
- lỗi gắn cờ ở sai vị trí
- lỗi vụng về mang cờ khi máy tính cố gắng để in một đối tượng tự tra
- Cải tiến:
- loại bỏ các 'này. " tiền tố khi xác định các biến. Điều này sẽ gây ra các vấn đề trong thủ tục xác định các biến có cùng tên với biến toàn cầu!
- a =b hiện đang làm việc khi b là void. Điều này có nghĩa là "cái bẫy (x) 'không còn là cách để phát hiện khoảng trống thành viên; sử dụng 'nếu x ==nothing' thay thế.
- thêm một mã số cảnh báo runtime 'Van cân bằng'
- tăng mèo () để user.zoo
- thêm vào Save () mà cố gắng tất cả các đường dẫn thư mục (nó tương tự để tải ())
- SaveTable () bây giờ cố gắng tất cả các đường dẫn thư mục
- tăng ls () để in ra các biến trong thư mục hiện hành
- tăng compile_and_do_in () để user.zoo
- thêm tròn () mà làm việc để gần số nguyên
- tăng tốc thay đổi kích thước của bảng sử dụng ReadTable ()
là gì mới trong phiên bản 1.4:
- Lỗi cố định:
- cải thiện run () 's trường hợp nhạy cảm xử lý tên tập tin khi run.CleanUp được đặt
- true
- thông báo lỗi sai khi xuất cảnh, trở về từ user.zoo
- lỗi trong ReadTable () liên quan đến thay đổi kích thước của bảng
- vấn đề trong thông báo lỗi từ ReadTable ()
- Cải tiến:
- thêm # điều hành để thay thế RunCode (), RunConstructor ()
- thêm ';' như là một biểu tượng thay thế cho 'ma'
- máy tính mặc định là 'on'
- thêm chữ thường () / hoa () chức năng để user.zoo
- thêm mã lỗi để ReadTable ()
là gì mới trong phiên bản 1.3.1:
- Một sửa chữa một lỗi lâu dài mà đôi khi bị rơi chương trình khi sử dụng di chuyển ().
- Các tính năng tự động dọn dẹp mới run (), cũng được giới thiệu trong việc đăng cuối cùng, đã được gặp vấn đề unreproducible và có thể là lỗi này sửa chữa chăm sóc đó quá.
- Hai cải thiện đáng kể nâng cao tính: 1) sử dụng trong môn chạy () thay vì in (), và 2) sự giới thiệu của một 'ans' biến như người ta thường thấy trong môi trường khoa học-lập trình .
là gì mới trong phiên bản 1.3.0.1:
- Fixed một lỗi .
là gì mới trong phiên bản 1.3:
- Lỗi cố định:
- là một vấn đề có khả năng gây tử vong của bỏ qua các ký tự null ở cuối start.zoo hoặc kịch bản bắt đầu khác
- load () và tiết kiệm () đã vô tình sử dụng chế độ ASCII hơn là nhị phân, mà gây ra các vấn đề về máy tính
- thêm hai rò rỉ bộ nhớ và một lỗi tham chiếu (tiềm năng mem thứ 3 bị rò rỉ.)
- máy tính không làm việc trong các phiên bản trước
- nhiều lỗi liên quan đến [^ ..], [+ ..], + [..], =! hoặc chức năng gọi bên trái của một xác định / đánh đồng-tại / etc. operator
- vấn đề nơi [+ ..] / + [..] nhà khai thác sẽ gắn thêm vào thành viên ẩn
- tai nạn liên quan đến kích thước-0 mảng proxy
- vấn đề w / sổ đăng ký in máy tính (che bởi trước đó vấn đề calc., Nhưng vấn đề này trong các phiên bản trước đó cũng)
- một vấn đề gây ra thay đổi kích thước của mảng chậm lớn
- tháo rời () in tên biến sai trên máy 64-bit
- thay đổi kích thước () bây giờ cho phép một đối số thức trống
- tháo rời một lỗi vụng về khi sử dụng các loại & quot; trở my_array [a, b] & quot; từ dấu nhắc lệnh
- crash nhắc lệnh sau khi trở về nhiều chỉ số của mảng
- một vấn đề gắn cờ lỗi trên dòng bắt đầu với | ** | bình luận theo phong cách
- tháo rời () đã bị rơi khi đưa ra các kịch bản vô
- Cải tiến:
- cấu hình Yazoo để nó có thể được nhúng vào trong / gọi bằng mã C; cũng chạy đệ quy từ bên trong Yazoo
- khi chạy lại một kịch bản, chạy () đầu tiên xóa các thành viên đó được xác định lần cuối cùng: không có nhiều bẫy (loại bỏ ..) cần
- đi thêm () / pwd cho việc thay đổi / xem biến không gian làm việc dấu nhắc lệnh của
- thêm toán tử so sánh tham khảo: '== @' và '/ = @ "
- thêm một nhà điều hành proxy-xác định: '# ::'
- load được thực hiện () nhanh hơn và bộ nhớ hiệu quả
- dây print ' D n' như là một end-of-line đơn
- run () có thể trả lại kết quả của câu lệnh trả về một kịch bản
- tiền thêm (), có nghĩa là () chức năng để user.zoo
- thêm char (), C_string () chức năng để user.zoo
- Transform () bây giờ cho phép người sử dụng để thiết kế các đường dẫn tìm kiếm các mã chuyển
- ném () có thể thay đổi vị trí của các lỗi ném và ném cảnh báo cũng
- run () sẽ cho phép cảnh báo trong các kịch bản để xuất hiện tại các dòng lệnh (giả sử không có bẫy can thiệp () sau khi cảnh báo)
- tháo rời () có thể bỏ qua các biểu thức trong bytecode biên soạn
- thay thế RunHobbish () với một do_in () thường xuyên chức năng hơn trong user.zoo
- tăng RunCode () trong user.zoo; RunConstructor () bây giờ là một trường hợp đặc biệt này thường
- luôn đọc bytecode như slongs
- ngay bây giờ đúng bằng cách sử dụng con trỏ NULL hơn 0 trong mã C
- cải thiện một số thông báo lỗi
- Các loại khác:
- thay đổi các từ bytecode cho các nhà khai thác mảng chèn ([+ ..], + [..]) và xóa
- loại bỏ CheckType () từ user.zoo - & quot; bẫy (a =b) & quot; thường là tốt hơn
- loại bỏ tồn tại () từ user.zoo - & quot; tồn tại (& quot; a & quot;) & quot; phần lớn là dư thừa với & quot; bẫy (a) & quot;
là gì mới trong phiên bản 1.2:
- Các phiên bản 1.2 của Yazoo vừa được giao trước hạn sau khi một số lỗi nghiêm trọng trên máy 64-bit đưa ra ánh sáng hồi tuần trước. Yazoo là một dòng lệnh diễn giải ngôn ngữ kịch bản, mà người sử dụng được thiết kế để tùy chỉnh bằng cách nhúng của C hoặc C ++ thói quen của mình vào ngôn ngữ. Sự mới lạ trong Yazoo kịch bản là cách mà các quy tắc cú pháp sau bảo thủ tìm kiếm của nó có thể được suy ra cho sản xuất nhiều cấu trúc kịch bản hiếm và hữu ích, trong đó tác giả đã không gặp trong các ngôn ngữ khác.
- Sự thay đổi thực sự quan trọng trong phiên bản hiện tại là việc loại bỏ những giả định về kích thước nguyên mà gây ra tai nạn ngay lập tức. Điều này đòi hỏi phải có một sự điều chỉnh đáng kể: đăng ký R_ulong đã đi từ unsigned để ký kết, và do đó được đổi tên thành R_slong. Việc đổi tên có thể gây ra các vấn đề về nguyên tắc tương thích ngược, mặc dù may mắn đăng ký số nguyên hiếm khi cần phải được gọi một cách rõ ràng. Cuối cùng, liên quan đến một cái gì đó nhàm chán với hầu hết người sử dụng nhưng tốn nhiều thời gian cho các tác giả, các C / C ++ file nguồn đã trải qua những đổi mới phong cách:. Họ đã được (cuối cùng) nhận xét, và định dạng của họ đã được cải thiện
- Bởi vì tác giả đỏ mặt này tranh giành một chút để gửi các phiên bản hiện tại, có thể là lỗi 64-bit ẩn nấp nhưng trong code. Nếu đúng như vậy, sau đó khác, phiên bản sửa đổi có khả năng sẽ được sắp tới trong một số rất ít ngày, như các tác giả sử dụng chương trình của mình một cách say sưa.
là gì mới trong phiên bản 1.1:
- Lỗi cố định:
- sai mang cờ thông báo lỗi trong hầu hết các kịch bản với các hằng số inlined
- các nhà điều hành append-code ':' không hoạt động đúng trong hoàn cảnh nhất định, ví dụ như trong một nhà điều hành mã thay thế
- cưỡng bức đánh đồng không sao chép các phần tử mảng theo thứ tự đúng khi nhiều chỉ số đã được đưa ra một cách rõ ràng (ví dụ như một [*] =! ..., ... = B [1, 2])
- vấn đề số khi in số ở các cạnh của độ phân giải gấp đôi độ chính xác
- thông báo lỗi sai mang cờ sau endif, endf hoặc endw
- Tên các thành viên trong sai lỗi thành viên-không-được tìm thấy từ các tập tin bằng cách chạy user.zoo
- số đầu tiên trở lại ngẫu nhiên () không phải là hoàn toàn ngẫu nhiên
- copy () đã không kiểm tra để tự tham khảo
- lỗi trong SaveTable () khi chiều thứ hai của một bảng được kích thước để không
- sort () ném một lỗi không cần thiết cho độ dài 0 danh sách
- hiểu sai những lời nhận xét null '| *** |' với một số lẻ của '*' s
- Cải tiến:
- đường dẫn tìm kiếm các định nghĩa mới {} Bây giờ, luôn luôn đi qua các kịch bản mà xác định nó, không nhất thiết phải là kịch bản kèm theo ***
- tăng resize () để user.zoo
- tăng min (), max () chức năng để user.zoo
- sort () bây giờ sắp xếp danh sách cũng như các bảng
- new () chấp nhận các biến nguồn khác nhau cho các loại dữ liệu và
- copy () trả về một mã lỗi
- kiểm tra cho SaveTable () đối số tốt hơn
Bình luận không