[racket-users] Final Call for Papers: ICFP 2017

2017-02-15 Thread 'Lindsey Kuper' via users-redirect

  ICFP 2017
The 22nd ACM SIGPLAN International Conference on Functional Programming
 Oxford, United Kingdom
   http://icfp17.sigplan.org/
 Final Call for Papers
 
### Important dates

Submissions due:Monday, February 27, Anywhere on Earth
https://icfp17.hotcrp.com
Author response:Monday, April 17, 2017, 15:00 (UTC) -
Thursday, April 20, 2017, 15:00 (UTC)
Notification:   Monday, 1 May, 2017
Final copy due: Monday, 5 June 2017
Early registration: TBA
Conference: Monday, 4 September -
Wednesday, 6 September, 2017

### New this year

Those familiar with previous ICFP conferences should be aware of two
significant changes that are being introduced in 2017:

1. Papers selected for ICFP 2017 will be published as the ICFP 2017
issue of a new journal, Proceedings of the ACM on Programming Languages
(PACMPL), which replaces the previous ICFP conference proceedings. The
move to PACMPL will have two noticeable impacts on authors:

* A new, two-phase selection and reviewing process that conforms to
  ACM’s journal reviewing guidelines.

* A new, single-column format for submissions.

2. Authors of papers that are conditionally accepted in the first phase
of the reviewing process will have the option to submit materials for
Artifact Evaluation.

Further details on each of these changes are included in the following
text.

### Scope

ICFP 2017 seeks original papers on the art and science of functional
programming. Submissions are invited on all topics from principles to
practice, from foundations to features, and from abstraction to
application. The scope includes all languages that encourage functional
programming, including both purely applicative and imperative languages,
as well as languages with objects, concurrency, or parallelism. Topics
of interest include (but are not limited to):

  * *Language Design*: concurrency, parallelism, and distribution;
modules; components and composition; metaprogramming; type systems;
interoperability; domain-specific languages; and relations to
imperative, object-oriented, or logic programming.

  * *Implementation*: abstract machines; virtual machines;
interpretation; compilation; compile-time and run-time optimization;
garbage collection and memory management; multi-threading;
exploiting parallel hardware; interfaces to foreign functions,
services, components, or low-level machine resources.

  * *Software-Development Techniques*: algorithms and data structures;
design patterns; specification; verification; validation; proof
assistants; debugging; testing; tracing; profiling.

  * *Foundations*: formal semantics; lambda calculus; rewriting; type
theory; monads; continuations; control; state; effects; program
verification; dependent types.

  * *Analysis and Transformation*: control-flow; data-flow; abstract
interpretation; partial evaluation; program calculation.

  * *Applications*: symbolic computing; formal-methods tools; artificial
intelligence; systems programming; distributed-systems and web
programming; hardware design; databases; XML processing; scientific
and numerical computing; graphical user interfaces; multimedia and
3D graphics programming; scripting; system administration; security.

  * *Education*: teaching introductory programming; parallel
programming; mathematical proof; algebra.

Submissions will be evaluated according to their relevance, correctness,
significance, originality, and clarity. Each submission should explain
its contributions in both general and technical terms, clearly
identifying what has been accomplished, explaining why it is
significant, and comparing it with previous work. The technical content
should be accessible to a broad audience.

ICFP 2017 also welcomes submissions in two separate categories ---
Functional Pearls and Experience Reports --- that must be marked as
such at the time of submission and that need not report original
research results.  Detailed guidelines on both categories are given at
the end of this call.

Please contact the program chair if you have questions or are concerned
about the appropriateness of a topic.

### Preparation of submissions

ICFP 2017 will employ a lightweight double-blind reviewing process, as
described below.

**Deadline**: The deadline for submissions is Monday, February 27, 2017,
Anywhere on Earth ().
This deadline will be strictly enforced.

**Formatting**: (NOTE: NEW FORMAT REQUIREMENTS FOR ICFP 2017)
Submissions must be in PDF format, printable in black and white on US
Letter sized paper, and interpretable by common PDF tools. All
submissions must adhere to the "ACM Large" template that is available
(in both LaTeX and Word formats) from

Re: [racket-users] Are types first class values in typed/racket

2017-02-15 Thread Robert Kuzelj
Hey Jack,
thanks for the explanation. I was really confused about the fact that my 
question couldn't be understood. But yeah - if at the moment types are NOT 
defined during the macro expansion phase and are NOT *thingies* THEN I 
understand why the confusion. Thanks for clearing that up for me.

I will have a look into those references you mentioned.

Thank you

Am Mittwoch, 15. Februar 2017 20:13:43 UTC+1 schrieb Jack Firth:
> That's not possible in Typed Racket, no. Type checking is after macro 
> expansion so type information doesn't even exist when your macro would expand.
> 
> However, hope is not lost. There is a new approach to typechecking with 
> macros outlined in the Types as Macros paper by Stephen Chang and Alex 
> Knauth, and reified in the `turnstile` Racket package. This approach 
> interleaves typechecking and macro expansion, making types essentially macros 
> with extra compile time metadata that alter the flow of macro expansion. In 
> this case, types are actual *things* that exist at macro expansion time, so 
> you could make a macro that interacted with types and used type information 
> to decide how to expand.
> 
> On Tuesday, February 14, 2017 at 5:32:30 AM UTC-8, Robert Kuzelj wrote:
> > given a type definition in typed/racket like
> > 
> > (define-type BinaryTree (U Number (Pair BinaryTree BinaryTree)))
> > 
> > would it be possible to feed that type into a macro (aka not runtime) so 
> > that
> > 
> > (define-transformed-type MyBinaryTree BinaryTree)
> > 
> > and would that macro be able to access the constituent elements and their 
> > types of given type?

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Are types first class values in typed/racket

2017-02-15 Thread Jack Firth
That's not possible in Typed Racket, no. Type checking is after macro expansion 
so type information doesn't even exist when your macro would expand.

However, hope is not lost. There is a new approach to typechecking with macros 
outlined in the Types as Macros paper by Stephen Chang and Alex Knauth, and 
reified in the `turnstile` Racket package. This approach interleaves 
typechecking and macro expansion, making types essentially macros with extra 
compile time metadata that alter the flow of macro expansion. In this case, 
types are actual *things* that exist at macro expansion time, so you could make 
a macro that interacted with types and used type information to decide how to 
expand.

On Tuesday, February 14, 2017 at 5:32:30 AM UTC-8, Robert Kuzelj wrote:
> given a type definition in typed/racket like
> 
> (define-type BinaryTree (U Number (Pair BinaryTree BinaryTree)))
> 
> would it be possible to feed that type into a macro (aka not runtime) so that
> 
> (define-transformed-type MyBinaryTree BinaryTree)
> 
> and would that macro be able to access the constituent elements and their 
> types of given type?

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.