www.eiffel.org Open in urlscan Pro
104.237.157.162  Public Scan

Submitted URL: http://www.eiffel.org/
Effective URL: https://www.eiffel.org/
Submission: On October 17 via api from US — Scanned from DE

Form analysis 1 forms found in the DOM

GET https://www.eiffel.org/gcse20

<form class="search-form" method="GET" action="https://www.eiffel.org/gcse20">
  <input type="image" alt="Search" class="btn" src="/theme/responsive-eiffel-org/images/ico-search.png">
  <input type="text" name="q" size="25" maxlength="255" value="">
</form>

Text Content

 * welcome
 * documentation
 * resources
 * contribute
 * blogs
 * download

 * Sign in
 * 

Try Eiffel online


      io.put_string_32 ("[
         Hello!
         ¡Hola!
         Bonjour!
         こんにちは!
         Здравствуйте!
         Γειά σου!
      ]")

Unicode output in console

feature -- Access

  ...

invariant

  all_items_valid: ∀ x: items ¦ x.is_valid
  at_least_one_marked: ∃ x: items ¦ x.is_marked

end

Assertions: class invariants with symbolic notation

values := << 1, 2, 4, 8 >>

    --    Sum of (index * values [index]).
across
    values as i 
from 
    sum := 0 
loop
    sum := sum + i.cursor_index * i.item
end

Sum using across loop

rating := locale.plural_translation_in_context
      ("$1 star", "$1 stars", "example.context", n)
...

rating: READABLE_STRING_32
      -- Translated message.

locale: I18N_LOCALE
      -- Currently selected locale with translations.
   do ... end

Internationalization

class DINING_PHILOSOPHER
...
feature -- Basic operations

   eat (left, right: separate FORK)
         -- Race-free access to the forks `left` and `right`.
      do
          left.use
          right.use
      end

end

Concurrency with SCOOP

feature -- Access
    balance: INTEGER -- Current balance in dollars.
feature -- Element change
    withdraw (amount: INTEGER) -- Remove `amount` dollars.
        require
            positive: amount > 0
            not_too_big: amount <= balance
        do
            balance := balance - amount
        ensure
            increased: balance = old balance - amount
        end

Bank account example

run
        -- Execute tasks from `pool`.
    do
        from until
            not attached retrieved_task (pool) as task
        loop
            separate task as t do
                t.call
            end
        end
    end

Running a pool of tasks

class REFEREE:
    race_start.publish (create {DATE_TIME}.make_now_utc)
class RACE_CONTROL:
    race_start: EVENT_TYPE [DATE_TIME]
class SPRINTER:
    race_start.subscribe (agent run_from_now)
    run_from_now (t: DATE_TIME)
            -- Record `t` as starting time and get running.
        do
            start_time := t
            run
        end

Event-based programming with agents

 * 1
 * 2
 * 3
 * 4
 * 5
 * 6
 * 7
 * 8




RECENT POSTS


 * NEWS
   
      (Eiffel Community : blog)+(Bertrand Meyer's technology+ blog)
    * Oct 16
      Automated Object Data Compaction Revisited
      
      Revisiting reflection mechanisms to automate the compaction of object data
      to an expanded numeric type
   
    * Oct 09
      Python and Eiffel: A Comparison in Conciseness
      
      How Eiffel compares favourably to Python in terms of conciseness
   
    * Aug 15
      Freely accessible books
      
      Recently I prepared some of my books for free access on the Web (after
      gaining agreement from the publishers). Here are the corresponding links.
      They actually point to pages that present the respective books and have
      further links to the actual PDF versions. Although the texts are
      essentially those of the books as published, I […]
      
      The post Freely accessible books appeared first on Bertrand Meyer's
      technology+ blog.
   
    * Jul 14
      The French School of Programming
      
      July 14 (still here for 15 minutes) is not a bad opportunity to announced
      the publication of a new book: The French School of Programming. The book
      is a collection of chapters, thirteen of them, by rock stars of
      programming and software engineering research (plus me), preceded by a
      Foreword by Jim Woodcock and a […]
      
      The post The French School of Programming appeared first on Bertrand
      Meyer's technology+ blog.
   
    * Jun 28
      First ever Udemy Eiffel course has gone live
      First Udemy tutorial for native Console Eiffel applications is available
      for $39.99.
      
      https://www.udemy.com/course/eiffel-console-programming-for-c-oo-developers.
    * Jun 14
      EiffelStudio 24.05 is available!
      
      We are pleased to announce the availability of EiffelStudio 24.05
   
    * Mar 16
      The SPOT Architecture Applied to Class ARRAYED_LIST
      
      Why it is important to have a dedicated routine for initializing
      attributes
   
    * See more ...


 * FORUM
   
      Eiffel Users - Google Groups
    * Personal License (3 Platforms)
    * Availability of GPL version for 19.12
    * Transient Attributes
    * A safer way to get/set parts of a compact number using contracts
    * installing on Ubuntu
    * See more ...


 * FACEBOOK
   
   
   


COMMUNITY


GITTER

Real-time chat
EiffelSoftware/EiffelStudio


FORUM

Thread communication
groups.eiffel.com


SOURCE

Github repository
EiffelSoftware/EiffelStudio


THIS SITE IS POWERED BY EIFFEL.

Built with the Eiffel ROC-CMS based on EiffelWeb.

 * Welcome
   * Purpose
   * News
   * Updates
   * Forum
   * Community
   * Contact
   * Sign in
 * Documentation
   * Eiffel
   * EiffelStudio
   * Solutions
   * Glossary
   * FAQs
   * Contribute
 * Resources
   * Libraries
   * Tools
   * Wish list
   * Videos
   * Follow us
 * Download Now Try Eiffel Online Contribute Sign in
 * * Facebook
   * You Tube
   * Twitter

Built with the Eiffel ROC CMS and the EiffelWeb framework.