Esterel – Wikipedia

Esterel là ngôn ngữ lập trình đồng bộ để phát triển các hệ thống phản ứng phức tạp. Phong cách lập trình bắt buộc của Esterel cho phép biểu hiện đơn giản của sự song song và sự ưu tiên. Kết quả là, nó rất phù hợp cho các thiết kế mô hình thống trị kiểm soát.

Sự phát triển của ngôn ngữ bắt đầu từ đầu những năm 1980, và chủ yếu được thực hiện bởi một nhóm Ecole des Mines de Paris và INRIA do Gérard Berry ở Pháp lãnh đạo. Các trình biên dịch hiện tại lấy các chương trình Esterel và tạo các triển khai mã C hoặc phần cứng (RTL) (VHDL hoặc Verilog).

Ngôn ngữ vẫn đang được phát triển, với một số trình biên dịch được đưa ra. Phiên bản thương mại của Esterel là môi trường phát triển Esterel Studio. Công ty đã thương mại hóa nó (Synfora) đã bắt đầu quá trình chuẩn hóa với IEEE vào tháng 4 năm 2007, tuy nhiên nhóm làm việc (P1778) đã giải thể vào tháng 3 năm 2011. Phiên bản hướng dẫn tham khảo Esterel v7 phiên bản v7 30 – đề xuất tiêu chuẩn hóa ban đầu của IEEE có sẵn.

Cảm xúc đa dạng về thời gian [ chỉnh sửa ]

Khái niệm thời gian được sử dụng trong Esterel khác với khái niệm về ngôn ngữ không đồng bộ theo cách sau: Khái niệm về thời gian vật lý được thay thế với khái niệm trật tự. Chỉ tính đồng thời và ưu tiên của các sự kiện được xem xét. Điều này có nghĩa là thời gian vật lý không đóng vai trò đặc biệt nào. Đây được gọi là khái niệm đa dạng về thời gian. Một chương trình Esterel mô tả một chuỗi hoàn toàn theo thứ tự các logic. Tại mỗi thời điểm, một số lượng sự kiện tùy ý xảy ra (bao gồm 0). Sự kiện xảy ra cùng một lúc logic được coi là đồng thời. Các sự kiện khác được sắp xếp như là trường hợp xuất hiện của chúng. Có hai loại câu lệnh: Những câu lệnh mất thời gian bằng không (thực thi và chấm dứt ngay lập tức) và những kiểu trì hoãn cho một số chu kỳ quy định.

Tín hiệu [ chỉnh sửa ]

Tín hiệu là phương tiện liên lạc duy nhất. Có những tín hiệu có giá trị và không có giá trị. Chúng được phân loại thêm là tín hiệu đầu vào, đầu ra hoặc tín hiệu cục bộ. Một tín hiệu có đặc tính là có mặt hoặc vắng mặt ngay lập tức. Tín hiệu có giá trị cũng chứa một giá trị. Tín hiệu được phát trên toàn chương trình và điều đó có nghĩa là bất kỳ quá trình nào cũng có thể đọc hoặc ghi tín hiệu. Giá trị của tín hiệu có giá trị có thể được xác định ngay lập tức, ngay cả khi tín hiệu không có. Trạng thái mặc định của tín hiệu không có. Tín hiệu vẫn vắng mặt cho đến khi chúng được thiết lập rõ ràng bằng cách sử dụng câu lệnh phát ra. Giao tiếp là tức thời, điều đó có nghĩa là tín hiệu phát ra trong một chu kỳ có thể nhìn thấy ngay lập tức. Lưu ý rằng người ta có thể giao tiếp qua lại trong cùng một chu kỳ.

Quy tắc kết hợp tín hiệu [ chỉnh sửa ]

  • Mỗi tín hiệu chỉ xuất hiện hoặc vắng mặt trong một chu kỳ, không bao giờ cả hai.
  • Tất cả các nhà văn đều chạy trước bất kỳ độc giả nào.

     trình bày A khác     phát ra A kết thúc 

    là một chương trình sai lầm: nhà văn "phát ra A" phải chạy trước người đọc "trình bày A", nhưng ngữ nghĩa của ngôn ngữ đòi hỏi "hiện tại A" phải được thực hiện trước, dẫn đến xung đột trong ngữ nghĩa của chương trình. [ cần làm rõ ]

    Cấu trúc ngôn ngữ [ chỉnh sửa ]

    Tuyên bố Esterel nguyên thủy chỉnh sửa 19659024] Esterel thuần túy có mười một tuyên bố nguyên thủy. [1]

    không có gì Chấm dứt ngay lập tức mà không có tác dụng nào khác.
    tạm dừng Chặn điều khiển dòng chảy trong chu kỳ hiện tại để nối lại trong chu kỳ tiếp theo.
    p ; q Chạy p cho đến khi nó chấm dứt và sau đó, trong cùng một phản ứng, bắt đầu q .
    p || q Chạy p q song song
    loop p end Khởi động lại cơ thể p ngay khi nó kết thúc. Mỗi đường dẫn qua thân vòng lặp phải chứa ít nhất một câu lệnh tạm dừng để tránh vòng lặp không giới hạn trong một phản ứng.
    tín hiệu S trong p kết thúc Khai báo tín hiệu cục bộ.
    phát ra S Tạo tín hiệu S hiện diện ngay lập tức. Một tín hiệu vắng mặt trừ khi nó được phát ra.
    hiện tại S sau đó p khác q kết thúc Nếu tín hiệu S hiện diện ngay lập tức p nếu không thì chạy q .
    đình chỉ p khi S Đình chỉ việc thi hành thi thể trong cơ thể nơi có S .
    bẫy T trong p end Khai báo một khối thoát được dán nhãn.
    exit T Nhảy đến cuối cùng trong cùng T khối thoát được dán nhãn.

    Báo cáo Esterel có nguồn gốc [ chỉnh sửa ]

    Esterel có một số cấu trúc dẫn xuất: [2][3]

    Tuyên bố phái sinh Mở rộng
    tạm dừng kết thúc tạm dừng vòng lặp
    bền vững s vòng lặp phát ra s ; tạm dừng kết thúc
    hiện tại s sau đó p kết thúc hiện tại s sau đó p không có gì khác ]
    đang chờ đợi s bẫy T trong vòng lặp tạm dừng; hiện tại s sau đó thoát T kết thúc vòng lặp kết thúc
    đang chờ đợi ngay lập tức s bẫy T trong vòng lặp hiện tại s sau đó thoát T kết thúc; tạm dừng kết thúc vòng lặp kết thúc
    đình chỉ p khi ngay lập tức s đình chỉ hiện tại s sau đó tạm dừng kết thúc; p khi ]
    hủy bỏ p khi (ngay lập tức) s bẫy T trong việc đình chỉ p khi (ngay lập tức) s ; thoát T | | chờ đợi (ngay lập tức) s ; thoát T; kết thúc
    hủy bỏ yếu p khi (ngay lập tức) s bẫy T trong p ; thoát T | | chờ đợi (ngay lập tức) s ; thoát T; kết thúc
    loop p mỗi s hủy bỏ vòng lặp p ; tạm dừng khi vòng lặp kết thúc s
    mỗi (ngay lập tức) s làm p kết thúc mỗi đang chờ đợi (ngay lập tức) s ; loop p mỗi s

    Các câu lệnh Esterel khác [ chỉnh sửa ]

    Ngôn ngữ Esterel đầy đủ cũng có các câu lệnh để khai báo và khởi tạo các mô-đun, cho các biến, để gọi các thủ tục bên ngoài, và cho các tín hiệu có giá trị.

    Ví dụ (ABRO) [ chỉnh sửa ]

    Chương trình sau đây phát ra đầu ra O ngay khi nhận được cả hai đầu vào A và B. Đặt lại hành vi bất cứ khi nào nhận được đầu vào R.

     mô-đun ABRO: đầu vào A, B, R; đầu ra O;  vòng lặp   [ await A || await B ];   phát ra O mỗi R  mô-đun kết thúc 

    Ưu điểm của Esterel [ chỉnh sửa ]

    • Mô hình thời gian giúp lập trình viên kiểm soát chính xác
    • Đồng thời thuận tiện cho việc chỉ định các hệ thống điều khiển
    • Ngôn ngữ hoàn toàn xác định
      • Thời gian thực hiện có thể dự đoán được
      • Dễ dàng xác minh chính thức hơn
    • Có thể được thực hiện trong phần cứng cũng như trong phần mềm

    Nhược điểm của Esterel ]

    • Bản chất trạng thái hữu hạn của ngôn ngữ giới hạn tính linh hoạt (nhưng tính biểu cảm là đủ cho lĩnh vực ứng dụng đã chọn)
    • Thách thức ngữ nghĩa
      • Tránh vi phạm nhân quả thường rất khó
      • Khó biên dịch trong trường hợp chung, nhưng tiêu chí chính xác đơn giản tồn tại

    Xem thêm [ chỉnh sửa ]

    chỉnh sửa ]

    Liên kết ngoài [ chỉnh sửa ]